DDL语言的学习
1库和表的管理
1、库的管理
创建库: create database [ if not exists ]库名;
删除库: drop database [if exists]库名;
2、表的管理
①创建表
create table [ if not exists ]表名(
字段名字段类型[字段约束],
字段名字段类型[字段约束]
);
②修改表
修改表名: alter table表名rename to新表名;
添加新字段: alter table表名add column新字段名字段类型[约束] ;
修改字段类型或约束: alter table表名modify column字段名新字段类型[新字段约束] ;
修改字段名: alter table表名change column旧字段名新字段名新字段类型[新字段约束] ;
删除字段: alter table表名drop column字段名;
③删除表
drop table [if exists]表名;
④复制表
仅仅复制表的结构: create table表名like旧表;
可以复制表的结构+数据: create table表名子查询;
2常见数据类型介绍
整型: tinyint、smallint. int、 bigint
浮点型: float(m,n)、double(m,n)、 decimal(m,n)
n:小数点后最多保留的位数
m:整数+小数最多的位数
m和n都是可选的
示例: float(5,3)能保存的数值范围: -99.999-99.999
按精度排序: decimal>double>float
字符型:
char(n):n可选,默认是1.固定长度的字符,效率较高,适合存储长度固定的字段
varchar(n) : n必选,不能省略。可变长度的字符,效率较低,适合存储长度变化较大的字段
text:保存较长文本
日期型:
date只能保存日期
time只能保存时间
datetime保存日期+时间所占字节空间: 8 ,能表示的日期范围较大
timestamp保存日期+时间所占字节空间: 4 ,能表示的日期范围较小
3、常见约束
NOT NULL: 非空,该字段的值必填
UNIQUE: 唯一,该字段的值不可重复
DEFAULT: 默认,该字段的值不用手动插入有默认值
CHECK: 检查, mysql不支持
PRIMARY KEY: 主键,该字段的值不可重复并且非空uniquetnot null
FOREICN KY: 外键,该字段的值引用了另外的表的字段
分类:表级约束和列级约束
支持列级约束: NOT NULL、PEFAULT、UNIQUE、 PRIAMRY KEY、CHECK
支持表级约束: UNIQUE、PRIAMRY KEY、FOREIGN KEY
主键和唯一
1、区别:
①、一个表至多有一一个主键,但可以有多个唯一
②、主键不允许为空,唯一可以为空
2、相同点
都具有唯一性
都支持组合键,但不推荐
外键:
1、用于限制两个表的关系,从表的字段值引用了主表的某字段值
2、外键列和主表的被引用列要求类型- -致,意义-样,名称无要求
3、主表的被引用列要求是一个key (一般就是主键)
4、插入数据,先插入主表。删除数据,先删除从表