第3章标准sql语句详解

合集下载

第3章 SQL语言

第3章 SQL语言
17
SELECT SNO, CNO, SCORE FROM SC WHERE CNO=‘C1’ OR CNO= ‘C2’ 利用“NOT IN”可以查询指定集合外的元组。 例11 查询没有选修C1,也没有选修C2的学生的学号、课 程号和成绩。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO NOT IN(‘C1’, ‘C2’) 等价于: SELECT SNO, CNO, SCORE FROM SC WHERE CNO!=‘C1’ AND CNO!= ‘C2’
注意:函数SUM和AVG只能对数值型字段进行计算。
23
例16 求选修C1号课程的最高分、最低分及之间相差的分 数 SELECT MAX(SCORE) AS MaxScore, MIN(SCORE) AS MinScore, MAX(SCORE) - MIN(SCORE) AS Diff FROM SC WHERE (CNO = 'C1') 例17 求计算机系学生的总数 SELECT COUNT(SNO) FROM S WHERE DEPT='计算机'
1. SQL语言类似于英语的自然语言,简洁易用。 2. SQL语言是一种非过程语言,即用户只要提出“干什 么”即可,不必管具体操作过程,也不必了解数据的 存取路径,只要指明所需的数据即可。 3. SQL语言是一种面向集合的语言,每个命令的操作对 象是一个或多个关系,结果也是一个关系。 4. SQL语言既是自含式语言,又是嵌入式语言。可独立 使用,也可嵌入到宿主语言中。 自含式语言可以独立使用交互命令,适用于终端 用户、应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用 程序员开发应用程序。
10
例1 查询全体学生的学号、姓名和年龄。 SELECT SNO, SN, AGE FROM S 例2 查询学生的全部信息。 SELECT * FROM S 用‘ * ’表示S表的全部列名,而不必逐一列出。

sql 课件 第3章 关系数据库标准语言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

第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 , ,

第3章 关系数据库标准语言SQL_第4版(1-3)

