DDL数据定义语言
数据库管理
查看
show databases; show create database 数据库名称创建 create
database 库名选择使用数据库
use 库名
- 修改数据库编码
alter database 数据库名称 character set 编码格式
- 删除数据库 drop database 库名
数据表管理
查看当前数据库所有表
SHOW TABLES查看创建好的表
show create table 表名查看表结构
DESC 表名创建
CREATE TABLE 表名(字段名,字段类型,[约束条件])字段类型
int(n):n位整数
float(n,m):n位数字,其中m位小数,默认float(10,2)
decimal(n,m):n位数字,其中m位小数,适合精度较高数据存储,默认decimal(10,0)
char(n):固定长度字符串,默认长度为1
varchar(n):可变长度字符串,必须指定长度
text:长文本字符串,不可指定长度
date:日期型,yyyy-mm-dd
time:时间型,hh:mm:ss
datetime:yyyy-mm-dd hh:mm:ss
约束条件
定义
在表上强制执行的数据检验规则,用于保证数据完整和准确,主要对空值和重复值进行约束
常用约束条件
-
PRIMARY KEY 主键约束
每个表只有1个主键
主键值必须非空不重复
可设置单字段主键&多字段联合主键 - NOT NULL非空约束,不可为空
-
UNIQUE唯一约束,不可重复
指定字段取值不能重复,可以为空,但只可出现一个空值 - DEFAULT默认约束,默认值
-
FOREIGN KEY外键约束
在1张表中执行数据插入,更新,删除时,DBMS会跟另一张表进行对照
某表某字段依赖于另一表某字段
每个外键值和另一表主键值对应,主键所在表为主表,外键所在表为从表 - 标识列AUTO_INCREMENT自增
指定字段值自动生成,默认从1开始,每增加一条记录,该字段取值增长1
仅适用于整数,配合键一起使用,每个表至多一个
主键和唯一的区别
主键不允许空值,唯一可以有1个空值
一个表中只能有1个主键,唯一可以有多个
添加约束
- 添加主键约束
CREATE TABLE 表名(字段名1,字段类型1,PRIMARY KEY,...,字段名n,字段类型n)
CREATE TABLE 表名(字段名1,字段类型1,......字段名n,字段类型n)constraint [主键约束名 PRIMARY KEY](字段名1[,字段名2,...字段名n] - 添加非空约束
CREATE TABLE 表名(字段名1,字段类型1,NOT NULL,...,字段名n,字段类型n) - 添加唯一约束
CREATE TABLE 表名(字段名1,字段类型1,UNIQUE,...,字段名n,字段类型n)
CREATE TABLE 表名(字段名1,字段类型1,......字段名n,字段类型n)constraint [唯一约束名 UNIQUE](字段名1[,字段名2,...字段名n]) - 添加默认约束
CREATE TABLE 表名(字段名1,字段类型1,DEFAULT value,...,字段名n,字段类型n) - 添加外键约束
CREATE TABLE 表名(字段名1,字段类型1,......字段名n,字段类型n constraint [外键约束名] FOREIGN KEY(字段名)reference 主表 (主键字段))
复制
仅复制表结构
CREATE TABLE 表名 LIKE 旧表名
复制数据+结构
CREATE TABLE 表名 select*from 旧表名
修改
修改表名
ALTER TABLE 表名1 rename 表名2修改字段名
ALTER TABLE 表名 change 字段名1 字段名2 字段类型 [约束条件]修改字段类型
ALTER TABLE 表名 modify 字段名 字段类型修改字段排列位置
ALTER TABLE 表名 modify 字段名 字段类型 after 某字段添加字段
ALTER TABLE 表名 add 字段名 字段类型 [位置(first/after 某字段),没有位置默认最后一行]
删除
删除字段
ALTER TABLE 表名 drop 字段名删除数据表
drop table 表名 if exists