数据定义语言
库的管理
库的创建
语法:create database 库名;
如果库已经存在不想让数据库报错,只需要提醒就好了:语法:create database if not exists 库名;
-
库的修改:
更改字符集:alter database 库名 character set 字符集
-
库的删除:drop database 库名;
drop database if exists 库名;
-
库的管理:
-
表的创建
crate table 表名(
列名 字段类型【(长度) 约束】,
列名 字段类型【(长度) 约束】,
列名 字段类型【(长度) 约束】,
列名 字段类型【(长度) 约束】
)
-
表的修改
总结语法:
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;-
修改列名:语法:
alter table 表名 change 【column】旧的列名 新的列名 要修改成的类型;
-
修改类型或约束:语法
alter table 表名 modify column 修改的列名 要修改的类型
-
添加新列:语法
alter table 表名 add column 要添加的列名 要添加列的类型
-
删除列:语法
alter table 表名 drop column 删除的列名
-
修改表名:语法
alter table 表名 rename to 修改后的表名
-
-
表的删除;语法:
drop table if exists 表名; -
表的复制:语法
-
-
常见的数据类型
-
整型:分类
tinyint 一个字节/smallint 俩个字节 /mediumint s三个字节/ mediumint 三个字节/bigint 八个字节
特点:
- 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字
- 如果插入的数值超出了整型范围,就会报out of rang异常,并插入临界值
- 如果不设置长度,会有默认长度
- 长度代表的最大长度,如果不够会用0填充,但是必须搭配zerofill使用
-
小数:
-
浮点型
float(M,D)
double(M,D)
-
定点型:
dec(M,D)decimal(M,D)
-
特点
M:整数部位+小数部位
D:小数部位
如果超出范围,则插入临界值
M和D可以省略,如果是decilmal,则默认为10,D默认为0,如果是float和double,则会根据插入的数值的精度来决定精度
定点型的精度较高,如果要求插入数值的精度较高如货币运算等则考虑使用
原则:所选择的类型越简单越好,能保存数值的类型越小越好
-
-
字符集
-
较短的文本
char
varchar
-
较长的文本
text
blob(较大的二进制)
-
特点
-
其他:
binary和varbinary用于保存较短的二进制
enum用于保存枚举
set用于保存集合
-
-
日期类型:
-
date 只保存日期
-
time 只保存时间
-
year 只保存年
-
datetime 保存日期+时间
-
timestamp 保存日期+时间
-
-
-
常见约束:
-
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确性和可靠性
-
分类:六大约束
- not null;非空约束,用于保证该字段的值不能为空;例如,学号,姓名
- default:默认约束,用于保证该字段默认值
- primary key:主键,用于保证该字段的值具有唯一性,并且非空,例如:学号,员工编号
- unique:唯一,用于该字段的值具有唯一性,可以为空,例如:座位号
- check:检查约束【MySQL中不支持】
- foreign key:外键,用于限制俩个表的关系,用于保证该字段的值必须来自主表的关联列的值,在从表添加外键约束,用于引用主表中某列的值。例如:学生的专业编号,员工表的部门编号
- 添加约束的实际:
- 创建表时
- 修改表时
- 约束添加的分类
- 列级约束:六大约束都支持,但是外键约束没有效果
- 表级约束:除了非空,默认,其他都支持
-