数据库-创建和操纵表
新建数据库 新建和删除模式 新建、更新、删除表
将自己的数据库丰富一下下。
新建自己的数据库
CREATE DATABASE mysql;
CREATE DATABASE
后添加数据库名字,表示新建一个名为mysql
的数据库。
数据库设置最大存储空间的语句
CREATE DATABASE mysql
ON
(SIZE = 300MB);
表示数据库文件最大存储空间上限大小为300MB。
数据库文件后缀名
- 主数据库文件后缀: mdf;
- 次数据库文件后缀: ndf;
- 日志文件后缀: ldf;
- 备份文件后缀: bak;
新建模式
类似于将一个完整的数据库用模式的方式分开,一个模式只能读取这个完整数据库的一部分,但它相当于一个相对完整的数据库,在其中也可以完成任何操作。 新建模式和删除模式的方法我放在下面了。
CREATE SCHEMA schema_name AUTHORIZATION ower_name;
DROP SCHEMA schema_name ;
类似于这样的东西会有很多关联的东西,有的时候正常的删除是不允许的,这样我们就要用到CASCADE
级联RESTRICT
限制
- 级联
CASCADE
连着关联着的一起删除。 - 限制
RESTRICT
如果子表中有匹配的记录,则不允许对父表对应候选键进行UPDATE/DELETE
操作。
创建表
创建表的基础
- 新表的名字,在关键字
CREATE TABLE
之后给出 - 表列的名字和定义,用逗号分隔
就像我们数据库中的OrderItems
表,它的新建方式就是
CREATE TABLE Products
(
order_num INTEGER NOT NULL,
order_item INTEGER NOT NULL,
prod_id CHAR(10) NOT NULL,
quantity INTEGER NOT NULL DEFAULT 1,
item_price DECIMAL(8,2) NOT NULL
);
在创建表的时候会规定每一列是否可以为空值,用NULL
和NOT NULL
来规定这一列中的值是否能为空,当然如果空着没有写任何数,则默认为NULL
。
我们在新建表结构时,也可以规定默认值,利用DEFAULT
来定义表中默认值,这个关键字后写入我们要付给这个字段的默认值。
获得系统日期
利用GETDATE()
来获取当前系统的时间。
设置列自增长的约束
在列名后或者利用完整性约束来设置自增长,identity
。
order_num INTEGER NOT NULL identity(1,1)
这个子句中表示从1开始每次增长1。
更新表
用ALTER TABLE
更改表结构。
新增列
ALTER TABLE Vendors
ADD vend_phone CHAR(20);
修改列属性
ALTER TABLE Vendors
ALTER COLUMN vend_phone char(30);
删除列
当然我们可以新建列,当然也可以删除列
ALTER TABLE Vendors
DROP COLUMN vend_phone;
这里面COLUMN
表示列的意思,也就是修改列。
删除表
用DROP TABLE
来删除表
DROP TABLE CustCopy;