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 表名。