数据库-创建和操纵表

新建数据库 新建和删除模式 新建、更新、删除表

将自己的数据库丰富一下下。

新建自己的数据库

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
);

在创建表的时候会规定每一列是否可以为空值,用NULLNOT 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;

Posts in this Series