MySQL中的DDL(Data Definition Language,数据定义语言)

MySQL中的DDL(Data Definition Language,数据定义语言)

create(创建表)

标准的建表语句:

create table [模式名.]表名
(
    #可以有多个列定义
    columnName1 dataType [default expr(这是默认值)],
    ...
)

圆括号里可以包含多个列定义,每个列定义之间用英文逗号(,)隔开,最后一个列定义不需要逗号,直接以圆括号结束。

建立表只是建立表结构,就是定义数据表有多少列,列包含列名、类类型、可选的默认值(使用default关键字定义)。

MySQL支持的列类型 列类型   说明  
tinyint/smallint/mediumint/int(integer)/bigint   1字节/2字节/3字节/4字节/8字节正数,又可分为有符号和无符号两种。 这些正数类型的区别仅仅是表数范围不同。  
float/double    单精度、双精度浮点类型  
decimal(dec)    精确小数类型,相对于float和double不会产生精度丢失问题  
date    日期类型,不能保存时间。把Java.util.Date对象保存进date列时,时间部分将丢失  
time    时间类型,不能保存日期。把java.util.Date对象保存进time列时,日期部分将丢失  
datetime    日期、时间类型  
timestamp    时间戳类型  
year    年类型,仅仅保存时间的年份  
char    定长字符串类型  
varchar    可变长度字符串类型  
binary    定长二进制字符串类型,它以二进制形式保存字符串  
varbinary    可变长度的二进制字符串类型,它以二进制形式保存字符串  
tinyblob/blob/mediumblob/longblob    1字节/2字节/3字节/4字节的二进制大对象,可用于存储图片、音乐等二进制数据,分别 可存储:255B/64KB/16MB/4GB的大小  
tinytext/text/mediumtext/longtext    1字节/2字节/3字节/4字节的文本对象,可用于存储超长长度的字符串,分别可储存: 255B/64KB/16MB/4GB大小的文本  
enum('value1','value2',...)    枚举类型,该列的值只能是enum后括号里多个值的其中之一  
set('value1','value2',...)   集合类型,该列的值可以是set后括号里多个值的其中几个  

#例句:
create table t_test
(  #整形通常用int
    test_id int,
    #小数定义
    test_price decimal,
    #定义普通文本,使用default关键字指定默认值
    test_name varchar(255) default 'xxx',
    #定义大文本类型
    test_desc text,
    #定义图片
    test_img blob,
    #定义日期
    test_date datetime
);

上面这种常见的建表语句只是创建一个空表,该表里没有任何数据。

如果使用子查询建表语句,则可以在建表的同时插入数据。 语法如下:


create table [模式名.]表名 [column1[, column2, ...] as subQuery;

上面语法中新表的字段列表必须与子查询中的字段列表数量匹配,创建新表时的字段列表可以省略,如果省略了该字段列表,则新 表的列名与选择结果完全相同,如下:

create table user2 as select * from user;

上面的语句相当于把user表复制了一份,取名为user2。

2.alter(修改表结构):
包括增加列定义、修改列定义、删除列、重命名列等

增加列定义:

alter table tableName add
(
    #可以有多个列定义
    columnName dataType [default expr],
    ...
);

上面的语句表示将圆括号里的列追加到指定表的列定义后面。如果只是新增一列,则可以省略圆括号。

#例句:

#为t_test表增加一个add_id字段,该字段的类型为int
alter table t_test add add_id int;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/26f28d706a6901cf2fe38236c4cf774a.html