最近开始复习数据库的知识,使用的教材是高等教育出版社的《数据库系统概论》第四版和《数据库系统概论习题解析与实验指导》第五版。所有的SQL语句均在SQL Server 2008 R2环境下运行过。
1.基本表定义格式
CREATE TABLE 表名(
列名 数据类型 列级完整性约束条件,
列名 数据类型 列级完整性约束条件,
......
列名 数据类型 列级完整性约束条件,
表级完整性约束条件
);
2.实例
CREATE TABLE Region(/*地区表*/
regionkey INTEGER PRIMARY KEY, /*地区编号*/
name CHAR(25), /*地区名称*/
comment CHAR(152) /*备注*/
);
CREATE TABLE Nation(/*国家表*/
nationkey INTEGER PRIMARY KEY, /*国家编号*/
name CHAR(25), /*国家名称*/
regionkey INTEGER REFERENCES Region(regionkey), /*地区编号*/
comment VARCHAR(152) /*备注*/
);
CREATE TABLE Supplier(/*供应商基本表*/
suppkey INTEGER PRIMARY KEY, /*供应商编号*/
name CHAR(50), /*供应商名称*/
address VARCHAR(80), /*供应商地址*/
nation INTEGER REFERENCES Nation(nationkey), /*国家编号*/
phone CHAR(30), /*供应商电话*/
acctbal REAl, /*账户余额*/
comment VARCHAR(101) /*备注*/
);
CREATE TABLE Part(/*零件基本表*/
partkey INTEGER PRIMARY KEY, /*零件编号*/
name VARCHAR(100), /*零件名称*/
mfgr CHAR(50), /*制造厂*/
brand VARCHAR(50), /*品牌*/
type VARCHAR(25), /*零件类型*/
size INTEGER, /*尺寸*/
container CHAR(10), /*包装*/
retailprice REAL, /*零售价格*/
comment VARCHAR (23) /*备注*/
);
CREATE TABLE PartSupp(/*零件供应联系表*/
partkey INTEGER REFERENCES Part(partkey), /*零件编号*/
suppkey INTEGER REFERENCES Supplier(suppkey), /*供应商编号*/
availqty INTEGER, /*可用数量*/
supplycost REAL, /*供应价格*/
comment VARCHAR(199), /*备注*/
PRIMARY KEY(partkey,suppkey) /*定义主码*/
);
CREATE TABLE Customer(/*顾客表*/
custkey INTEGER PRIMARY KEY, /*顾客编号*/
name VARCHAR(25), /*姓名*/
address VARCHAR(40), /*地址*/
nationkey INTEGER REFERENCES Nation(nationkey), /*国籍编号*/
phone CHAR(15), /*电话*/
acctbal CHAR(10), /*账户余额*/
mktsegment CHAR(10), /*市场分区*/
comment VARCHAR(117), /*备注*/
);
CREATE TABLE Orders(/*订单表*/
orderkey INTEGER PRIMARY KEY, /*订单编号*/
custkey INTEGER REFERENCES Customer(custkey), /*顾客编号*/
orderstatus CHAR(1), /*订单状态*/
totalprice REAL, /*订单总金额*/
orderdate DATE, /*订单日期*/
orderpriority CHAR(15), /*订单优先级别*/
clerk CHAR(15), /*记账员*/
shippriority INTEGER , /*运输优先级别*/
comment VARCHAR(79), /*备注*/
);
CREATE TABLE Lineitem(/*订单明细表*/
orderkey INTEGER REFERENCES Orders(orderkey), /*订单编号*/
partkey INTEGER REFERENCES Part(partkey), /*零件编号*/
suppkey INTEGER REFERENCES Supplier(suppkey), /*供应商编号*/
linenumber INTEGER, /*订单明细编号*/
quantity REAL, /*数量*/
expendedprice REAL, /*订单明细价格*/
discount REAL, /*折扣*/
tax REAL, /*税率*/
returnflag CHAR(1), /*退货标记*/
linestatus CHAR(1), /*订单明细状态*/
shipdate DATE, /*装运日期*/
commidate DATE, /*委托日期*/
receipdate DATE, /*签收日期*/
shipinstruct CHAR(25), /*装运说明*/
shipmode CHAR(10), /*装运方式*/
comment VARCHAR(44), /*备注*/
PRIMARY KEY(orderkey,linenumber),
FOREIGN KEY(partkey,suppkey)REFERENCES PartSupp(partkey,suppkey),
);
3.注意
定义表格的时候注意主码和外码的确定和定义方式,注意每个变量类型和长度的定义。