第3章SQL_作业讲评 (2)
第3章SQL语言习题参考答案(新)
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2),WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
第3章讲义sql server
3.6 SQL Server 2005数据库架构一、数据库是SQL Server用以存放数据和数据库对象的容器。
数据库包括表、索引、存储过程、视图、触发器、用户、角色、类型、函数等对象。
二、数据库的组成及存储结构数据库的存储结构分为逻辑存储结构和物理存储结构两种。
数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成,实际上,SQL Server的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成。
数据库的物理存储结构是讨论数据文件是如何在磁盘上存储的,数据库在磁盘上是以文件为单位存储的,由数据文件和事务日志两类文件组成,存储数据的文件叫数据文件,存储日志的文件叫做日志文件。
数据库对象关系图表视图存储过程用户角色规则默认值用户定义的数据类型用户定义的函数全文目录组成逻辑结构逻辑数据库逻辑数据库描述数据结构,定义数据之间的联系。
例如,“学生选课”数据库的数据结构定义如下。
学生基本信息表S(学号,姓名,性别,出生日期,系,电话)课程数据表C(课程号,课程名,学分,预选课程号,教师)学生选课数据表SC(学号,课程号,成绩)物理数据库根据这些文件的作用不同,可以分为三类,具体如下。
(1)主数据文件:每个数据库有且仅有一个主数据文件,它包含数据及数据库的启动信息,是数据库和其他数据文件的起点。
主数据文件的扩展名为.mdf。
(2)次数据文件:这些数据文件用于存储不能存在主数据文件中的数据和数据库对象,默认扩展名为.ndf。
一个数据库中可以有多个次数据文件,如果主文件可以包含数据库中的所有数据,那么就可以没有次数据文件。
如果数据库很大,可以设置多个次数据文件,次数据文件可以位于不同磁盘驱动器上。
(3) 日志文件:用于存储所有事务对数据库执行修改的记录,利用事务日志备份可以恢复数据库,一个数据库可以有一个或多个日志文件,扩展名为.ldf。
日志文件最小为512 KB。
数据和事务日志信息不能存储在同一文件中数据库文件主数据文件.MDF•唯一的•包含数据库的启动信息、数据信息•事务日志文件.LDF•至少一个•包含恢复数据库的所有日志信息•次要数据文件.NDF•零个、一个或多个•主数据文件中容纳不下的数据•使用次要数据文件可以将数据存储到不同的磁盘上,提高数据处理的效率.一个数据库至少应该包含一个主数据文件和一个事务日志文件2.文件组每个数据库都有一个PRIMARY文件组。
SQL讲义
软件技术讲义一、键的概念1. 键――如果关系的某一属性或属性组的值能唯一地决定其它所有属性的值,而其任何真子集无此性质,则称该属性或属性集为关系的候选键或键2. 主键――当一个关系能有多个候选键时,可选定一个作为主键( PK )3. 候补键――主键之外的候选键4. 主属性――包含在任何一个候选键中的属性5. 非主属性――不包含在任何一个候选键中的属性6. 外键――不是本关系的键,却引用了其它关系或本关系的键的属性或属性组,记做( FK )二、SQL1. SQL支持的数据类型:2. DDL(1). 定义基本表:①.语法:CREATE TABLE <表名>(<列名> <类型> [列级完整性约束条件][,<列名> <类型> [列级完整性约束条件] … ][,<表级完整性约束条件>] ) ;②. 列级完整性约束条件――两个任选项·NOT NULL →此列不得设置为NULLNOT NULL后加UNIQUE任选项→列值唯一,不得重复·DEFAULT→此列的值空缺时,由系统填以该缺省值缺省值有三种:事先定义的字值用户标识符(USER)NULL,前面应无NOT NULL选项③. 表级完整性约束条件(主键子句,外键子句,CHECK子句)·主键(PRIMARY KEY)子句——提供实体完整性约束的说明, 每表一个主键格式:PRIMARY KEY (<列名表>)列名表中的各列必须满足NOT NULL和唯一性条件·外键(FOREIGN KEY)子句——提供参照完整性约束说明,每表0~多个格式:FOREIGN KEY [外键名] (<列名表1>)REFERENCES <主表名>[(列名表2)][ON DELETE <RESTRICT | CASCADE | SET NULL>] RESTRICT:主表中的值已被访问时,不能删除CASCADE:主表中的值被删除时,引用表(副表)中元组全部删除SET NULL:主表中的值被删除时,引用表(副表)中元组外键值为NULL ·可选的检查(CHECK)子句——对元组某属性的取值的约束说明格式:CHECK(约束表达式)例如:说明分数GRADE应取NULL或0~100之间的整数值CREATE TABLE SC( SNO CHAR(7) NOT NULL,… ,GRADE SMALLINT,CHECK((GRADE IS NULL) OR (GRADE BETWEEN 0 AND100)) ); 举例:定义STUDENT(学生), SC(选课)两个基表。
sql课程设计作业
sql课程设计作业一、教学目标本课程的教学目标是使学生掌握SQL语言的基本语法和操作,能够熟练地使用SQL进行数据库的创建、表的创建和操作、数据的查询和更新等操作。
1.掌握SQL语言的基本语法和操作。
2.了解数据库的基本概念和原理。
3.掌握数据库的创建、表的创建和操作、数据的查询和更新等操作。
4.能够独立完成数据库的创建、表的创建和操作、数据的查询和更新等操作。
5.能够编写简单的SQL脚本程序。
情感态度价值观目标:1.培养学生的逻辑思维能力和问题解决能力。
2.培养学生的团队合作意识和沟通能力。
3.培养学生的自主学习和持续学习的意识。
二、教学内容本课程的教学内容主要包括SQL语言的基本语法和操作、数据库的基本概念和原理、数据库的创建、表的创建和操作、数据的查询和更新等操作。
1.SQL语言的基本语法和操作:SELECT、INSERT、UPDATE、DELETE等命令的语法和用法。
2.数据库的基本概念和原理:数据库的概念、关系型数据库的原理、SQL的作用和地位。
3.数据库的创建:使用SQL创建数据库的基本语法和步骤。
4.表的创建和操作:使用SQL创建表的基本语法和步骤,表的属性和约束,表的插入、更新和删除操作。
5.数据的查询:使用SQL进行数据查询的基本语法和用法,包括单表查询、多表查询、聚合函数等。
三、教学方法本课程的教学方法包括讲授法、案例分析法、实验法等。
1.讲授法:通过教师的讲解和解释,使学生掌握SQL语言的基本语法和操作,理解数据库的基本概念和原理。
2.案例分析法:通过分析实际案例,使学生掌握SQL语言的应用和实际操作,培养学生的问题解决能力。
3.实验法:通过实验操作,使学生掌握数据库的创建、表的创建和操作、数据的查询和更新等操作,培养学生的实际操作能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料、实验设备等。
1.教材:选用权威、实用的SQL语言教材,作为学生学习的主要参考资料。
数据库sql基础知识大全 ppt课件
Spring, 2009.
9
SQL的数据定义 第三章
关系数据库 语言SQL
3.2 SQL的数 据定义
定义和修改基本表(定义模式中的关系):
CREATE TABLE DROP TABLE ALTER TABLE
定义视图(定义外模式):
CREATE VIEW DROP VIEW
定义索引(定义内模式):
索引的建立和删除 第三章
关系数据库 语言SQL
3.2 SQL的数 据定义
建立索引是加快查询速度的有效手段 建立索引
DBA或表的属主(即建立表的人)根据需要建立 有些DBMS自动建立以下列上的索引
▪ PRIMARY KEY ▪ UNIQUE
维护索引
DBMS自动完成
使用索引
DBMS自动选择是否使用索引以及使用哪些索引
3.2 SQL的数 据定义
基本格式
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ ALTER COLUMN <列名> <数据类型> ]; <表名>:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约 束条件
Spring, 2009.
SQL第三章课后习题答案
--1):创建数据库并进行一些操作:create database studentonprimary (name=sudent_datafilename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\student.mdf',size=20,maxsize=50,filegrowth=25%)log on(name=student_log,filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\student_log.LDF',size=3,maxsize=10,filegrowth=1)--2):将数据库student的初始分配空间大小扩充到40Muse studentgoalter database studentmodify file(name=student,size=40)--3):将数据库student的空间压缩到最小容量use studentgodbcc shrinkdatabase('student',2)--4):将student数据库重新设置为只读状态EXEC sp_dboption 'student','read only',false--5):将student数据库改名为scholasticexec sp_renamedb 'student','scholastic'--6):删除scholastic数据库drop database scholastic--7):采用系统存储过程分离和附加数据库create database studentexec sp_detach_db @dbname='student' --从服务器分离student数据库exec sp_attach_db @dbname=N'student'@filename1=N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\student_Data.mdf'@filename2=N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\student_log.LDF'--本章习题:--1:--(1)、关系数据库以二维表的形式存储数据--(2)、系统数据库和用户数据库--(3)、master,model,mdb,tempdb--master数据库记录了SQL server 2005的所有系统级信息--madel数据库为用户创建新的数据库提供模板--msdb数据库是SQL Server 2005代理服务使用的数据库--tempdb数据库保存所有的临时表和临时存储过程--(4)、使用对象资源管理器创建跟使用T-SQL语句创建用户数据库--(5)、--举例如下:--create database student 创建一个名为student的数据库--on 指定存储数据库数据部分的磁盘文件--primary (NAME=student, 主要的,命名--FILENAME='D:\student.mdf', 存储位置--size=3, 初始大小--maxsize=10, 最大容量--filegrowth=1) 增长方式--LOG on 指定建立数据库的日志文件--(name=student, 命名--filename='D:\student.ldf', 地址--size=1, 初始大小--maxsize=10, 最大容量--filegrowth=1)增长方式--(6)、--在数据库中创建一个数据表,以及对数据表中的某一数据进行修改等操作都是一个事务--事务日志的作用,根据日志文件信息,可以重新执行某些事务,完成某些未完成的事务,将数据库回滚--到之前的缪戈时间状态、复制事务或服务器等。
SQL第三章
SQL Server实用教程
2014年3月11日星期二
Page 14
3.3 创建数据库
Hale Waihona Puke 若要创建数据库,必须确定数据库的名称、所有 者、大小以及存储该数据库的文件和文件组。 创建数据库的注意事项如下。 (1)创建数据库需要一定许可,在默认情况下, 只有系统管理员和数据库拥有者可以创建数据库。 数据库被创建后,创建数据库的用户自动成为该 数据库的所有者。 (2)创建数据库的过程实际上就是为数据库设 计名称、设计所占用的存储空间和存放文件位置 的过程等,数据库名字必须遵循SQL Server命 名规范。
SQL Server实用教程
2014年3月11日星期二
Page 7
3.1.2 数据库文件组
为便于分配和管理,可以将数据库对象和文件一起分成文 件组。SQL Server 2005有以下两种类型的文件组。 (1)主文件组 主文件组包含主数据文件和任何没有明确分配给其他文件组 的其他文件。系统表的所有页均分配在主文件组中。 (2)用户定义文件组 用户定义文件组是通过在CREATE DATABASE或ALTER DATABASE语句中使用FILEGROUP关键字指定的任何文件 组。 日志文件不包括在文件组内。日志空间与数据空间分开管理。 一个文件不可以是多个文件组的成员。 每个数据库中均有一个文件组被指定为默认文件组。
SQL Server实用教程
2014年3月11日星期二
Page 17
3.3.2 用SQL 命令创建数据库
其语法格式如下。 CREATE DATABASE database_name [ON [<filespec> [,...n] ] [,<filegroup> [,...n] ] ] [LOG ON{<filespec> [,...n] } ] [COLLATE collation_name]
(完整版)第三章SQL练习题参考答案
11、针对以上四个表,用SQL语言完成以下各项操作:①给学生表增加一属性Nation(民族),数据类型为Varchar(20);Alter table studentadd Nation Varchar(20);②删除学生表中新增的属性Nation;Alter table studentdrop column Nation;③向成绩表中插入记录(”2001110”,”3”,80);insert into Gradevalues('2001103','3',80);④修改学号为”2001103”的学生的成绩为70分;update Gradeset Gmark=70where Sno='2001103';⑤删除学号为”2001110”的学生的成绩记录;delete Gradewhere Sno='2001110';⑥为学生表创建一个名为,以班级号的升序排序;create index IX_Class on student(Clno ASC);⑦删除IX_Class索引Drop index IX_Class12、针对以上四个表,用SQL语言完成以下各项查询:①找出所有被学生选修了的课程号;select distinct cnofrom grade;②找出01311班女学生的个人信息;select *from studentwhere clno=01311 and ssex='女';③找出01311班、01312班的学生姓名、性别、出生年份;Select sname,ssex, year(getdata())-sage as ‘出生年份’from studentwhere clno in('01311','01312');④找出所有姓李的学生的个人信息;Select *from studentwhere sname like ’李%’;⑤找出学生李勇所在班级的学生人数;Select count(*)from studentwhere clno in (select clnofrom studentwhere sname= '李勇');⑥找出课程名为操作系统的平均成绩、最高分、最低分;Select avg(gmark),max(gmark),min(gmark)from gradewhere cno =(select cnofrom coursewhere cname='操作系统');⑦找出选修了课程的学生人数;Select count(distinct sno)from grade;⑧找出选修了课程操作系统的学生人数;Select count(sno)from gradewhere cno =(select cnofrom coursewhere cname='操作系统');⑨找出2000级计算机软件班的成绩为空的学生姓名。
《数据库原理及应用》教学课件 第三章SQL基础
第三章 SQL基础
本章导读
结构化查询语言(Structured Query Language,SQL) 是关系数据库的标准语言,是集数据查询、数据操纵、数 据定义与数据控制于一体的综合性语言。在关系数据库 中,可以通过它完成数据库内的所有操作。本章首先介绍 SQL的发展及特点,然后通过实例介绍数据库和数据表的 基本操作。
④ MODIFY FILE:指定要修改的文 件。
⑤ ADD FILEGROUP:向数据库中 添加文件组。
⑥ REMOVE FILEGROUP:从数据 库中删除文件组。若文件组不为空,则 无法删除。
⑦ “[ , … N]”表示在前一语句后可 接N个同格式语句。
⑧ “|”表示用其隔开的语句在一次 命令中不可同时选用。
20
3.2 数据库基本操作
3.2.4 修改数据库
【例3-2】 将数据库 test 的名称改为 test1。 ALTER DATABASE test MODIFY NAME=test1
【例3-3】 将数据库SRS的日志文件最大容量改为100 MB。
ALTER DATABASE SRS MODIFY FILE (NAME=SRS_Data, MAXSIZE=100MB)
系列 1, 锐系普列PP2T, 锐, 2普.8 PPT, 2.8
日志文件由一系列日志记录组成,它 记录了数据库的更新情况和用户对数据库 的修改操作等。
当数据库发生损坏时,可以通过日志 文件分析出错原因;当数据丢失时,也可 以使用日志文件恢复数据库。
16
3.2 数据库基本操作
3.2.3 创建数据库
02 用SSMS创建数据库
在 SSMS 中可按如下步骤创建数据库。
最新第3章 SQL语言习题参考答案
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'(3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
sql课后习题答案
sql课后习题答案SQL课后习题答案随着信息技术的快速发展,数据库管理系统(DBMS)在各行各业中扮演着重要的角色。
而SQL(Structured Query Language)作为一种用于管理和操作关系型数据库的语言,被广泛应用于企业和组织的数据管理和分析中。
在学习SQL的过程中,课后习题是巩固知识的重要环节。
下面将为大家提供一些常见SQL课后习题的答案,希望对大家的学习有所帮助。
1. 查询所有学生的姓名和年龄。
答案:SELECT name, age FROM students;2. 查询所有学生的姓名和年龄,并按照年龄降序排列。
答案:SELECT name, age FROM students ORDER BY age DESC;3. 查询学生表中年龄大于20岁的学生信息。
答案:SELECT * FROM students WHERE age > 20;4. 查询学生表中年龄大于20岁并且性别为男的学生信息。
答案:SELECT * FROM students WHERE age > 20 AND gender = '男';5. 查询学生表中年龄大于20岁或者性别为女的学生信息。
答案:SELECT * FROM students WHERE age > 20 OR gender = '女';6. 查询学生表中的学生总数。
答案:SELECT COUNT(*) FROM students;7. 查询学生表中不重复的年龄。
答案:SELECT DISTINCT age FROM students;8. 查询学生表中年龄在20岁到25岁之间的学生信息。
答案:SELECT * FROM students WHERE age BETWEEN 20 AND 25;9. 查询学生表中每个班级的学生数量。
答案:SELECT class, COUNT(*) FROM students GROUP BY class;10. 查询学生表中每个班级的平均年龄。
sql知识点总结大纲
sql知识点总结大纲一、关系数据库基础知识1. 数据库的概念2. 关系数据库的特点3. 数据库管理系统(DBMS)的作用4. 数据库的组成部分5. SQL语言的作用和特点二、SQL基础知识1. SQL语言的历史2. SQL语言的分类3. SQL语言的组成部分4. SQL语句的执行流程5. SQL语句的基本格式三、SQL数据类型1. 常见的数据类型2. 数据类型的特点和用途3. 数据类型的约束和限制4. 数据类型的转换和操作四、SQL数据库操作1. 数据库的创建和删除2. 表的创建和删除3. 表的约束和索引4. 数据的插入、删除和更新5. 数据的查询和检索五、SQL查询语句1. SELECT语句的基本用法2. SELECT语句的条件查询3. SELECT语句的排序和分组4. SELECT语句的聚合函数5. SELECT语句的子查询和连接查询六、SQL高级查询1. 多表查询的基本原理2. 多表查询的连接方式3. 多表查询的嵌套和联合4. 子查询的使用方法5. 分组数据的查询和统计七、SQL数据操作1. 数据的插入、删除和更新2. 数据的事务和锁定3. 数据的备份和恢复4. 数据的导入和导出5. 数据的复制和同步八、SQL性能优化1. SQL查询的优化策略2. SQL索引的使用方法3. SQL语句的优化技巧4. 数据库的优化和调优5. SQL性能测试和监控九、SQL安全性1. 数据库的安全策略2. 用户和权限管理3. 数据的加密和解密4. 数据的备份和恢复5. 数据的审计和监控十、SQL新技术1. NoSQL数据库的概念和特点2. 分布式数据库的应用和挑战3. 大数据处理的技术和工具4. 数据仓库和数据湖的构建5. 人工智能和机器学习的数据库应用十一、SQL应用实践1. 数据库设计和建模2. 数据库开发和测试3. 数据库部署和运维4. 数据库监控和维护5. 数据库优化和升级十二、SQL发展趋势1. 数据云服务的发展和应用2. 数据共享和合作的平台3. 数据安全和隐私保护的挑战4. 数据治理和合规规范5. 数据管理和价值创新的探索十三、SQL案例分析1. 企业级数据库解决方案2. 互联网数据处理和应用3. 金融和零售行业数据库应用4. 医疗和教育领域数据库案例5. 政府和公共服务数据库实践以上是SQL知识点总结的大纲,希望对您有所帮助。
数据库sql(系统学习很全) (2)讲解共127页文档
31、别人笑我太疯癫,我笑他人看不 穿。(名 言网) 32、我不想听失意者的哭泣,抱怨者 的牢骚 ,这是 羊群中 的瘟疫 ,我不 能被它 传染。 我要尽 量避免 绝望, 辛勤耕 耘,忍 受苦楚 。我一 试再试 ,争取 每天的 成功, 避免以 失败收 常在别 人停滞 不前时 ,我继 续拼搏 。
66、节制使快乐增加并使享受加强。 ——德 谟克利 特 67、今天应做的事没有做,明天再早也 是耽误 了。——裴斯 泰洛齐 68、决定一个人的一生,以及整个命运 的,只 是一瞬 之间。 ——歌 德 69、懒人无法享受休息之乐。——拉布 克 70、浪费时间是一桩大罪过。——卢梭
33、如果惧怕前面跌宕的山岩,生命 就永远 只能是 死水一 潭。 34、当你眼泪忍不住要流出来的时候 ,睁大 眼睛, 千万别 眨眼!你会看到 世界由 清晰变 模糊的 全过程 ,心会 在你泪 水落下 的那一 泪的 方式。
35、不要以为自己成功一次就可以了 ,也不 要以为 过去的 光荣可 以被永 远肯定 。
(完整版)第3章SQL语言习题参考答案(新)
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8),CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2),QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
数据库系统概论(王珊_萨师煊)第三章关系数据库标准语言SQL
2.高度非过程化
非关系数据模型的数据操纵语言“面向过
程”,必须制定存取路径
SQL只要提出“做什么”,无须了解存取
路径。 存取路径的选择以及SQL的操作过程由系
统自动完成。
An Introduction to Database System
SQL是独立的语言
能够独立地用于联机交互的使用方式
SQL又是嵌入式语言
SQL能够嵌入到高级语言(例如C,C++, Java)程序中,供程序员设计程序时使用
An Introduction to Database System
5.语言简洁,易学易用
SQL功能极强,完成核心功能只用了9个动词。
表 3.1 SQL 语言的动词 SQL 功 能 数 据 查 询 数 据 定 义 数 据 操 纵 数 据 控 制 动 词 SELECT CREATE, DROP, ALTER INSERT,UPDATE DELETE GRANT,REVOKE
An Introduction to Database System
主码
课程表Course
[例6] 建立一个“课程”表Course
CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, 先修课 Cname CHAR(40), Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Cpno是外码 Course(Cno) 被参照表是Course 被参照列是Cno );
3.1 SQL概述
3.2 学生-课程数据库
3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结
《SQL_作业讲评》PPT课件
QTY int check(QTY > 0)
primary key (SNO,PNO,JNO)
);
三个属性上都有
或只有一个属性
上有primary key
整理ppt
6
第4题
考核点:
将关系代数语言完成的查询转换成SQL语句。
共同问题:
书写SQL语句不规范,在第5题中也是这样,比 如少了‘,’或者少了AND等等。
整理ppt
10
4.1
S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)
求供应工程J1零件的供应商号码
需要distinct ?
参考答案:
select distinct SNO
考核要点
理解题设中隐含的完整性约束要求 考查DDL的运用
共同问题
没有声明主码 没有声明外码 缺少必要的check 非空属性,没有not null约束 声明了主码后,多余地添加unique,not null约束等 不知道如何声明包含多个属性的主码
整理ppt
4
第3题-DDL(续)
例1
整理ppt
7
第4题(续)
答题要点:
(1)(2)(3)问题不大,很容易将关系代数对应到 SQL语句,个别同学没有区分“=”和“in”。
(4)(5)主要考察对exists的使用,可以用连接或者 嵌套子查询来完成。重点要从逻辑上分析语义来 写出SQL查询。
整理ppt
8
第4题-select from where
from SPJ
where JNO = 'J1’
《SQL-作业讲评》课件
作业任务概述
任务要求
解释作业的具体要求,包括数据 查询、表格设计和数据操作。
数据库结构
展示作业使用的数据库结构和表 格关系图。
数据分析
介绍如何使用SQL进行数据分析 和生成图表。Biblioteka 作业评分标准正确性
评估作业的准确性,包括查询结果、数据操作和表格设计。
优化性能
考察作业是否使用了最佳的SQL查询和索引优化。
代码风格
评判作业的代码可读性、注释和命名规范。
作业示范与讲解
1
示范作业
展示一份优秀的作业,并详细解释其每
实用技巧
2
个部分的实现细节。
分享一些在作业中常用的技巧和编码建
议,以提高效率和质量。
3
常见错误
列举一些学员常犯的错误,并提供纠正 方法和建议。
学员作业成果展示
优秀作品
展示一些学员提交的优秀作业, 并对其进行简单评价和表扬。
《SQL-作业讲评》PPT课 件
在这个课件中,我们将深入探讨SQL作业的各个方面,并结合丰富的图像和布 局讲解如何设计一个引人入胜、易于理解的演示文稿。
课程介绍
课程目标
解释SQL作业的重要性,提供学习SQL的动力,介绍课程的内容和结构。
教学方法
使用互动式教学方法,结合实例演示和小组讨论,提供最佳学习体验。
学习成果
回顾学员在课程学习中的进步和 成果,鼓励他们继续努力。
奖励与认可
宣布对优秀学员的奖励和认可, 以激励其他学员积极参与。
课程总结和展望
回顾课程的重点内容和学习收获,并展望学员继续深入学习SQL的未来。
预期收益
通过本课程的学习,您将获得扎实的SQL基础知识和作业实践经验。
《数据库基础与应用》课程作业评讲(2)
《数据库基础与应用》课程作业评讲(2)责任教师李健苹第二次作业涉及第4章SQL查询语言的内容。
结构化查询语言由许多命令语句组成,命令多难记,同学们普遍感到学习和完成作业有难度,为帮助大家完成作业,理解掌握SQL 常用语句的功能,选择了具有代表性的题进行评讲。
下文中,黑色的是问题与答案,蓝颜色是说明和解释。
一、已知命令写功能题要能够正确写出命令或一段程序所完成的功能,首先要做到将SQL一般命令格式和它所涉及的每一条命令语句功能弄懂,一般来讲,一段程序通常是由不同命令语句的相关组合构成的,先将每一条语句功能理解透了,不管程序如何组合,要理解起来就容易了,也不会出错。
这是掌握命令的关键。
1. select *from 课程where exists (select *from 选课where 课程.课程号=选课.课程号)此题的考核知识点是SQL语句的子句select、From、where、exists功能。
分析:本题不同的是出现了exists和双重嵌套结构子查询。
Exists(当子查询结果中至少一个元组时,表明查询结果非空,则此判断式为真,否则为假) 在本题中,下层查询块 SELECT * FROM选课WHERE课程.课程号=选课.课程号是嵌套在上层查询块 select * from 课程 where exists 的WHERE条件中的。
嵌套查询的求解方法是由里向外处理。
即每个子查询在其上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。
参考答案:从教学库中查询出所有已被学生选修的课程。
(该语句执行时,对于课程表中的每一条记录,都用它的课程号(假设用A表示)去查询选课表中的课程号列,若该列中至少有一个值与A相同,则子查询结果非空,即外查询条件为真,外查询就把选了课的课程记录查询出来)2.select x.学生号,y.学生号,y.课程号From 选课 x,选课 yWhere x.学生号=@s1 and y.学生号=@s2And x.课程号=y.课程号此题的考核知识点是:SQL语句的子句select、From、where、and功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4题(续)
(5)求至少用了供应商S1提供的全部零件的工程号JNO
分析: 本题语义:不存在这样的零件y,供应商S1供
应了y,而工程x没有选用y。 即:只要“供应商S1供应了零件y”为真,则
“工程x选用了零件y”为真。
求至少用了供应商S1所供应的全部零件的工程 号JNO
FROM
P ,SPJ
WHERE SPJ.JNO = ‘J2’
AND SPJ.PNO = P.PNO
GROUP BY P.PNAME
S(SNO,SNAME,STATUS,CITY)
5.5比较简单
P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
嵌套子查询
SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE SPJ.JNO = J.JNO
AND SNO IN (SELECT SNO FROM S WHERE CITY = ‘天津’)
AND PNO IN (SELECT PNO FROM P WHERE COLOR = ‘红’ )
SPJ(SNO,PNO,JNO,QTY)
求供应工程J1零件P1的供应商号码
需要distinct吗?
参考答案:
select SNO
from SPJ
where (JNO = 'J1‘ and PNO = 'P1');
4.3
S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)
作业3-讲评
数据库课程作业
第1-2题
考核点:
基本概念 了解SQL语言的特点及其功能
问题:
基本都能答对
第3题
考核点:
用SQL语句建立表
回答要点:
对于相同属性的定义要一致,如S表中的sno和 SPJ表中的sno定义要一致。
问题:
基本没有问题
第3题-DDL
考核要点
这里隐含的语义是:某些零件虽然是S1”能够“提供的, 但是工程并没有使用S1供应的零件,而是使用了其他供 应商提供的该种零件。
在这种情况下,不加spj.sno=‘s1’这个限制条件,就会可 能将这些工程选择到结果中。
第5题
考核点:
熟练掌握SQL语句的查询和更新操作。
共同问题:
书写SQL语句不规范
第5题
5.1,5.2较简单 5.3也比较简单,但需要取消重复 5.4
找出工程项目J2使用的各种零件的名称及其数量 典型错误:
把重量当作数量 没有对同类的零件进行group by ,再对数量QTY求和 使用不确切的属性进行分类
5.4
S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT)
考察:除关系 关系代数:
∏JNO,PNO(SPJ) ÷∏PNO( SNO=‘S1’(SPJ))
除操作在写关系演算表达式的关键:包含一个蕴含关系。
除法÷的SQL表示:
S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)
SPJ(SNO,PNO,JNO,QTY)
求供应工程J1零件为红色的供应商号码SNO
SELECT SNO FROM SPJ
WHERE JNO=‘J1’
AND PNO IN --找红色零件的零件号码pno
(SELECT PNO
FROM P --从P表中找
WHERE COLOR=‘红’)
SPJ(SNO,PNO,JNO,QTY)
求供应工程J1零件的供应商号码
需要distinct ?
参考答案:
select distinct SNO
from SPJ
where JNO = 'J1’
S(SNO,SNAME,STATUS,CITY)
4.2
P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY)
AND SPJ.PNO = P.PNO
GROUP BY P.PNO
5.4
参考答案
S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY)
SELECT PNAME , sum(QTY )
(select * from
where not exists
(select * from
where
));
第4题(续)
(5)求至少用了供应商S1提供的全部零件的工程号JNO
select * from SPJ X where not exists (select * from SPJ Y where not exists (select * from SPJ Z where ));
∏JNO(J)是全部工程的工程号 减去的部分表示使用了天津供应商生产的红色零
件的所有工程号。
求没有使用天津供应商生产的红色零件的 工程号
没有使用任何零件的工程是不是?
select distinct JNO from SPJ where PNO NOT IN
(select PNO from S ,P,SPJ where S.CITY ='天津’ AND S.SNO = SPJ.SNO
第4题(续)
(5)求至少用了供应商S1提供的全部零件的工程号JNO
select * from SPJ X where not exists
(select * from SPJ Y where not exists
(select * from SPJ Z
where Z.PNO = Y.PNO
AND Z.JNO = X.JNO
AND Y.SNO=‘S1’
));
S(SNO,SNAME,STATUS,CITY)
第4题(续)
P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
(5)求至少用了供应商S1提供的全部零件的工程号JNO
SELECT DISTINCT JNO FROM SPJ X WHERE NOT EXISTS
求供应工程J1零件为红色的供应商号码SNO
select SPJ.SNO
from SPJ , P
where (SPJ.JNO = 'J1‘ and P.PNO = SPJ.PNO and P.COLOR = '红')
S(SNO,SNAME,STATUS,CITY)
4.3另
P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY)
(4)(5)主要考察对exists的使用,可以用连接或 者嵌套子查询来完成。重点要从逻辑上分析语义 来写出SQL查询。
第4题-select from where
共同问题:
语法错误――说明上机实践少 没有认真审题,所答非所问
如5.6题,题设要求工程名称,而很多同学回答的却是工程 号
create table P
( PNO char(5) primary key,
PNAME char(10) not null,
COLOR char(10),
WEIGHT int check(weight > 0 )
)
References S
例2 create table SPJ ( SNO char(5) not null references S(SNO) , PNO char(5) not null references P(PNO), JNO char(5) not null references J(JNO), QTY int check(QTY > 0) primary key (SNO,PNO,JNO) );
(SELECT * FROM SPJ Y WHERE SNO = ‘S1’ AND NOT EXISTS (SELECT * FROM SPJ Z WHERE Z.PNO = Y.PNO AND Z.JNO = X.JNO AND Y.SNO=‘S1’ ));
• 求至少用了供应商S1提供的全部零件的工 程号JNO,而不是“求至少用了供应商S1所 “能”供应的全部零件的工程号JNO。
select * from
where not exists
(select * from
•
where not exists
(select * from
Where )
)
第4题(续)
(5)求至少用了供应商S1提供的全部零件的工程号JNO
select * from
where not exists
J(JNO,JNAME,CITY)
错例1:
SPJ(SNO,PNO,JNO,QTY)
SELECT PNAME,QTY
FROM P ,SPJ
WHERE SPJ.PNO=P.PNO AND JNO=’J2’
错例2:
SELECT PNAME , sum(QTY )
FROM
P ,SPJ
WHERE SPJ.JNO = 'J2'