第3章 关系数据库标准语言SQL_第4版(1-3)
1 6 7 6
学分 Ccredit 4 2 4 3 4 2 4
SC表
学号 Sno
200215121 200215121 200215121 200215122 200215122
课程号 Cno
1 2 3 2 3
成绩 Grade
92 85 88 90 80
§3.3 数据定义
SQL的数据定义功能: 模式定义、表定义、视图 和索引的定义
被参照建立一个“学生选课”表SC CREATE TABLE SC Cno CHAR(4), Grade SMALLINT, 列级完整性约束条件, Sno是外码,被参照表是 Student
(Sno CHAR(9) REFERENCES Student(Sno) , 主码由两个属性构 成,必须作为表级 完整性进行定义

用户数据库投入运行后,可根据需要随时逐步修 改模式,不影响数据的运行。 数据操作符统一
2.高度非过程化

非关系数据模型的数据操纵语言“面向过程”,
必须制定存取路径

SQL只要提出“做什么”,无须了解存取路径。 存取路径的选择以及SQL的操作过程由系统自动 完成。
3.面向集合的操作方式

SQL
数据流(Data) 元数据流(Meta Data) 对应于视图和部 分基本表
视图1
视图2
外模式
对应于基本表
基本表1 基本表2 基本表3 基本表4
数据词典
(元数据)
模式
对应于存储 文件
存储文件1 存储文件2 内模式
SQL的基本概念(续)

基本表(BASE TABLE):
是独立存在的表, 一个关系对应一个基本表,
嵌入式语言:嵌入高级语言如C,COBOL, FORTRAN,PB等

第3章-结构化查询语言ppt课件

第3章-结构化查询语言ppt课件
五、SQL语言语句类别
1. 数据操纵语言
数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于查询和增删修改表数据的语句,主要语句如下:
SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT - 向数据库表中插入数据
四、SQL能做什么?
SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限
Numeric(6,2)


工作时数
任务(ASSIGNMENT)表结构
列名
类型

是否非空
备注
DepartmentName
Text(35)
主键是Biblioteka 部门名称BudgetCode
Text(30)


预算编号
OfficeNumber
Text(15)


办公室编号
Phone
Text(12)


办公电话
列名
类型
PROJECT表结构
列名
类型

是否非空
备注
ProjectID
Int
主键,外键

复合键,项目编号
EmployeeNumber
Int
主键,外键

复合键,雇员编号
HoursWorked
Numeric(6,2)

数据库第3章

数据库第3章

使用DROP子句删除指定的完整性约束条件 【例3-7】 删除student表学生姓名必须取惟一值的约束 条件。 ALTER TABLE student DROP UNIQUE(name); 使用MODIFY子句修改基本表的列定义 【例3-8】 将student 表name列的数据类型改为定长字符 串型。 ALTER TABLE student MODIFY name char(8) NOT NULL; 注意: (1)修改列定义时,要将原来的列级约束条件写上,否则 原有的列级约束会不起作用。 (2)修改列定义时,有可能会破坏已有的数据,应事先作 好备份工作。 (3)SQL未提供删除属性列的语句,只能采取间接的方法
3.2 数据定义
表3-1 SQL的数据定义语句 操作对象 数据库 操作方式 创建语句 CREATE DATABASE CREATE TABLE 删除语句 DROP DATABASE 修改语句 ALTER DATABASE
基本表 索引
视图
DROP
TABLE INDEX
VIEW
ALTER TABLE
CREATE INDEX DROP
3.2.4 建立索引 索引的概念 索引是建立在列上的一种数据库对象,它 对表中的数据提供逻辑顺序,当在数据库表中 搜索某一行时,可以通过使用索引来找到它的 物理位置。索引建立后,什么时候使用索引以 及使用哪一个索引(当有多个索引存在时), 由DBMS内部根据情况自行决定,不需要人员干 预。索引是动态的,每当数据库表的数据更新 一次,相应的索引也随之更新。
CREATE VIEW DROP
3.2.1 数据库的创建与删除 创建数据库 SQL使用命令CREATE DATABASE创建数据库,其一般语法 如下: CREATE DATABASE <数据库名>; 【例3-1】创建一个简单数据库。 CREATE DATABASE MyDb; 删除数据库 SQL使用命令DROP DATABASE删除一个或多个数据库,其 一般语法如下: DROP DATABASE <数据库名1> [,<数据库名2>][,…]; 【例3-2】删除数据库MyDb。 DROP DATABASE MyDb;

sql 语句简易教程

sql 语句简易教程

sql 语句简易教程SQL语句简易教程1. 什么是SQL•SQL全称为Structured Query Language(结构化查询语言)•是一种用于管理关系型数据库的语言•可以使用SQL语句对数据库进行查询、插入、更新和删除操作2. SQL语句的基本结构•SQL语句由关键字、表名、字段、条件等组成•常见的SQL语句包括:SELECT、INSERT、UPDATE和DELETE SELECT语句•用于从数据库中查询数据•示例:SELECT * FROM 表名;SELECT 列名1, 列名2, ... FROM 表名;INSERT语句•用于向数据库中插入新数据•示例:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);UPDATE语句•用于更新数据库中的现有数据•示例:UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件; DELETE语句•用于从数据库中删除数据•示例:DELETE FROM 表名 WHERE 条件;3. SQL语句中的常见条件•条件用于过滤查询结果•常见的条件操作符有:=、<>、<、>、<=、>=等AND条件•用于同时满足多个条件•示例:SELECT * FROM 表名 WHERE 条件1 AND 条件2;OR条件•用于满足多个条件中的任意一个•示例:SELECT * FROM 表名 WHERE 条件1 OR 条件2;IN条件•用于指定某个字段的值在一组值中•示例:SELECT * FROM 表名 WHERE 列名 IN (值1, 值2, ...); LIKE条件•用于模糊匹配•示例:SELECT * FROM 表名 WHERE 列名 LIKE '关键词%';4. SQL语句中的常见操作排序•可以使用ORDER BY子句对查询结果进行排序•示例:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;分页•可以使用LIMIT子句对查询结果进行分页•示例:SELECT * FROM 表名 LIMIT 偏移量, 数量;聚合•可以使用聚合函数(如SUM、COUNT、AVG、MIN和MAX)对查询结果进行统计•示例:SELECT COUNT(*) FROM 表名;SELECT SUM(列名) FROM 表名;5. SQL语句的进阶用法•SQL语句还支持表连接、子查询、视图、索引等高级用法•可以进一步学习和探索这些用法以更好地应对复杂的数据操作需求以上是关于SQL语句简易教程的详细整理,希望对你学习SQL有所帮助。

《数据库原理及应用》教学课件 第三章SQL基础

《数据库原理及应用》教学课件 第三章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 中可按如下步骤创建数据库。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
An Introduction to Database System
删除数据(续)
DBMS在执行删除语句时会检查所插元组
是否破坏表上已定义的完整性规则

参照完整性

不允许删除 级联删除
An Introduction to Database System
更新数据与数据一致性
DBMS在执行插入、删除、更新语句时必 须保证数据库一致性
An Introduction to Database System
建立视图(续)

WITH CHECK OPTION
透过视图进行增删改操作时,不得破坏视 图定义中的谓词条件 (即子查询中的条件表达式)
An Introduction to Database System
组成视图的属性列名
全部省略或全部指定

省略: 由子查询中SELECT目标列中的诸字段组成 明确指定视图的所有列名:
(1) 某个目标列是集函数或列表达式

(2) 目标列为 *
(3) 多表连接时选出了几个同名列作为视图的字段 (4) 需要在视图中为某个列启用新的更合适的名字
1. 删除某一个元组的值
[例8] 删除学号为95003的学生记录。 DELETE FROM Student WHERE Sno='95003';
ห้องสมุดไป่ตู้
An Introduction to Database System
2. 删除多个元组的值
[例9] 删除2号课程的所有选课记录。
DELETE FROM SC; WHERE Cno='2';


必须有事务的概念和原子性
完整性检查和保证
An Introduction to Database System
第三章 关系数据库标准语言SQL
3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图
An Introduction to Database System
3.5 视
An Introduction to Database System
建立视图(续)
DBMS执行CREATE VIEW语句时只是把
视图的定义存入数据字典,并不执行其中
的SELECT语句。
在对视图查询时,按视图的定义从基本表
中将数据查出。
An Introduction to Database System
An Introduction to Database System
修改多个元组的值(续)
[例6]
将信息系所有学生的年龄增加 1岁。
UPDATE Student SET Sage= Sage+1 WHERE Sdept=' IS ';
An Introduction to Database System

视图的特点

虚表,是从一个或几个基本表(或视图) 导出的表 只存放视图的定义,不会出现数据冗余


基表中的数据发生变化,从视图中查询 出的数据也随之改变
An Introduction to Database System
3.5 视

基于视图的操作

查询 删除 受限更新 定义基于该视图的新视图

功能 修改指定表中满足WHERE子句条件的元组

An Introduction to Database System
修改数据(续)

三种修改方式

修改某一个元组的值
修改多个元组的值
带子查询的修改语句
An Introduction to Database System
1. 修改某一个元组的值
数据库系统原理
An Introduction to Database System
第三章 关系数据库标准语言SQL
An Introduction to Database System
第三章 关系数据库标准语言SQL
3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图
An Introduction to Database System

NOT NULL约束
UNIQUE约束

值域约束
An Introduction to Database System
3.4 数 据 更 新
3.4.1 插入数据
3.4.2 修改数据
3.4.3 删除数据
An Introduction to Database System
3.4.3 删除数据
DELETE FROM <表名> [WHERE <条件>]; 功能
插入子查询结果(续)
[例] 对每一个系,求学生的平均年龄, 并把结果存入数据库。
1.创建表,存入数据 2.通过视图
An Introduction to Database System
创建基表存数据
CREATE TABLE Deptage (Sdept CHAR(15) /* 系名*/ Avgage INT); /*学生平均年龄*/
An Introduction to Database System
3.5 视

3.5.1 定义视图
3.5.2 查询视图 3.5.3 更新视图 3.5.4 视图的作用
An Introduction to Database System
1. 建立视图

语句格式
CREATE VIEW <视图名> [(<列名> [,<列名>]…)] AS <子查询> [WITH CHECK OPTION];
An Introduction to Database System
行列子集视图
[例1] 建立信息系学生的视图。
CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS';
从单个基本表导出 只是去掉了基本表的某些行和某些列保留了码
[例10] 删除所有的学生选课记录。
DELETE FROM SC;
An Introduction to Database System
3. 带子查询的删除语句
[例11] 删除信息系所有学生的选课记录。
DELETE FROM SC WHERE ‘IS'= (SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);
3.4 数 据 更 新
3.4.1 插入数据
3.4.2 修改数据
3.4.3 删除数据
An Introduction to Database System
3.4.1 插入数据

两种插入数据方式

插入单个元组

插入子查询结果
An Introduction to Database System
1. 插入单个元组
3. 带子查询的修改语句
[例7] 将计算机科学系全体学生的成绩置零
UPDATE SC SET Grade=0 WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);
An Introduction to Database System
[例4] 将学生95001的年龄改为22岁。 UPDATE Student SET Sage=22 WHERE Sno=' 95001 ';
An Introduction to Database System
2. 修改多个元组的值
[例5] 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1
)]
插入子查询结果(续)
[例3] 对每一个系,求学生的平均年 龄,并把结果存入数据库。
第一步:建表
CREATE TABLE Deptage (Sdept CHAR(15) /* 系名*/ Avgage INT); /*学生平均年龄*/
An Introduction to Database System
An Introduction to Database System
3.4 数 据 更 新
3.4.1 插入数据
3.4.2 修改数据
3.4.3 删除数据
An Introduction to Database System
3.4.2 修改数据

语句格式
UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达 式>]… [WHERE <条件>];

删除指定表中满足WHERE子句条件的元组 指定要删除的元组 缺省表示要删除表中的所有元组
An Introduction to Database System

WHERE子句

删除数据(续)

三种删除方式

删除某一个元组的值
删除多个元组的值
带子查询的删除语句
An Introduction to Database System

语句格式
INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)] VALUES (<常量1> [,<常量2>]


)
功能 将新元组插入指定表中。
An Introduction to Database System
相关文档
最新文档