设为首页 加入收藏

TOP

MySQL中的DDL(Data Definition Language,数据定义语言)
2018-03-18 16:21:35 】 浏览:43
Tags:MySQL DDL Data Definition Language 数据 定义 语言

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


create(创建表)


标准的建表语句:


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


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


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


#例句:
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;



#为t_test表增加add_name、add_address字段,类型都为varchar
alter table t_test add
(
    add_name varchar(255) default 'this is name',
    add_address varchar(255)
);


复制代码


注意:SQL语句中的字符串不是用双引号,而是用单引号;增加字段时,如果数据表中已有数据记录,除非给新增的列指定了默认值,
            否则新增的数据列不可指定为非空约束,因为那些已有的记录在新增列上肯定是空。    (只要新增的约束与已有的数据冲突,修改数据表结构就会失败)。


修改列定义:


alter table tableName modify columnName dataType [default expr] [first | after columnName];


上面语法中的first或者after columnName表示将目标列修改到指定的位置。


#例句:


#将t_test表中的add_id列的类型修改成varchar(255)类型
alter table t_test modify add_id varchar(255);


#将t_test表中的add_name列修改成int类型
alter table t_test modify add_name int;


删除列定义:


alter table tableName drop columnName;


删除列,只需要在drop关键字后跟上要删除的列名即可。


#删除t_test表中的add_name列
alter table t_test drop add_name;


重命名数据表名:


alter table tableName rename to newTableName;


#例句:
#将t_test数据表重命名为t_demo
alter table t_test rename to t_demo;


重命名数据表中的列名:


alter table tableName change
    old_column_name new_column_name dataType [default expr] [first | after column_name];


3.drop(删除表):


#语法:
drop table tableName;


#例句:
#删除t_demo数据表
drop table t_demo;


注意:删除数据表后,表结构被删除,表对象不再存在;表里的所有数据也被删除;该表所有相关的索引、约束也被删除。


4.truncate(截断表)
删除表里的全部数据,但保留表结构。truncate只能一次性删除整个表的全部记录。


#语法:
truncate tableName;


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇PL/SQL编程基础简介及实践 下一篇关于MySQL数据库约束

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目