SQL DDL表操作语句

一、创建表

create table 表名(字段名1 数据类型,字段2 数据类型,字段3 数据类型);

create table t_student(no int,name varchar(32),sex char(1) default 'm');

可以使用default给定默认值,表名建议以t_或者tbl_开头,可读性强

也可以将查询结果当作一张表,表和数据都有:create table emp2 as select * from emp;

查询某一列的结果当作一张表,新建:create table my_table as select ename,empno from emp where job='MANAGER';

二、创建约束

1.非空约束

not null,not null约束的字段不能为空

create table t_vip(id int,name varchar(255) not null);

not null只有列级约束,没有表级约束。

2.唯一性约束

单一字段

unique,约束的字段不能重复,但可以为null。

create table t_vip(id int,name varchar(255) unique);

直接添加在列后面的约束叫列级约束

两字段联合唯一

假如name和email联合唯一,则数据'Zhangsan','Zhangsan@123.com' 和数据'Zhangsan','Zhangsan@sina.com'是可以的。两个字段都一样才会被约束。

create table t_vip(id int,name varchar(255),email varchar(255),unique(name,email));  这种约束叫表级约束。

注意:not null约束和unique约束可以联合使用,在mysql中一个字段如果同时具有not null和unique约束,则该字段自动称为主键字段

3.主键约束

primary key,简称PK

注意:主键值是每一行记录的唯一标识。如果其他数据都一样,主键值不同的话也是两条不同的数据。任何一张表都有主键,没有主键表无效。一张表只能添加一个主键。

主键的特征:not null 且unique,不能是空且不能重复。主键值一般都是数字,定长的,不建议使用varchar类型。建议使用自然主键,即自然数,与业务无关。

create table t_vip(id int primary key,name varchar(255));

也可以使用表级约束写法:

create table t_vip(id int,name varchar(255),primary key(id));

主键值可以采用自增的方式生成

create table t_vip(id int primary key auto_increment,name varchar(255));

insert into t_vip(name) values('zhangsan');

insert into t_vip(name) values('zhangsan');

insert into t_vip(name) values('zhangsan');

insert into t_vip(name) values('zhangsan');

insert into t_vip(name) values('zhangsan');

insert into t_vip(name) values('zhangsan');

虽然没有给id值,但id值自增。

4.外键约束

foreign key,简称FK

学生和班级两张表,如果cno字段没有约束,会产生无效数据如102,103等。

被引用的表为父表(班级表),引用的称为子表(学生表)。创建时先创建父表,删除先删子表。添加了外键约束的子表外键值只能是父表中外键字段的值,否则会报错。

create table t_class(

           classno int primary key,

           classname varchar(255)

);

create table t_student(

           no int primary key atuo_increment,

           name varchar(255),

           cno int,

           foreigin key(cno) references t_class(classno)

);

外键值可以为null,在父表中被引用的字段必须具有unique属性,不一定是主键。

5.检查约束

check

MySQL不支持,oracle支持

三、MySQL中的常见数据类型

1.varchar

可变长度字符串,最长255,即varchar(255)。可根据实际数据动态分配空间。可节省空间,但相较于char效率变低。

2.char

定长字符串,最长255,即char(255)。不管实际数据长度是多少,分配固定长度空间存储数据。

3.int

数字中的整数型,最长11,即int(11)

4.bigint

数字中的长整型

5.float

单精度浮点型

6.double

双精度浮点型

7.date

短日期类型,包括年月日。MySQL短日期默认格式:%Y-%m-%d

8.datetime

长日期类型,包括年月日时分秒.MySQL长日期默认格式:%Y-%m-%d %h:%i:%s

9.clob

字符大对象,最多可以存储4个G的字符串,比如存储一篇文章或说明等。超过255个字符的都要使用clob。

10.blob

用来存储图片、声音、视频等流媒体数据。往blob类型的字段上插入数据时需要使用IO流。

四、删除表

drop table 表名;

或者

drop table if exists 表名;  这种语句不会报错

  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值