SQL练习题(1)

声明:所有题目均是百度搜索,再由自己整理出来的,并非自己出的题。

一,基本表的定义与删除.

题1: 
用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC),这三张表的结构如表1-1到表1-3所示。

表1-1 Student表结构
列名 说明 数据类型 约束
Sno 学号 字符串,长度为7 主码
Sname 姓名 字符串,长度为10 非空
Ssex 性别 字符串,长度为2 取‘男’或‘女’
Sage 年龄 整数 取值15~45
Sdept 所在系 字符串,长度为20 默认为‘计算机系’

-- DEFAULT ‘默认值’

CREATE TABLE Student(

Sno CHAR(7) COMMENT '学号',

Sname CHAR(10) NOT NULL COMMENT '姓名',

Ssex CHAR(2) COMMENT '性别' CHECK(Ssex='男' OR Ssex='女') ,

Sage INT COMMENT '年龄' CHECK(15 <= Sage AND Sage <= 45),

Sdept CHAR(20) DEFAULT '计算机系' COMMENT '所在系',

PRIMARY KEY (Sno)

);


表1-2Course表结构
列名 说明 数据类型 约束
Cno 课程号 字符串,长度为10 主码
Cname 课程名 字符串,长度为20 非空
Ccredit 学分 整数 取值大于0
Cemster 学期 整数 取值大于0
Period 学时 整数 取值大于0

CREATE TABLE Course

(Cno CHAR(10) COMMENT '课程号' PRIMARY KEY,

Cname CHAR(20) NOT NULL COMMENT '课程名',

Credit INT(11) COMMENT "学分" CHECK(Credit > 0),

Cemster INT(11) COMMENT "学期" CHECK(Semster > 0),

Period INT(11) COMMENT "学时" CHECK(Period > 0)

);

错误写法:

CREATE TABLE Course(

Cno CHAR(10) PRIMARY KEY COMMENT '课程号',

Cname CHAR(20) NOT NULL COMMENT '课程名',

Credit INT(11) CHECK(Credit > 0)  COMMENT "学分",

Cemster INT(11)  CHECK(Semster > 0) COMMENT "学期",

Period INT(11)  CHECK(Period > 0) COMMENT "学时"

);

 

表1-3 SC表结构
列名 说明 数据类型 约束
Sno 学号 字符串,长度为7 主码,引用Student的外码
Cno 课程名 字符串,长度为10 主码,引用Course
Grade 成绩 整数 取值0~100

-- 设置两个主键时不能写在单独列后面

CREATE TABLE SC(

Sno CHAR(7) COMMENT '学号',

Cno CHAR(10) NOT NULL COMMENT '课程名',

Grade INT(11) COMMENT "成绩" CHECK(Grade > 0 AND Grade < 100),

FOREIGN KEY (Sno) REFERENCES Student(Sno),

FOREIGN KEY (Cno) REFERENCES Course(Cno),

PRIMARY KEY (Sno, Cno)

);

二,修改表结构题2:
为SC表添加“选课类别”列,此列的定义为XKLB char(4).

ALTER TABLE sc ADD XKLB CHAR(4);

题3:
将新添加的XKLB的类型改为char(6)。
 

ALTER TABLE sc MODIFY XKLB CHAR(6);

题4:
删除Course表的Period列。

ALTER TABLE Course DROP Period;

 

三,数据查询功能

表3-1 Student表数据
Sno Sname Ssex Sage Sdept
9512101 李勇 男 19 计算机系
9512102 刘晨 男 20 计算机系
9512103 王敏 女 20 计算机系
9521101 张立 男 22 信息系
9521102 吴宾 女 21 信息系
9521103 张海 男 20 信息系
9531101 钱小平 女 18 数学系
9531102 王大力 男 19 数学系 

INSERT INTO student VALUES

(9512101, '李勇', '男', 19, '计算机系'),

(9512102, '刘晨', '男', 20, '计算机系'),

(9512103, '王敏', '男', 20, '计算机系
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值