创建表
一般有两种创建表的方法
1、使用DBMS工具管理和创建数据库的表
2、直接用SQL语句操作
表创建基础
利用CREATE TABLE创建表,必须给出列的信息:
1、新表的名称,在CREATE TABLE后给出
2、表列的名称和定义,用逗号隔开
3、部分DBMS交互工具还需指定表的位置
create table ProductsNew(
prod_id char(10) NOT NULL ,
vend_id char(10) NOT NULL ,
prod_name char(255) NOT NULL ,
prod_price decimal(8,2) NOT NULL ,
prod_desc text NULL
)
这里需要注意,在创建的表的时候必须在当前库中没有当前表名的,防止覆盖已有的表,如果已有需要新建,最好删除表再重新创建
使用NULL的注意事项
NULL值就是没值或者缺值,当允许NULL值的时候也必然允许不传值的时候。
每个表列要么是NULL,要不就是NOT NULL,这些状态在创建时由表的定义规定,如果不指定NOT NULL,就会默认为NULL,这里允许NULL的列不能设置为主键。
CREATE TABLE ProductsNew1(
prod_id char(10) NOT NULL ,
vend_id char(10) NOT NULL ,
prod_name char(255) ,
prod_price decimal(8,2) ,
prod_desc text NULL
)
prod_name和prod_price 默认为NULL
设置默认值
CREATE TABLE OrderItems1
(
order_num int NOT NULL ,
order_item int NOT NULL ,
prod_id char(10) NOT NULL ,
quantity int NOT NULL DEFAULT 1,
item_price decimal(8,2) NOT NULL
);
DEFAULT 在建表的时候添加默认值规则,DEFAULT 1 设置了quantity 的默认值为1,
在插入数据的时候,如果没有设置quantity列的指定值,会默认填写为1
INSERT INTO OrderItems1(order_num, order_item, prod_id, item_price)
VALUES(20005, 1, 'BR01', 5.49);
更新表
ALTER TABLE 更改表结构,必须给出下面信息
1、在ALTER TABEL 之后给出要更新的表名,表必须是存在的不然会报错
2、列出要做那些更改
ALTER TABLE OrderItems1
ADD version_id char(10)
这里由于没有配置是否为NULL的列,系统会默认归类为NULL,如果需要必填最好明确指出该列NOT NULL
ALTER TABLE OrderItems1
ADD version_id_not char(10) NOT NULL
删除指定列
ALTER TABLE OrderItems1
DROP COLUMN version_id_not
更新指定列名(这个一般不会用到)
ALTER TABLE OrderItems1
CHANGE COLUMN version_id version_id_update char(10);
ALTER TABLE 表名
CHANGE COLUMN 旧列明 新列明 类型;
使用ALTER TABLE的时候要非常小心,如果是复杂的表,建议新建表,然后用INSERT SELECT将数据拷贝过去。
如果非要使用ALTER TABLE,在使用用钱最好做好备份。
删除表
DROP TABLE OrderItems1;
重名表
RENAME TABLE OrderItems1 TO OrderItems1New;