SQL语句练习(基础版)
最近在学习SQL基本语句的练习,在此分享一下笔者做过的练习以及个人的解决教程:
首先是基本练习表格的搭建,具体内容如下表所示:
Snum | Sname | Ssex | Sage | Sphone | Dname |
---|---|---|---|---|---|
S001 | 王明 | 男 | 19 | 86824571 | 数学系 |
S002 | 李勇 | 男 | 23 | 89454321 | 物理系 |
S003 | 刘燕 | 女 | 21 | 计算机系 | |
S004 | 王萍 | 女 | 23 | 电子系 | |
S005 | 王佳 | 男 | 24 | 13098765892 | 计算机系 |
S006 | 赵婷 | 女 | 20 | 物理系 |
学生表
Snum | Cnum | Score |
---|---|---|
S001 | C1 | 83 |
S001 | C2 | 89 |
S001 | C3 | NULL |
S001 | C4 | 85 |
S001 | C5 | 69 |
S002 | C3 | 78 |
S002 | C4 | 75 |
S003 | C1 | 85 |
S004 | C2 | NULL |
S005 | C1 | 92 |
S005 | C3 | 76 |
选课表
Cnum | Cname | Cfreq |
---|---|---|
C1 | 数据库系统原理 | 4 |
C2 | C程序设计 | 4 |
C3 | 计算机体系结构 | 3 |
C4 | 自动控制原理 | 2 |
C5 | 数据结构 | 4 |
课程表
建立以上表格及数据的代码如下:
--创建数据表的基本数据--
USE 学生选课;
CREATE TABLE 学生(Snum CHAR(4) NOT NULL UNIQUE,
Sname VARCHAR(8) NOT NULL,
Ssex CHAR(2),
Sage SMALLINT DEFAULT 21,
Sphone VARCHAR(20),
Dname VARCHAR(20),
PRIMARY KEY(Snum),
CONSTRAINT C1 CHECK(Ssex IN ('男','女')));
CREATE TABLE 课程(Cnum CHAR(2) PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Cfreq NUMERIC(2,1)
CONSTRAINT C2 CHECK(Cfreq BETWEEN 0 AND 10));
CREATE TABLE 选课(Snum CHAR(4),
Cnum CHAR(2),
Score SMALLINT,
PRIMARY KEY(Snum,Cnum),
CONSTRAINT C3 CHECK(Score BETWEEN 0 AND 100),
CONSTRAINT C4 FOREIGN KEY(Snum) REFERENCES 学生(Snum),
CONSTRAINT C5 FOREIGN KEY(Cnum) REFERENCES 课程(Cnum));
给出相应的INSERT语句来完成题中给出的数据的插入,如:
--INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)--
INSERT INTO 学生 (Snum, Sname,Ssex,Sage,Sphone,Dname)
VALUES ('S001','王明','男','19','86824571','数学系');
具体完成以下例题。将它们转换为SQL语句表示,在学生选课库中实现其数据更新操作。
1)将一新学生记录(‘S007’,’陈冬’,’男’,’18’,’13600524567’,’计算机系’)插入学生表中。
2)插入一条选课记录(‘S002’,’C1’)到选课表中。
3)对每一个系,求学生的平均年龄,并把结果存入数据库。
4)将学生S001的年龄改为22岁。
5)将所有学生的年龄增加一岁。
6)将计算机系全体学生的成绩置零。
7)删除学号为S006的学生记录。
8)删除所有的学生选课记录。
9)删除计算机系所有学生的选课记录。
10)在已经存在的学生表中增加一个邮件地址“Email”的新属性列,允许为空。
11)修改学生表中“姓名”的数据类型为VARCHAR(20)。
以下为示例代码,仅供参考:
--(1)--
Insert Into 学生(Snum,Sname,Ssex,Sage,Sphone,Dname)
values('S007','陈冬','男','18','13600524567','计算机系');
--(2)--
Insert Into 选课(Snum,Cnum)
values('S002','C1');
--(3)--
Create Table 院系(Dname Varchar(20),AverageAge Smallint);
Insert into 院系 select Dname,avg(Sage) as AverageAge from 学生 group by Dname;
--(4)--
update 学生 set Sage = 22 where Snum = 'S001';
--(5)--
update 学生 set Sage = Sage + 1;
--(6)--
update 选课 set Score = 0
where Snum in (select Snum from 学生 where Dname = '计算机系')
--(7)--
Delete from 学生 where Snum = 'S006';
--(8)--
Delete from 学生;
--(9)--
Delete from 学生 where Dname = '计算机系';
--(10)--
alter table 学生 alter column Email varchar(20) null;
--(11)--
alter table 学生 alter column Sname varchar(20);
SQL语句练习(基础版)的更多相关文章
- 常用经典SQL语句大全(基础)
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sqlserver --- 创 ...
- sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)
1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...
- 数据库之SQL语句查询基础
人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想. 人没有梦想是荒废的,是漫无目的的,拥有梦想你会飞的更远. 下面我就来为大家介绍一下SQL语句的查询基础,以下使用MySchool数据 ...
- mysql基本sql语句大全(基础用语篇)
1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...
- SQL语句的基础
注释语法:#注释语 一.T-SQL语句注意:1.语句写完后用"分号:"代表这一句结束2.列结束用逗号,最后一列写完不用写逗号3.符号一定是英文的 关键字:主键:primary ke ...
- sql语句练习-基础篇
本文内容源自改编http://blog.csdn.net/ochangwen/article/details/51297893, 针对mysql数据库做了语法更改 个人觉得原版有些不合理之处,改了部分 ...
- SQL语句总结基础篇
创建数据库 CREATE DATABASE 数据库名称; 删除数据库 DROP DATABASE 数据库名称; 创建新表 create table 表名(列 类型 ,列 类型 ,..); 根据已有的表 ...
- SQL语句练习(进阶版)
学生数据库中有三个基本表(关系)如下: 学生表S(Sno,Sname,Age,Sex,SD) 课程表C(Cno,Cname, Teacher) 选课表SC(Sno,Cno,Grade) 请用SQL语言 ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
随机推荐
- H5 下拉刷新、加载更多
H5 下拉刷新.加载更多 demos const autoLoadMore = (url = ``) => { // todo ... } refs xgqfrms 2012-2020 www. ...
- React Native 三端同构
React Native 三端同构 https://www.ibm.com/developerworks/cn/web/wa-universal-react-native/index.html rea ...
- css & box-shadow & outline
css & box-shadow & outline CSS3 box-shadow : 4 sides symmetry https://learning.xgqfrms.xyz/C ...
- Masterboxan INC发布印尼电商市场报告
据海外媒体报导,Masterboxan INC(编号:20151264097)发布了印尼电商市场观察报告,指出印尼电商市场仍然有很大的发展潜力. Masterboxan INC表示,与发达国家从 PC ...
- NGK” 呼叫河马 “智能合约火爆全网
最近有一款基于NGK.IO公链上的智能合约"呼叫河马"在区块链市场很火.通过访问和查阅资料可知,"呼叫河马"是一款全新的智能合约Dapp小游戏,智能合约代码是1 ...
- NGK全球启动大会正式启动,资产上链的前景与机会在哪?
据彭博社报道,加州时间11月25日,NGK全球启动大会在美国硅谷圆满落幕,本次NGK全球启动大会为NGK全球化进程正式拉开了帷幕. 众多业界人士共襄盛举,共同进行探讨未来公链发展的去向和契机. 当前, ...
- [转]自动驾驶平台Apollo 2.5环境搭建
原文地址:https://blog.csdn.net/jinzhuojun/article/details/80210180,转载主要方便随时查阅,如有版权要求,请及时联系. 我们知道,自动驾驶在学界 ...
- C++算法代码——三连击[NOIP1998 普及组]
题目来自:https://www.luogu.com.cn/problem/P1008 题目背景 本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序. 题目 ...
- SSL (Secure Sockets Layer)
本文转载自SSL (Secure Sockets Layer) TLS简介 The Transport Layer Security (TLS) protocol aims primarily to ...
- JS把数组元素分组
有一个数组,把其中的元素按照每5个进行重新分组,新的数组放到放到大数组中,且看代码 let data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ...