0 数据库的基础知识
安装
修改用户密码
修改字符及编码
数据类型:
数值类型:整型,浮点型
字符串类型:char(定长),varchar(不定长)
两者都是字符串类型,可以在后面接宽度,char在磁盘上的存储空间均为固定的,保存的时候不需要考虑数据长度,
定长在查询的时候也不需要考虑长度,因而读取速度快;
varchar插入和查询速度相对较慢,存储数据时,按照数据长度进行存储,每次都需要在存储前计算数据长度,在数据空间
前开辟1或2个字节来存储数据的内存长度。在读取数据的术后需要先读取数据的长度,再读取数据内容。这样的速度较慢, 但是多数情况下可以节省空间
日期:year,date,time,datetime(重点)
枚举类型:enum(“1”,“2”,“3”) 多个备选项选一
集合类型:set(“1”,“2”,“3”) 多个备选项选多个
完整性约束:
not null:不能为空
defult:设置默认值
unique:唯一即不可重复,可以加速查询
primary key:主键,唯一且非空,每个表中都只有一个主键。未指定的时候则系统自动寻找符合两者要求的一项,再无则指定一个看不见的字段为主键。
auto_increment:自增,一般加在主键之后。其步长及初始值均可修改。
foreign key:外键,建立表之间的关系
一对多:T1为一,T2为多,则T1里的一条数据可以对应T2内的多条数据
create table T2(字段名,数据类型,约束条件)
create table T2(id int primary key auto_increment,
name char(10) not null,
sex enum('男','女’) defult '男' not null,
id_card char(18) not null and unique,
T1_id int not null,
constraint fk_t1_t2(自己设定的外键名字) foreign key (T1_id) references T1(id被关联的的字段,不为空且唯一)
)即在多的一个表里设置外键
一对一:两表的数据都只能对应对方的一条
create table T2(字段名,数据类型,约束条件)
create table T2(id int primary key auto_increment,
name char(10) not null,
sex enum('男','女’) defult '男' not null,
id_card char(18) not null and unique,
T1_id int not null and unique, 同上不一样的地方在于这里加了唯一限制
constraint fk_t1_t2(自己设定的外键名字) foreign key (T1_id) references T1(id:被关联的的字段,不为空且唯一)
)
多对多:
建立第三个表,其表头为:id T1_id T2_id
1 库操作
增 create database 库名;
删 drop database 库名;
改 alter database 库名 charset utf8;
查 show databases;此处多个s
show create database 库名 \G; 库名后可不接\G
输入\C可以提前结束已错的语句
2 表操作
增 create table 表名(字段1 类型1,字段2,类型2);
删 drop table 表名;
改(字段的修改,表结构的修改)
alter table 表名 rename 新表名; 改表名
alter table 表名 modify 字段名 数据类型 完整性约束; 改字段名
alter table 表名 change 原名 新名 数据类型 完整性约束; 改字段名
alter table 表名 add 字段 数据类型 完整性约束 first/after 字段(用于定位); 加字段
alter table 表名 add foreign key(本表字段)references 被关联表的表名(id); 加外键
查 show tables; 查看表
3 行操作
增 insert into 表名 values(数据1,数据2);
删 delete from 表名 where 条件;条件成立则执行前面,不成立就废了
改 update 表名 set 字段=‘新内容’ where 条件;