赞
踩
本文设计创建数据库数据表的一些sql语句的实操,即数据库数据表的定义语句。
以及一些修改表的基本操作,比如添加删除一个字段等。
列名 | 说明 | 数据类型 | 约束 |
SNO | 学号 | CHAR(7) | 主码 |
SNAME | 姓名 | CHAR(10) | NOT NULL |
SSEX | 性别 | CHAR(2) | 取“男”或“女” |
SAGE | 年龄 | SMALLINT | |
SDEPT | 所在系 | VARCHAR(20) | 默认“计算机系” |
create table student(
SNO CHAR(7) NOT NULL,
SNAME CHAR(7) NOT NULL,
SSEX ENUM('男','女'),
SAGE SMALLINT(2),
SDEPT VARCHAR(20) DEFAULT '计算机系',
PRIMARY KEY(SNO));
列名 | 说明 | 数据类型 | 约束 |
CNO | 课程号 | CHAR(10) | 主码 |
CNAME | 课程名 | VARCHAR(20) | NOT NULL |
CCREDIT | 学分 | SMALLINT | |
SEMSTER | 学期 | SMALLINT | |
PERIOD | 学时 | SMALLINT |
CREATE TABLE course(
CNO CHAR(10) NOT NULL,
CNAME VARCHAR(20) NOT NULL,
CCREDIT SMALLINT,
SEMSTER SMALLINT,
PERIOD SMALLINT,
PRIMARY KEY(CNO)
);
列名 | 说明 | 数据类型 | 约束 |
SNO | 学号 | CHAR(7) | 主码 引用Student的外码,设置删除限制,更新级联 |
CNO | 课程号 | CHAR(10) | 主码,引用Course的外码,设置删除限制,更新级联 |
GRADE | 成绩 | SMALLINT |
CREATE TABLE sc(
SNO CHAR(7) NOT NULL,
CNO CHAR(10)NOT NULL,
GRADE SMALLINT,
PRIMARY KEY(SNO,CNO),
FOREIGN KEY(SNO)REFERENCES student(SNO)
ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY(CNO)REFERENCES course(CNO)
ON DELETE RESTRICT ON UPDATE CASCADE
);
列名 | 说明 | 数据类型 | 约束 |
SNO | 供应商号 | CHAR(6) | PRIMARY KEY |
SNAME | 供应商名 | VARCHAR(20) | NOT NULL |
SSTATUS | 供应商状态 | SMALLINT(2) | |
CITY | 所在城市 | VARCHAR(50) |
CREATE TABLE s(
SNO CHAR(6) NOT NULL,
SNAME VARCHAR(20) NOT NULL,
STATUS SMALLINT(2),
CITY VARCHAR(50),
PRIMARY KEY(SNO)
);
列名 | 说明 | 数据类型 | 约束 |
PNO | 零件号 | CHAR(6) | PRIMARY KEY |
PNAME | 零件名 | VARCHAR(20) | NOT NULL |
COLOR | 颜色 | CHAR(2) | 取(红、绿、蓝)其中之一 |
WEIGHT | 重量 | DECIMAL(9,2) | 默认值1.0 |
CREATE TABLE p(
PNO CHAR(6) NOT NULL,
PNAME VARCHAR(20) NOT NULL,
COLOR ENUM('红','绿','蓝'),
WHIGHT DECIMAL(9,2) DEFAULT 1.0,
PRIMARY KEY(PNO) );
列名 | 说明 | 数据类型 | 约束 |
SNO | 供应商号 | CHAR(6) | 主码 |
PNO | 零件号 | CHAR(6) | 主码 |
JNO | 项目号 | CHAR(6) | 主码 |
QTY | 供应数量 | SMALLINT | DEFAULT 100 |
CREATE TABLE spj(
SNO CHAR(6) NOT NULL,
PNO CHAR(6) NOT NULL,
JNO CHAR(6) NOT NULL,
QTY SMALLINT DEFAULT 100,
PRIMARY KEY(SNO,PNO,JNO)
);
修改课程表course的CNAME属性列的类型为VARCHAR(30);
ALTER TABLE course MODIFY CNAME VARCHAR(30);
为零件表:p 增加一个规格(GUIGE)列,数据类型为字符,长度50;
ALTER TABLE p ADD GUIGE CHAR(50);
列名 | 说明 | 数据类型 | 约束 |
SNO | 供应商号 | CHAR(6) | NOT NULL |
PNO | 零件号 | CHAR(6) | NOT NULL |
JNO | 项目号 | CHAR(6) | NOT NULL |
QTY | 供应数量 | SMALLINT | DEFAULT 100 |
修改表结构,增加一个自动增长列,列名为id,并设置为主码(注意:自动增长列必须为表的主码)
ALTER TABLE spj
ADD id INT AUTO_INCREMENT NOT NULL,
ADD PRIMARY KEY(id);
为供应情况表spj添加参照完整性约束(无需设置规则,采用默认约束规则)
spj的SNO列参照s表SNO列,采用默认规则;
spj的PNO列参照p表PNO列,设置删除级联;
spj的JNO列参照j表JNO列,设置更新级联;
ALTER TABLE spj
ADD FOREIGN KEY(SNO) REFERENCES s(SNO),
ADD FOREIGN KEY(PNO) REFERENCES p(PNO)
ON DELETE CASCADE,
ADD FOREIGN KEY(JNO) REFERENCES j(JNO)
ON UPDATE CASCADE;
列名 | 说明 | 数据类型 | 约束 |
JNO | 项目号 | CHAR(6) | PRIMARY KEY |
JNAME | 项目名 | VARCHAR(20) | NOT NULL |
CITY | 城市 | VARCHAR(50) |
CREATE TABLE j(
JNO CHAR(6) NOT NULL,
JNAME VARCHAR(20) NOT NULL,
CITY VARCHAR(50),
PRIMARY KEY(JNO)
);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。