SQL语句(一)基本表的定义

    最近开始复习数据库的知识,使用的教材是高等教育出版社的《数据库系统概论》第四版和《数据库系统概论习题解析与实验指导》第五版。所有的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.注意

    定义表格的时候注意主码和外码的确定和定义方式,注意每个变量类型和长度的定义。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中凌乱的小精灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值