(3)操作表语言DDL

操作表语言DDL

创建库

create database if ont exists A;
drop database if exists A;

创建表

create table A(
名字 类型 约束
);
create table if not exists stu(
name varchar(20),
id int;
age int
);

数据类型

int 整型 int(10)表示显示宽度为10位 还有tinyint smallint bigint
double/float 浮点型 double(5,2)表示最多5位,最少两位小数最大值为999.99
decimal 浮点型用来表示钱,不会损失精度
char(4) 固定长度字符串 字符个数为10 即使不够也会补齐 效率更高
varchar(10) 可变长度字符串 最大为10,不够则就不够
text 字符串 用来保存较长的文本
date yyyy-MM-dd
time hh:mm:ss
datetime yyyy-MM-dd hh:mm:ss 9个字节,从1900年开始
Timestamp 一样,但4个字节,从1970年开始保存
blob二进制类型用于存储图片数据

完整性约束

1.not null 限制其为必填项
2.default若没有插入值,则显示默认值
3.primary key主键 为了限制唯一,一个表只有一个主键(即使有多个也是合起来算一个,三个字段都重复才算重复)默认不能为空 可以跟在类型后面,也可以单独指定谁为主键 它可以加入属性自增长 auto_increment primary key auto_increament 如果在添加数据的时候数据写null,那它也会自己增加。需要设置在主键或者唯一键上
4.unique唯一键 用于限制字段值唯一,与主键不同的是唯一键字段可以有多个,可以为空(可以有两个null,不认为这是重复)
5.check 用于限制字段值必须满足的条件(mysql不支持)
6.foreign key外键(用于限制表之间的关系,使得引用的外键值在引用的表中必须存在才能赋值)就是另一张表的主键 比如员工表中的部门id,部门id就是部门表的主键,此时部门表为主表,员工表为从表,要求类型一致,但名称无要求,不是跟在类型后面,而是类型后面加逗号,约束在下一行
constraint fk_e_c foreign key (majorid )references major(id) 就是约束fk_e_c(这个不起名会默认一个名字)是从表中的字段majorid引用了major表中的id

分类:表级约束和列级约束

1,2,3,4,5都为列级约束,也就是直接加到数据类型后面 名字 类型 约束,
3,4,6为表级约束 表级约束要放在下一行 名字 类型,
约束
比如外键为 constraint fk foreign key(id1) references A(id2)
主键为primary key(id),
唯一约束为constraint uq unique(name),
表之间的关系
在设计外键的时候要考虑表和表之间的关系,
如果是一对一 则有一个是主表有一个是从表 主表中可以没有从表信息 但从表要有主表信息,所以要为从表设置外键
如果是一对多 从不同的角度看主表和从表的关系是不明确的,可以多方创造外键
如果是多对多 一个学生可以有多个老师,一个老师可以有多个学生,可以创建第三张表,这张表中既有学生表外键也有老师表外键

修改表

alter table add/modify/change/drop column 字段 字段类型 约束
1.修改表名
alter table A rename to B;
2.添加字段
alter table A add column age timestamp not null
3.修改字段名
alter table A change column age birthTime datetime;
4.修改字段类型
alter table A modify column birthday timestamp
5.删除字段
alter table A drop column birthday;

删除表

drop table if exists A;

复制表

create table B like A;//复制表结构
create table B select * from A//复制表结构加数据
create table Bselect name,age from A where 1=2;//仅复制表的这俩结构但不复制数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值