目录
1. 初始数据库
数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database,DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。
1.1 DBMS的种类
DBMS主要通过数据保存格式(数据库的种类)来进行分类,现阶段主要有以下5种类型:
- 层次数据库(Hierarchical Database,HDB)
- 关系数据库(Relational Database,RDB)
- 面向对象数据库(Object Oriented Database,OODB)
- XML数据库(XML Database,XMLDB)
- 键值存储系统(Key-Value Store,KVS)
我们学习的是使用SQL语句的关系型数据库。
1.2 RDBMS的常见系统结构
使用RDBMS时,最常见的系统结构就是客户端 / 服务器(C / S)这种结构的,如下图所示:
1.3 数据库的安装
这里数据库的安装教程可以参看阿里天池的MySQL数据库安装教程。点击链接
2. 初识 SQL
2.1 基本概念
类似于二维表格结构中的行列,数据库中的行被称为记录
,列被称为字段
,行列相交处被称为单元格
。
SQL是为了操作数据库中的数据而产生的语言,通常情况下要根据不同的RDBMS编写特定的SQL,这里我们学习的是标准的SQL的编写。
2.2 数据库的创建
create database db_name;
【例子】创建学生数据库
create database students;
2.3 数据库的删除
drop database db_name;
【例子】删除学生数据库
drop database students;
2.4 表的创建
create table table_name(
col_name_1 数据类型 该列约束,
col_name_2 数据类型 该列约束,
...
col_name_n 数据类型 该列约束,
该表约束_1,该表约束_1,.....
);
【例子】创建学生信息表
create table stu_info(
id char(4) not null,
name varchar(10) not null,
age char(4) not null,
class_id char(4) not null,
address varchar(100),
primary key(id)
);
-
创建表时,所有的列都必须指定数据类型。我们介绍最基本的四种数据类型。
- integer:用来指定存储整数列的数据类型,不能存放小数。
- char:用来指定存储定长字符串,如果有剩余的空间会自动进行补全,浪费空间。
- varchar:用来指定存储可变长度字符串,如果有剩余不会自动补全,节省空间。
- date:用来指定存储时间列的数据类型。
-
约束除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。
- not null:非空约束,此列必须输入数据。
- primary key:主键约束,代表该列是唯一值,可以通过该列取出特定的行的数据。
2.5 表的删除
drop table table_name;
【例子】
drop table a
2.6 插入数据
- 单行插入
insert into table_name (col_name_1,...col_name_n) values (value_1,...,value_n)
【例子】
insert into stu_info (id,name,age,class_id,address) values (0001,'Tom',18,'0101','heilongjiang');
对表进行全列插入时,可以隐藏列清单,数据会以此插入。
# 代码功能同上
insert into stu_info values (0001,'Tom',18,'0101','heilongjiang');
- 多行插入
【例子】
insert into stu_info values
(0002,'Mary',19,'0102','jilin'),
(0003,'Jack',18,'0103','liaoning'),
(0004,'Andy',20,'0201','beijing');
2.7 添加单列
alter table table_name add column col_name;
【例子】这里我们对学生表在加上一列,名为tel(电话)
alter table stu_info add column tel varchar(100);
2.8 删除单列
alter table table_name drop column col_name;
【例子】删除刚刚添加的tel列
alter table stu_info drop column tel;
2.9 数据更新
update table_name
set col_name_1 = expression_1,...,col_name_n = expression_n;
where condition;
order by clause;
limit clause;
【例子】我们对上文添加的tel列进行数据更新
# 更新了name为Tom的电话
update stu_info
set tel = '234456';
where name = 'Tom';
2.10 清空表
truncate table table_name;
【例子】清空stu_info表
truncate table stu_info;