上回说到:《SQL必知必会》(15、16):插入数据、更新和删除数据
之前我们说过的都属于 DML
SQL语句的类型 :
DML(Data Manipulation Language) ,数据操作语言。 insert delet update select
DDL(Data Definition Languages) ,数据定义语言。 create truncate alter table
DCL(Data Control Language), 数据控制语言。 grant revoke
接下来我们开始说,DDL,数据定义语言
第十七课:创建和操纵表
17.1 创建表
在我们的实际应用中,很少用到 使用SQL语句,对表进行操作了,大多数的DBMS都有相应的可视化界面,可以直接操作。
现在我们需要用程序,也就是SQL语句来实现。
17.1.1 表创建基础
create table,必须给出以下信息:
- 新表的名字
- 表列的名字和定义,用逗号分隔
CREATE TABLE Products (
prod_id CHAR ( 10 ) NOT NULL,
vend_id CHAR ( 10 ) NOT NULL,
prod_name CHAR ( 254 ) NOT NULL,
prod_price DECIMAL ( 8, 2 ) NOT NULL,
prod_desc VARCHAR ( 1000 ) NULL
);
还有很多创建表的例子,可以查看附录中:附录
注意,表名不能重复。
17.1.2 使用NULL值
null值就是没有值,在新建表时,可以指定 not null ,如上例。
只有不允许null的列,才可以作为主键。
null是没有值,而不是空字符串,如果空字符串是' '
,要注意。
17.1.3 指定默认值
SQL允许指定默认值,再插入时 如果没有赋值,DBMS将采用默认值。在create table时,用关键字default指定,跟在not null 后就好,属于列的内容。
17.2 更新表
- 尽量不要修改表,尤其是在有数据的时候,应该在设计表示,充分考虑好所有的情况。尽量不要修改。
- 有些DBMS不允许修改或删除列。
- 有的限制修改或删除 有数据的列,对没有数据的不限制。
综上,能不改就不改。
语法:
ALTER TABLE Vendors DROP COLUMN vend_phone;
# 删除就是drop 添加就是 add
使用之前,记得备份!!!!
17.3 删除表
drop table CustCopy;
语法很简单,但是跟delete不同,delete可以rollback,drop不可以,所以 备份!!!
17.4 重命名表
DBMS之间差别较大,由于MySQL较为常用(其实是我在用),我们就基于Mysql来举例。
rename table table1_ altered to table;
17.5 小结
主要介绍了 create table,alter ,drop。
注意,这些操作都不可撤销,所以要小心执行,在执行前,记得备份~~!