一、SQL语法——3-DDL语句

3-DDL语句

  DDL语句是操作数据库对象的语句,包括创建、删除和修改数据库对象;最基本的数据库对象是数据表,数据表时存储对象的逻辑单元,除了数据表之外还有其他的数据库对象存在。

对象名称 对应关键字 描述
table 表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录
数据字典   即系统表,存放数据库相关信息的表,系统表里的数据由数据库系统维护,通常不应该手动修改系统表以及系统表数据,只可查看系统表数据
约束 constraint 执行数据校验的规则,用于保证数据完整性的规则
视图 view 一个或者多个数据表里数据的逻辑显示,视图并不存储数据
索引 index 用于提高查询性能,相当于书的目录
函数 function 用于完成一次特定的运算,具有一个返回值
存储过程 procedure 用于完成一次完整的业务处理,没有返回值,但可以通过传出参数将多个值传给调用环境
触发器 trigger 类似于一个事件监听器,当数据库发生特定事件时,触发器被触发,完成相应的处理


1.创建表的语法

(1)标准的建表语句的语法:

  使用标准的建表语句,在建表后表中没有数据

create table [模式名.] 表名(
    #多个列定义
)

示例:

create table test(
    test_id int,
    test_price decimal,
    test_name varchar(255) default 'null',
    test_desc text,
    test_img blog,
    test_date datetime
)

 

(2)子查询建表语句的语法:

  可以在建表的同时插入数据

create table [模式名.] 表名 [column[,column...]]
as subquery;

示例:如下方式创建hehe表,此表具有如user_inf表相同的表结构和数据;

create table hehe
as
select * from user_inf;

2.修改表结构的语法

(1)增加列定义

#1.增加列定义的语法:
alter table 表名
add(
    #可以有多个列定义
    column_name1 datatype [default expr],
    ...
)
#示例1:
alter table hehe
add
hehe_id int;
#示例2:
alter table hehe
add(
    aaa varchar(255) default 'xxx',
    bbb varchar
)

(2)修改列定义

#2.修改列定义的语法:
alter table 表名
modify column_name datatype [default expr] [first|after col_name]
#示例:
#将hehe表的hehe_id修改成varchar(255)类型
alter table hehe
modify hehe_id varchar(255);
#将hehe表的bbb列修改成int类型
alter table hehe
modify bbb int;

(3)从数据表中删除列

#3.从数据表中删除列语法:
alter table 表名
drop column_name;
#示例:
#删除hehe表中的aaa字段
alter table hehe
drop aaa;

(4)重命名数据表(MySQL中)

#4.重命名数据表的语法:
alter table 表名
rename 新表名;
#示例:
#将hehe表重命名为wawa
alter table hehe
rename wawa;

(5)改变列名(MySQL中)

#5.改变列名以及列定义的语法:
alter table 表名
change old_column_name new_column_name type [default expr] [first|after col_name];
#示例:
#将wawa表的bbb字段重新命名为ddd,并改变其列定义为int
alter table wawa
change bbb ddd int;

3.删除表的语法

(1)删除表的效果:

  1)表结构被删除,表对象不存在

  2)表中的数据被删除

  3)该表所有相关的索引、约束也被删除

(2)删除表

#删除表的语法:
drop table 表名;
#示例:
#删除wawa表
drop table wawa;

4.truncate表

(1)truncate表的作用:

  一次性删除全部的表中数据,但会保留表结构

(2)truncate表的语法:

  truncate 表名。

posted @ 2017-08-03 15:53  丶theDawn  阅读(337)  评论(0编辑  收藏  举报