第三章 关系数据库标准语言SQL-7
数据库原理 第三章关系数据库标准语言——SQL期末习题与答案
1、数据库的事务日志文件()。
A.只能有一个B.可以有多个C.可以没有D.以上都不对正确答案:B2、CREATE命令属于()语句。
A.数据查询B.数据操纵C.数据定义D.数据控制正确答案:C3、使用ALTER命令修改数据时,以下说法错误的是()。
A.可以增加主要数据文件B.可以删除次要数据文件C.可以修改文件的增容方式D.可以增加事务日志文件正确答案:A4、使用存储存储过程Sp_helpfile可以()。
A.查看数据库的结构B.查看数据库的文件信息C.查看数据库的文件组信息D.以上都可以5、在DBMS中分离数据库之后,()。
A.数据库文件将会从磁盘上删除B.数据库文件将会脱离DBMSC.事务日志文件将会从磁盘上删除D.以上都不对正确答案:B6、假设学号字段“SNo”的数据类型为nvarchar(6),当“SNo”的值为“S001”时,“SNo”在内存中占()字节。
A.4B.6C.8D.12正确答案:C7、创建数据表时,如果给某个字段定义PRIMARY KEY约束时,该字段的数据()。
A.不允许有空值B.允许有多个空值C.允许有一个空值D.以上都不对正确答案:A8、为数据表增加新的字段时,()。
A.可以为新字段设置NOT NULL约束B.不能为新字段设置NOT NULL约束C.不能为新字段设置约束D.以上都不对9、在SQL的SELECT语句中,能实现选取操作的是()。
A.SELECTB.FROMC.WHERED.GROUP BY正确答案:C10、假定学生关系是S(SNo,SName,Sex,Age),课程关系是C(CNo,CName,Teacher),学生选课关系是SC(SNo,CNo,Grade)。
要查找选修“数据库”课程的“男”学生姓名,将涉及的关系是()。
A.SB.SC,CC.S,SCD.S,C,SC正确答案:D11、下列SQL语句中,()不是数据操纵语句。
A.INSERTB.CREATEC.DELETED.UPDATE正确答案:B12、SQL中,下列涉及空值的操作,不正确的是()。
《数据库应用》全套PPT电子课件教案-第三章(关系数据库标准语言SQL)
库文件。
16
第3章 关系数据库标准语言SQL
3.3 数据查询
SQL的核心是查询。SQL的查询命令也称作SELECT命令,它 的基本形式由SELECT-FROM-WHERE查询块组成,多个查 询块可以嵌套执行。SQL查询命令格式:
DISTINCT短语的作用是去掉查询结果中的重复值.
19
第3章 关系数据库标准语言SQL
SELECT * FROM 仓库 其中“*”是通配符,表示所有属性,即字段,这里的命令 等同于:
SELECT 仓库号,城市,面积 FROM 仓库 SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资 > 1210
SQL语言是当前最为成功、应用最为广泛的关 系数据库语言,其主要特点包括:
1. SQL语言非常简洁 2. 综合统一 3. 高度非过程化 4. 面向集合的操作方式 5. 以同一种语法结构提供两种使用方式
4
第3章 关系数据库标准语言SQL
3.1.2 SQL语言功能概述
SQL功能可分为四大部分:数据定义功能、数据 控制功能、数据查询功能和数据操纵功能。
21
第3章 关系数据库标准语言SQL
匹配串中可包含如下四种通配符: _(下划线):匹配任意一个字符。 %(百分号):匹配0个或多个字符。 [ ]:匹配[ ]中的任意一个字符。如[abcd]表示匹配a、b、
c和d中的任何一个。 [^]:不匹配[ ]中的任意一个字符。如[abcd]表示不匹配
a、b、c和d。
SELECT 职工号,城市 FROM 仓库,职工 WHERE ( 面积 > 400) AND
第三章 关系数据库标准语言SQL语言
第三章关系数据库标准语言SQL语言一、选择题1. 在SQL语言中授权的操作是通过________________语句实现的。
C A.CREATEB.REVOKEC.GRANTD.INSERT2. 假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系____。
DA.S B.SC,C C.S,SC D.S,C,SC3. 在 MS SQL Server中建立了表 Student(no,name,sex,birthday),no为表的主码,其他属性的默认值为 null。
表中信息如图所示:能够正确执行的插入操作是________。
A No Name Sex Birthday 101 张丽丽女 1967/05/07 102 李芳女 1970/04/14103 王朋男 1982/10/27 A.INSERT INTO student (no,sex) VALUES(102,′男′) B.INSERT INTO student (name,sex) VALUES(′王中′,′男′)D.INSERT INTO student VALUES(106,′王中′,′男′,′1984/03/08′) C.INSERT INTO stude nt VALUES(102,′男′,′王中′,′1984/03/08′) 4. SQL语言中,删除一个表的命令是________。
B A. DELETE B. DROP C. CLEAR D. REMORE 5. 为数据表创建索引的目的是________ AA.提高查询的检索性能B.创建唯一索引C.创建主键D.归类6. 在SQL语言中,条件“RETWEEN 20 AND 30”表示年龄在20到30之间,且________A. 包括20岁和30岁B. 不包括20岁和30岁C. 包括20岁不包括30岁D. 不包括20岁包括30岁7. 为了使索引键的值在基本表中唯一,在建立索引语句中应使用保留字________ AA. UNIQUEB. COUNTC. DISDINCTD. UNION 8. 下面关于SQL语言的说法中,哪一种说法是错误的? ________ AA. 一个SQL数据库就是一个基本表B. SQL语言支持数据库的三级模式结构C. 一个基本表可以跨多个存储文件存放,一个存储文件可以存放一个或多个基本表D. SQL的一个表可以是一个基本表,也可以是一个视图二、简答题1. 什么是基本表?什么是视图?两者的区别和联系是什么?【解答】基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
sql 课件 第3章 关系数据库标准语言SQL
山东财政学院计算机信息工程学院
3、默认文件组
在每个数据库中,同一时间只能有一个文件组是默认 文件组(Default Filegroup)。 当进行数据库操作时,如果不指定文件组,则系统自 动选择默认文件组。 可使用Transact-SQL语句中的alter database语句指 定数据库的默认文件组。 在不特别指定的情况下,系统将主要文件组认定为默 认文件组。
山东财政学院计算机信息工程学院
2、扩展盘区
由8个连续页面组成的数据结构称为一个盘区。 是SQL Server分配给表和索引的基本单位。 扩展盘区可分为统一扩展盘区和混合扩展盘区。 统一扩展盘区由一个数据库对象所有。 混合扩展盘区可以为多个数据库所有,即其中最多 可以放8种数据库对象。
山东财政学院计算机信息工程学院
山东财政学院计算机信息工程学院
例:创建具有两个文件组的数据库bank2
CREATE DATABASE BANK2 ON PRIMARY (NAME=BANK2_1_DAT, FILENAME='d:\bank\bank2_f1dat.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=5MB), (NAME=BANK2_2_DAT, FILENAME='d:\bank\bank2_f2dat.ndf', SIZE=10MB, MAXSIZE=40MB, FILEGROWTH=5MB),
山东财政学院计算机信息工程学院
3.2 数据定义
3.2.1 数据库的定义 3.2.2 表的定义 3.2.3 索引的定义
山东财政学院计算机信息工程学院
数据定义
SQL Server数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。
第3章:关系数据库标准语言SQL
例6:建立一个“课程”表Course. :建立一个“课程” Create table Course (Cno Cpno Char(4) Primary Key, , Char (4) , Cname Char (40) , Ccredit Smallint, , Foreign Key (Cpno) References Course(Cno) );
不论基本表中原来是否已有数据, 不论基本表中原来是否已有数据 , 新增加 的列一律为空值。 的列一律为空值。
例9:将年龄的数据类型改为整型。
ALTER TABLE Student Alter Column Sage Int; ;
修改原有的列定义有可能会破坏已有数据。 修改原有的列定义有可能会破坏已有数据。
group by:此短语将查询结果按某一列或某几 :
列的值进行分组。Having子句用于与group 列的值进行分组。Having子句用于与group by 子句用于与 子句配合使用,用于说明分组条件。 子句配合使用,用于说明分组条件。
查询分类
单表查询 连接查询 嵌套查询 集合查询
CREATE TABLE Student (Sno Ssex Sage Sdept
CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, ,
CHAR(1) , INT, , CHAR(15)); ;
修改
Alter table <表名 表名> 表名
Add <新列名> <新列类型> (列宽度)[完整性约束] Drop Column <列名>|<完整性约束名> Alter Column <列名> <列类型> (列宽度) P87例8,例9,例10 , ,
初学者必读的SQL数据库基础教程
初学者必读的SQL数据库基础教程SQL数据库是一种常用的数据库管理系统,广泛应用于各种软件开发和数据管理领域。
对于初学者来说,掌握SQL数据库的基础知识是非常重要的。
本文将从数据定义语言、数据操作语言、数据查询语言和数据控制语言等方面,为初学者提供一份必读的SQL数据库基础教程。
第一章数据定义语言(DDL)数据定义语言(DDL)是SQL数据库中用来定义数据库结构的语言。
它包括创建、修改和删除数据库、表、列以及其他对象的操作。
在SQL中,创建数据库使用CREATE DATABASE语句,创建表使用CREATE TABLE语句,修改表结构使用ALTER TABLE语句,删除表使用DROP TABLE语句等。
初学者在学习时应该了解这些常用的DDL语句,并能够正确地使用它们。
第二章数据操作语言(DML)数据操作语言(DML)是SQL数据库中用来对数据库中的数据进行操作的语言。
它包括插入、更新和删除数据的操作。
在SQL中,插入数据使用INSERT INTO语句,更新数据使用UPDATE语句,删除数据使用DELETE FROM语句等。
初学者需要熟悉这些基本的DML语句,并能够通过它们来操作数据库中的数据。
第三章数据查询语言(DQL)数据查询语言(DQL)是SQL数据库中用来查询数据库中的数据的语言。
它包括SELECT语句和一些用于过滤、排序和聚合数据的函数。
初学者需要掌握SELECT语句的基本用法,了解如何使用WHERE子句进行条件过滤,如何使用ORDER BY子句进行排序,以及如何使用GROUP BY子句进行数据聚合。
第四章数据控制语言(DCL)数据控制语言(DCL)是SQL数据库中用来控制数据库访问权限和事务处理的语言。
它包括GRANT和REVOKE语句用于授权和撤销权限,以及BEGIN TRANSACTION、COMMIT和ROLLBACK语句用于管理事务。
初学者需要了解如何使用DCL语句来管理数据库的安全性和事务一致性。
数据库系统概论实验指导书1-7章选择题解答
1—7章选择题解答二、选择题1.数据库系统的基本特征是A)数据的统一控制B)数据共享性和统一控制C)数据共享性、数据独立性和冗余度小D)数据共享性和数据独立性2.在数据库系统中,多种应用、多种语言互相覆盖地同时使用数据集合并且易于扩充,则称之为数据的A)安全性 B)独立性 C)完整性 D)共享性3. 在文件系统中,数据是面向A)机器 B)全组织 C)系统软件D)特定应用4. 在数据库系统的三级模式结构中,用___描述数据的全局逻辑结构A)子模式 B)用户模式C)模式 D)存储模式5.数据库的概念模型独立于A)具体的机器和DBMS B)E-R图C)信息世界 D)现实世界6. 下列不属于 DBMS 的主要功能是A)数据存取 B)数据库定义C)运行管理 D)报表书写7.要保证数据库的数据独立性,需要修改的是A)三层模式之间的两种映射B)模式与内模式C)模式与外模式D)三层模式8.在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、_________、和存储级三个层次。
A)管理员级 B)外部级C)概念级 D)内部级9.在三个模式中真正存储数据的是A)模式 B)内模式 C)外模式 D)上述三者10.数据库管理系统DBMS是。
A、数学软件B、应用软件C、计算机辅助设计D、系统软件第2章关系数据库一、单项选择题1.关系数据模型通常由三部分组成,它们是_______。
A)数据结构、数据通信、关系操作B) 数据结构、关系操作、完整性约束C) 数据通信、关系操作、完整性约束D)数据结构、数据通信、完整性约束2.关系模型实体完整性约束是指__________A)限制外键的属性值不能为空值B)限制主键的属性值不能为空值C)限制非主属性值不能为空值D)限制元组中任何属性值不能为空3.五种基本关系代数运算是_______。
A)∪,-,×,π和σB)∪,-,∞,π和σC)∪,∩,×,π和σD)∪,∩,∞,π和σ4.设关系R和S的结构相同,并且各有80个元组,假如这两个关系作交运算,其运算结果的元组个数为_________。
数据库第三章习题及答案
第3章关系数据库标准语言SQL一、选择题1、SQL语言是的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式答案:B2、SQL语言是语言。
A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库答案:C3、SQL语言具有的功能。
A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵答案:B4、SQL语言具有两种使用方式,分别称为交互式SQL和。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 答案:C5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系。
A.S B.SC,C C.S,SC D.S,C,SC 答案:D6、若用如下的SQL语句创建一个student表:CREATE TABLE student(NO C(4) NOT NULL,NAME C(8) NOT NULL,SEX C(2),AGE N(2))可以插入到student表中的是。
A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL)C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23) 答案:B7、当两个子查询的结果时,可以执行并,交,差操作.A.结构完全不一致 B.结构完全一致C.结构部分一致D.主键一致答案:B第8到第10题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
《数据库原理及应用》教学课件 第三章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 中可按如下步骤创建数据库。
关系数据库标准查询语言SQL
SELECT Sname, ‘Year of Birth:’, 2008-Sage ,
ISLOWER(Sdept)
FROM Student ; 结果为:
Sname ‘ Yearof Birth:’ 2008-Sage ISLOWER(Sdept)
李勇 Yearof Birth: 1986
第三章关系数据库标准查询语言sql第三章第三章关系数据库标准语言关系数据库标准语言sqlsql结构化查询语言sqlstructuredquerylanguage是一种介于关系代数与关系演算之间的语言它具有查询操纵定义和控制功能是一种通用的功能极强的标准的关系数据库语言
第三章 关系数据库标 准查询语言SQL
例4:删除关于学号必须取唯一值的约束。 ALTER TABLE Student DROP UNIQUE(Sno);
3.删除基本表
基本格式: DROP TABLE〈表名〉
例5. 删除student表 DROP TABLE Student ;
3.2.2.建立与删除索引
1. 建立索引 基本格式: CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>[,<列名>[〈次序>]]…..); 次序:ASC,DESC 例 6: 为Student, Course, SC 3个表 建立索引,Student
2.选择表中的若干元组
1).消除重复的行 例6.查询所有选修过课的学生学号。
SELECT Sno
FROM SC ;
Sno
Cno Grade
王珊《数据库系统概论》课后习题(关系数据库标准语言SQL)【圣才出品】
王珊《数据库系统概论》课后习题(关系数据库标准语⾔SQL)【圣才出品】第3章关系数据库标准语⾔SQL1.试述SQL的特点。
答:SQL有以下五个特点:(l)综合统⼀:SQL语⾔集数据定义语⾔DDL、数据操纵语⾔DML、数据控制语⾔DCL的功能于⼀体。
在关系模型中实体和实体间的联系均⽤关系表⽰,这种数据结构的单⼀性带来了数据操作符的统⼀性,查找、插⼊、删除、更新等每⼀种操作都只需⼀种操作符,从⽽克服了⾮关系系统由于信息表⽰⽅式的多样性带来的操作复杂性。
(2)⾼度⾮过程化:⽤SQL语⾔进⾏数据操作,只要提出“做什么”,⽽⽆需指明“怎么做”,因此⽆需了解存取路径、存取路径的选择以及SQL语句的操作过程。
这有利于提⾼数据独⽴性。
(3)⾯向集合的操作⽅式:SQL语⾔采⽤集合操作⽅式,不仅操作对象和查找结果可以是元组的集合,⽽且插⼊、删除、更新操作的对象也可以是元组的集合。
(4)以同⼀种语法结构提供两种使⽤⽅式:SQL语⾔既是⾃含式语⾔,⼜是嵌⼊式语⾔。
作为⾃含式语⾔,它能够独⽴地⽤于联机交互的使⽤⽅式;作为嵌⼊式语⾔,它能够嵌⼊到⾼级语⾔程序中,供程序员设计程序时使⽤。
(5)语⾔简捷,易学易⽤。
2.试述SQL的定义功能。
答:SQL的数据定义功能包括定义表、视图和索引。
(1)SQL语⾔使⽤CREATE TABLE语句建⽴基本表,ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表,其⼀般格式为:DROP TABLE<表名>[RESTRICT | CASCADE];(2)使⽤CREATE INDEX语句建⽴索引,DROP INDEX语句删除索引;(3)使⽤CREATE VIEW语句建⽴视图,DROP VIEW语句删除视图。
3.⽤SQL语句建⽴第⼆章习题5中的4个表。
答:建⽴S表:S(SNO,SNAME,STATUS,CITY);CREATE TABLE S(SNO char(2)UNIQUE,SNAME char(6),STATUS char(2),CITY char(4));建⽴P表:P(PNO,PNAME,COLOR,WEIGHT);CREATE TABLE P(PNO char(2)UNIQUE,PNAME char(6),COLOR char(2),WEIGHT INT);建⽴J表:J(JNO,JNAME,CITY);CREATE TABLE J(JNO char(2)UNIQUE,JNAME char(8),CITY char(4));建⽴SPJ表:SPJ(SNO,PNO,JNO,QTY);CREATE TABLE SPJ(SNO char(2),PNO char(2),JNO char(2),QTY INT);4.针对上题中建⽴的四个表试⽤SQL完成第⼆章习题5中的查询。
数据库第二版课后习题答案
数据库第二版课后习题答案数据库第二版课后习题答案数据库是计算机科学中重要的概念之一,它提供了一种有效地存储和管理数据的方式。
数据库系统的设计与实现是数据库课程的重要内容之一。
在学习数据库课程时,课后习题是巩固知识和提高能力的重要途径。
本文将为大家提供数据库第二版课后习题的答案,希望对大家的学习有所帮助。
第一章数据库系统概述1. 数据库是什么?答:数据库是一个有组织的、可共享的、可维护的数据集合,它以一定的数据模型为基础,描述了现实世界中某个特定领域的数据和关系。
2. 数据库系统的特点有哪些?答:数据库系统具有以下特点:- 数据的独立性:数据库系统将数据与程序相分离,使得数据的修改不会影响到程序的运行。
- 数据的共享性:多个用户可以同时访问数据库,并且可以共享数据。
- 数据的冗余性小:通过数据库系统的数据一致性和完整性约束,可以减少数据的冗余性。
- 数据的易扩展性:数据库系统可以方便地进行扩展和修改,以满足不同需求。
- 数据的安全性:数据库系统提供了权限管理和数据加密等机制,保证数据的安全性。
第二章关系数据库与SQL1. 什么是关系数据库?答:关系数据库是一种基于关系模型的数据库,它使用表格(关系)来表示和存储数据。
关系数据库中的数据以行和列的形式组织,每个表格代表一个实体集,每一行代表一个实体,每一列代表一个属性。
2. 什么是SQL?答:SQL(Structured Query Language)是一种用于管理关系数据库的语言。
它包含了数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)等部分。
通过SQL,用户可以对数据库进行创建、查询、更新和删除等操作。
第三章数据库设计1. 数据库设计的步骤有哪些?答:数据库设计的步骤包括:- 需求分析:确定数据库的需求和目标,了解用户的需求。
- 概念设计:根据需求分析的结果,设计数据库的概念模型,包括实体、属性和关系等。
- 逻辑设计:将概念模型转换为逻辑模型,包括表格的设计、关系的建立和约束的定义等。
7第三章 关系数据库标准SQL语言
3.
4. 5.
6. 7. 8. 9. 10.
11. 12.
13.
14.
15. 16. 17. 18.
19. 08 信管 B 视图建立后,在数据字典中存放的是 C A.查询语句 B. 组成视图的表的内容 C. 视图的定义 D. 产生视图的表的定义
。
以下四题基于这样三个表,即学生表 S、课程表 C 和学生选课表 SC,它们的结构如下: S(S#, SN, SEX, AGE, DEPT) C(C#, CN) SC(S#, C#, GRADE) 其中,S#为学号,SN 为姓名,SEX 为性别,AGE 为年龄,DEPT 为系别,C#为课程号, CN 为课程名,GRADE 为成绩。 20. 检索所有比 “王华” 年龄大的学生姓名、 年龄和性别。 正确的 SELECT 语句是 A. SELECT SN, AGE, SEX FROM S WHERE AGE > ( SELECT AGE FROM S WHERE SN=”王华” C. SELECT SN, AGE, SEX FROM S WHERE AGE > ( SELECT AGE WHERE SN=”王华” B. SELECT SN, AGE, SEX FROM S WHERE SN=”王华” D. SELECT SN, AGE, SEX FROM S WHERE AGE >王华.AGE D 。 A 。
21. 检索选修课程 “C2” 的学生中成绩最高的学生的学号。 正确的 SELECT 语句是 A. SELECT S# FROM SC WHERE C#=”C2” AND GRADE>= ( SELECT GRADE FROM SC WHERE C#=”C2” B. SELECT S# FROM SC WHERE C#=”C2” AND GRADE IN ( SELECT GRADE FROM SC WHERE C#=”C2”
第03章-关系数据库标准语言SQL
语句 CREATE
功能 创建数据库或数据库对象
ALTER
修改数据库或数据库对象
DROP
删除数据库或数据库对象
说明 不同数据库对象参数不同 不同数据库对象参数不同 不同数据库对象参数不同
SQL的组成(续) ❖ 数据操纵语言DML(Data Manipulation Language):用于执行对数据库检索和更新。
定义基本表(续)
❖ 表的完整性约束条件 创建表时可指定表的完整性约束条件,也称为约束: 列级完整性约束条件 完整性约束条件涉及到该表的当前一个属性列 表级完整性约束条件 完整性约束条件涉及到该表的一个或多个属性列
➢ RDBMS自动检查对表的操作是否违背表的完整性约束条件
学生表Student
数据库 模式
表 视图
模式 表
索引
定义模式(续)
❖ 基本格式: CREATE SCHEMA [<模式名>] AUTHORIZATION <用户名> CREATE、SCHEMA 、AUTHORIZATION为保留字 保留字习惯使用大写 CREATE SCHEMA 为定义模式的语句 <模式名>为所创建的模式的名称 尖括号表示用户提供的参数 方括号表示参数可选 AUTHORIZATION <用户名> 子句用于指定模式的所有者 <用户名>指定一个用户
❖ 也可以使用带指定参数值的命令创建数据库
3.3 数据定义
3.3.1 模式的定义与删除 3.3.2 基本表的定义、删除与修改 3.3.3 索引的建立与删除
定义模式
❖ 模式(SCHEMA) 定义模式实际上是定义了一个命名空间(或容器)。 在这个空间中可以定义该模式包含的数据库对象 例如基本表、视图、索引、存储过程等。 定义模式能更好的管理数据库中的对象
数据库系统概论(王珊_萨师煊)第三章关系数据库标准语言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 小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据操纵语言(DML)
数据操纵语言是指用来查询、添加、修改和删除数据库中数据的 语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。 在默认情况下,只有sysadmin、dbcreator、db_owner或 db_datawriter等角色的成员才有权利执行数据操纵语言。
返回值数据类型:varchar
例:LOWER(’12asABC45*%^def’)结果 为’12asabc45*%^def’。
UPPER(‘12ABC45*%^def’)结果为'12ABC45 *%^ DEF'。
3)日期时间函数
GETDATE函数 功能:按SQL Server内部标准格式返回系统日期和时间。 返回值数据类型:datetime 例如:getdate() --结果为2007-04-13 21:51:32.390
5、用户自定义函数
内置函数大大方便了用户进行程序设计,但用户编程时常 常需要将一个或多个T-SQL语句组成子程序,以便反复 调用。 SQL SERVER 2008允许用户根据需要自己定义函数。
标量函数
内嵌表值函数 多语句表值函数
关键字Create Function
例1:定义一函数,按院系统计各院系的平均年龄。 CREATE FUNCTION avg_age(@sdept char(4)) RETURNS int AS BEGIN declare @avg int select @avg =(select avg(sage) from student where sdept=@sdept) Return @avg END
数据定义语言(DDL)
数据定义语言是指用来定义和管理数据库以及数据库中的各种对象 的语句,这些语句包括CREATE、ALTER和DROP等语句。在SQL Server 中,数据库对象包括表、视图、触发器、存储过程、规则、 缺省、用户自定义的数据类型等。这些对象的创建、修改和删除等 都可以通过使用CREATE、ALTER、DROP等语句来完成。
例2:显示xs表中记录,其中姓名和院系名显示在一列,以 逗号隔开。 use stu select sno, sname+‘,’+sdept, sage from student
go
2)赋值运算符
Transact-SQL 中只有一个赋值运算符,即等号(=); 赋值运算符使我们能够将数据值指派给特定的对象。给局 部变量赋值的SET和SELECT语句中使用=运算符。 另外,还可以使用赋值运算符在列标题和为列定义值的表 达式之间建立关系。
其它语言元素
这部分是微软为了用户编程方便增加的语言元素,这些语言元 素包括运算符、变量、函数和流程控制语句。
运算符与表达式 变量 用户自定义数据类型 系统内置函数 用户自定义函数
1、运算符与表达式
运算符是一些符号,它们能够用来执行算术运算、字 符串连接、赋值以及在字段、常量和变量之间进行比 较。 在SQL Server 2008中,运算符主要有以下六大类: 算术运算符、赋值运算符、位运算符、比较运算符、 逻辑运算符以及字符连接运算符、赋值运算符。
• LEN函数 函数格式: LEN(expression1) 功能:返回字符串expression1中的字符个数,不包括字符串末尾的 空格。 返回值数据类型:int 例:LEN('abcde ')结果为5 LOWER函数和UPPER函数 函数格式: LOWER(expression1) 功能:将字符串expression1中的大写字母替换为小写字母。
数据控制语言(DCL)
数据控制语言(DCL)是用来设置或者更改数据库用户或角色 权限的语句,这些语句包括GRANT、DENY、REVOKE等语句, 在默认状态下,只有sysadmin、dbcreator、db_owner或 db_securityadmin等角色的成员才有权利执行数据控制语言。
Use xsbook
Exec sp_droptype sno
4、系统内置函数的使用
SQL Server 2008的内置函数非常多,常用的系统 内置函数:
数学函数
字符串函数
日期时间函数
1)数学函数
例1:数学函数综合应用:求绝对值。 Select abs(8.9),abs(-5.0) ,abs(0.0),abs(0) 例2:数学函数综合应用:返回半径为1英寸、高为5英寸的圆柱面 积。
练习1:定义一函数,按学号显示院系。 CREATE FUNCTION sdept(@sno char(9)) RETURNS char AS BEGIN declare @yx char select @yx=(select sdept from student where sno=@sno)
Return @yx
例3:将学号为200515001的记录的姓名赋值给变量@name。 DECLARE @name char(8) Set @name= (Select sname from student where sno='200518001') select @name as 姓名 Go
例4:将学号为的记录的姓名赋值给变量@name。 DECLARE @sno char(9) set @sno=‘200515001’ Select sname as 姓名 from xs where sno= @sno Go
2)全局变量
引用全局变量时,必须以标记符‚@@‛开头。
局部变量的名称不能与全局变量的名称相同。
全局变量是SQL Server系统内部使用的变量,其作用范围 并不仅仅局限于某一程序,而是任何程序均可以随时调用。
3、用户自定义数据类型
对于数据库stu,数据表student和sc都有字段‚学号‛ , 有相同的数据类型、字段长度及是否为空的属性。为了使 用方便,并使含义明确,可以先定义一数据类型,来描述 ‚学号‛的类型属性,然后让数据表student和sc的 ‚学 号‛字段定义为该类型。 定义方式:调用系统存储过程 sp_addtype
declare @h float,@r float
Select @h=5,@r=2 Select pi()*square(@r)*@h as '圆柱面积'
2)字符串函数
LEFT函数和RIGHT函数
函数格式: LEFT(expression1,n) 功能:返回字符串expression1从左边开始n个字符组 成的字符串。如果n=0,则返回一个空字符串。 返回值数据类型:varchar 例:LEFT(‘abcde’, 3)结果为‘abc’。 RIGHT('abcde', 3)结果为'cde'
DATEPART函数
函数格式:DATEPART(datepart,date) 功能:与DATENAME类似,只是返回值为整数。
返回值数据类型:int
例如: datepart(yy,'1993-3-4') --结果为1993
datepart (m,'1993-3-4')
--结果为3
datepart (d,'1993-3-4') --结果为4
YEAR函数
功能:返回指定日期date中年的整数。 返回值数据类型:int 例如: year('2004-3-5') --结果为2004
DATENAME函数 函数格式:DATENAME(datepart,date) 功能:返回日期date中由datepart指定的日期部分的字符串。 返回值数据类型:nvarchar 例如: datename(yy,'1993-3-4') --结果为'1993' datename (m,'1993-3-4') --结果为'03' datename (d,'1993-3-4') --结果为'4'
调用函数
利用select语句 Declare @sdept char(4), @avg int Set @sdept ='cs' select @avg=dbo.avg_age(@sdept) select @avg as 平均年龄 利用exec 语句 Declare @sdept char(4), @avg int exec @avg=dbo.avg_age @sdept =‘CS' select @avg as 平均年龄
语法格式:
例1:使用Sp_addtype创建数据类型sno。 Use student exec sp_addtype sno , 'char(9)‘ , 'not null'
删除用户自定义数据类型
语法格式:
Sp_droptype [@typename=] type
例1:删除数据类型sno。
例2:创建局部变量@sex、@zym并赋值,然后输出数据表中等于 变量的值的所有记录。
DECLARE @sex char(2),@zym char(10) Set @sex='男' Set @yx=‘CS' Select sno,sname, ssex, sdept from student where sdept =@yx and ssex = @sex Go
用SET语句赋值:
SET @local_variable=expression /*一个set语句只能给一个变量赋值*/
用SELECT语句赋值
SELECT {@local_variable=expression} [,…n]
例1:创建局部变量xuehao并赋值,然后输出所有等于该值的记录。 DECLARE @xuehao char(9) Set @xuehao='200515001' Select sname, ssex, sdept from student where sno= @xuehao Go