第5章 结构化查询语言SQL

合集下载

数据库应用第5章-1_结构化查询语言SQL_V08_2

数据库应用第5章-1_结构化查询语言SQL_V08_2

第5章 结构化查询语言SQL数据库系统应用Data Base System Application张建国哈工大计算机科学与技术学院2008-10-7哈工大计算机学院 张建国 Slide 5-1第5章 结构化查询语言SQL2008-10-72第5章 结构化查询语言SQL本章主要内容SQL概述 基本表的定义、修改与删除 SQL的数据更新 数据记录的插入 数据记录的修改 数据记录的删除 SQL的数据查询 索引的建立与删除 T-SQL语言2008-10-7哈工大计算机学院 张建国Slide 5-3第5章 结构化查询语言SQL5.1 SQL概述1. SQL的发展 SQL(Structured Query Language)意为结构化查询语言. 1974年由Boyce和Chamberlin提出来. 最初在System R关系数据库中实现.该语言功能丰富、语言简捷、使用灵活方便、深受各界欢迎.1986年成为美国国家标准. 1987年成为国际标准SQL86. 1989年,ISO颁布了增强完整性特征的SQL89标准. 1993年,ISO对SQL89标准进行了大量的修改和扩充,推出 SQL2(SQL92).2008-10-7哈工大计算机学院 张建国 Slide 5-4第5章 结构化查询语言SQL5.1 SQL概述(Cont.)SQL是一种通用的、功能极强的关系数据库语言. 各数据库厂家纷纷推出各自支持SQL的软件或与SQL 接 口软件,使自己的数据库可以运行SQL. 许多其他软件(例如图形处理、人工智能、软件工程工具 、软件开发工具等)也利用SQL语言的数据查询功能,作为 自身的一部分,使其数据查询功能更强大. 许多程序设计语言中也都引入了SQL.2008-10-7哈工大计算机学院 张建国Slide 5-5第5章 结构化查询语言SQL5.1 SQL概述(Cont.)2. SQL的特点 (1) 一体化 非关系模型的数据语言 模式数据定义语言:Schema DDL 外模式(子模式)数据定义语言:SubSchema DDL 存储模式数据定义语言: DSDL(Data Storage Definition Language) 数据操纵语言:DML SQL语言 SQL将数据定义语言DDL、数据操纵语言DML和数据控 制语言DCL集成在一起,各种语言风格统一.2008-10-7哈工大计算机学院 张建国 Slide 5-6第5章 结构化查询语言SQL5.1 SQL概述(Cont.)(2) 高度非过程化 非关系语言 通过存取路径存取数据. SQL语言 SQL是一种面向问题的语言,只需提出“做什么”,不必指出“ 怎么做”.存取路径的选择和SQL的操作过程是由系统自动 完成的. (3) 面向集合的操作方式 非关系语言 一次一个记录 SQL 采用集合操作,操作对象和操作结果都是元组的集合.2008-10-7哈工大计算机学院 张建国 Slide 5-7第5章 结构化查询语言SQL5.1 SQL概述(Cont.)(4) 两种使用方式、统一的语法结构 SQL既是自含式语言,又是嵌入式语言. 自含式语言 能独立地在联机方式下使用(命令方式),用户可以在终端键 盘上直接输入SQL命令对DB进行操作. 嵌入式语言 嵌入到高级语言(VB、PB、Java等)程序中,利用主语言(高 级语言)进行计算处理、利用DB语言进行数据管理. 同一条命令在两种操作方式中的语法结构基本一致.2008-10-7哈工大计算机学院 张建国Slide 5-8第5章 结构化查询语言SQL5.1 SQL概述(Cont.)(5) 语言简捷、易学易用 SQL具有很强的功能,但由于其设计巧妙,使得语言十分简捷. 完成其核心功能只用9个动词:数据查询:SELECT(查询) 数据定义:CREATE(创建表、索引、视图) DROP(删除表、索引、视图) ALTER(修改表) 数据操纵:INSERT(插入) DELETE(删除) UPDATE(修改) 数据控制:GRANT(授权) REVOKE(收回授权)2008-10-7哈工大计算机学院 张建国 Slide 5-9第5章 结构化查询语言SQL5.1 SQL概述(Cont.)3. SQL支持三级模式结构 外模式 外模式对应于视图View和部分基本表Base Table 用户可以用SQL语言对基本表和视图进行操作 从用户的观点看基本表和视图是一样的 模式 模式对应于基本表 基本表是独立存在的表 每个基本表对应一个关系2008-10-7哈工大计算机学院 张建国Slide 5-105.1 SQL概述(Cont.)内模式内模式对应于存储文件存储文件是在计算机存储介质中存放的文件形式一个或若干个基本表对应一个存储文件视图视图是从一个或几个基本表或其他视图导出的表视图并不存放实际的数据,仅保存视图的定义使用视图时,根据视图定义,从基本表中取数据因此,视图实际上是一个虚表5.1 SQL 概述(Cont.)SQL 用户2视图3视图2视图1基本表3基本表2基本表1存储文件3存储文件2存储文件1基本表4外模式模式内模式SQL 用户1SQL 用户35.2 基本表的定义、修改与删除1. 基本表的定义格式:CREATE TABLE 表名(列名1 数据类型1 [列级完整性约束条件1][,列名2 数据类型2 [列级完整性约束条件2]]…[,列名n 数据类型n [列级完整性约束条件n]]);表名:基本表的表名列名:属性名数据类型:属性的数据类型,可参考具体数据库系统的数据类型5.2 基本表的定义、修改与删除列级完整性约束条件:相应属性的完整性约束条件NULL/NOT NULL: 该项是否可以取空值UNIQUE: 该项是否具有唯一性CHECK: 该项的取值范围PRIMARY KEY: 设置主码FOREIGN KEY: 设置外码5.2 基本表的定义、修改与删除(Cont.)例:建立一个”学生”表Student和一个”系”表.Student(Sno,Sname,Birthday,Score,Dno)Dpet(Dno,Dname,Dtel)设:学号Sno:CHAR(10),主码姓名Sname:CHAR(8)性别Sex: CHAR(2),取值范围:”男”或”女”出生日期Birthday:SMALLDATETIME考分Score:SMALLINT,取值范围:500~750系号Dno: CHAR(2),系的主码,学生的外码系名Dname: CHAR(30)系电话Dtel: CHAR(13)5.2 基本表的定义、修改与删除(Cont.) CREATE TABLE Dept(Dno CHAR(2) primary key,Dname CHAR(30),Dtel CHAR(13));CREATE TABLE Student (Sno CHAR(10),Sname CHAR(8),Sex CHAR(2) CHECK (Sex=‘男’or Sex=‘女’),Birthday SMALLDATETIME,Score SMALLINT CHECK(Score>=500 and Score<=750, Dno CHAR(2),PRIMARY KEY(Sno),FOREIGN KEY (Dno) REFERENCES Dept(Dno) );5.2 基本表的定义、修改与删除(Cont.)2. 修改基本表格式:ALTER TABLE 表名[ADD 列名数据类型[完整性约束条件]]| [DROP COLUMN 列名]| [ALTER COLUMN 列名数据类型];其中:ADD子句:增加新列及其完整性约束DROP子句:删除指定的列ALTER子句:修改列的定义,包括列名和数据类型5.2 基本表的定义、修改与删除(Cont.)例:在Student表中加入一列性别”民族”,6位字符.ALTER TABLE Student ADD Nation CHAR(6);例:将”民族”的数据类型改为bit.ALTER TABLE Student ALTER COLUMN NationCHAR(8);例:删除”民族”.ALTER TABLE Student DROP COLUMN Nation;5.2 基本表的定义、修改与删除(Cont.)3. 删除基本表格式:DROP TABLE 表名删除基本表时,该表的数据以及在此表上建立的视图及索引全部删除,因此执行删除操作时应特别小心.例:删除基本表Student.DROP TABLE Student;数据库实例设学生-课程数据库中包含三个表:Student(Sno ,Sname,Sex,Birthday,Score,Dname)SC(Sno,Cno ,Grade)Course(Cno ,Cname,CPno,Credit)其中:Sno: CHAR(10); Sname: CHAR(8); Sex: CHAR(2); Birthday: SMALLDATETIME; Score: INT; Dname: CHAR(30)Grade: SMALLINTCno: CHAR(6); Cname: CHAR(30); CPno: CHAR(6);credit: TINYINT学生课程选课分数m n5.3 SQL的数据更新插入数据插入单个元组插入子查询的结果数据修改修改一个元组的数据修改多个元组的数据根据查询结果修改删除数据删除一个元组删除多个元组删除子查询的结果5.3 SQL的数据更新(Cont.)1. 插入数据(1) 插入单个元组格式:INSERT INTO 表名[(列名1[,列名2>,…)]VALUES (常量1[,常量2],…);例:将一个新学生元组的全部属性插入到Student中.•INSERT INTO Student•VALUES('6053610301','李兰','女','1989-3-5',658,'实验学院');5.3 SQL的数据更新(Cont.)例:将一个新学生元组的部分属性插入到Student中. INSERT INTO Student(Sno,Sname,Dname)VALUES('1030310105','王芳','计算机系');未列出的属性列取空值.(2) 插入子查询结果INSERTINTO 表名([列名1[,列名2,……)]子查询;5.3 SQL的数据更新(Cont.)例:建立一个学生平均成绩表SG,包括学号Sno和平均成绩Gavg CREATE TABLE SG(Sno CHAR(10) NOT NULL UNIQUE, Gavg SMALLINT);INSERTINTO SG(Sno,Gavg)SELECT Sno, AVG(Grade)FROM SCGROUP BY Sno;(3) 插入应注意的问题对于表Student和SC若在SC中插入的记录的Sno在Student不存在,则系统不允许插入.5.3 SQL的数据更新(Cont.)2. 修改数据格式:UPDATE 表名SET 列名1=表达式1[,列名2=表达式2]……[WHERE 条件];对满足条件的元组中的指定列用相应的表达式的值修改.(1) 修改一个元组的值例:将学生“6053610301”的性别改为“男”.•UPDATE Student•SET Sex='男'•WHERE Sno='6053610301';5.3 SQL的数据更新(Cont.)(2) 修改多个元组的值例:将课号为“101001”的所有成绩提高10%. UPDATE SCSET Grade=Grade*1.1 Where Cno=‘101001’;例:计算每种商品的金额.UPDATE 商品SET 金额=单价*数量;例:将选修课号为“101001”的成绩每人提高10分. UPDATE SCSET Grade=Grade+10WHERE Cno=‘101001’;(3) 带子查询的修改例:将“计算机系”全体学生的成绩清零.UPDATE SCSET Grade=0WHERE ‘计算机系’= (SELECT DnameFROM StudentWHERE Student.Sno=SC.Sno);(4) 修改应注意的问题对于表Student和SC若修改Student中的Sno,而未修改SC中对应记录的Sno.若修改SC中的Sno,而未修改Student中对应的Sno.5.3 SQL的数据更新(Cont.)5.3 SQL的数据更新(Cont.)3. 删除数据格式:DELETEFROM 表名[WHERE 条件];删除满足条件的元组.(1) 删除一个元组例:删除“6053610301"的学生记录.DELETE FROM Student WHERE Sno=‘6053610301’;5.3 SQL的数据更新(Cont.)(2) 删除多个元组例:删除所有学生的选课记录.DELETEFROM SC;(3) 删除子查询的结果例:删除“计算机系”学生的全部选课记录.DELETEFROM SCWHERE ‘计算机系’=(SELECT DnameFROM StudentWHERE Student.Sno=SC.Sno);5.3 SQL的数据更新(Cont.)(4) 删除操作注意保持数据的一致性一个学生的各种数据可能存放在多个表中,但一个删除语句只能对一个表进行删除,这样可能会引起数据不一致问题.例:删除学生“6053610301”在Student表中的记录后,学生的基本数据被删除了.但在SC表中仍存在该学生的选课及成绩记录,若不删除,将会使数据不一致.解决办法:执行两次删除操作,既删除Student表中6053610301的记录,又删除SC表中6053610301的相关记录.为了保证数据的完整性和一致性,许多系统的DBMS都提供了相应的处理机制.当主表的记录被删除后,其参照关系的相关记录自动删除.5.4 SQL的数据查询查询功能是数据库系统的核心.格式:SELECT [ALL|DISTINCT] */目标列表达式[,目标列表达式2…]FROM 表名/视图名[WHERE 条件表达式][GROUP BY 列名1 [HAVING 条件表达式]][ORDER BY 列名2 [ASC/DESC]];5.4 SQL的数据查询(Cont.)其中:SELECT:表示查询ALL:显示所有满足条件的元组DISTINCT:消除重复元组*:所有列目标列表达式:查询结果,可以有函数运算FROM:从哪些表或视图中查询WHERE:查询条件GROUP BY:按指定的列分组,例如,计算每个学生平均成绩时,要按学号分组HAVING:GROUP BY分组的条件ORDER BY:输出时按指定列排序ASC:升序(缺省值)DESC:降序5.4 SQL的数据查询(Cont.)1. 单表查询(1) 查询指定列例:查询全体学生的学号和姓名.SELECT Sno,SnameFROM Student;在表Student对Sno,Sname进行投影相当于:Π(Student)Sno,SnameSnameSno5.4 SQL的数据查询(Cont.)(2) 按用户要求的顺序查询指定列例:查询全体学生的姓名,学号和所在系的系名. SELECT Sname,Sno,DnameFROM Student;查询结果列的顺序可以与表中列的顺序不一致.SnameSno Dname5.4 SQL的数据查询(Cont.)(3) 查询全部列例:查询全体学生的全部数据.方法1SELECT Sno,Sname,Sex,Birthday,Score,DnameFROM Student;方法2SELECT *FROM Student;5.4 SQL的数据查询(Cont.) (4) 查询经过计算的值例:查询全体学生的学号,姓名和出生年份.SELECT Sno,Sname,YEAR(Birthday)FROM Student;计算学生的年龄:SELECT Sno,Sname,YEAR(GETDATE( ))-YEAR(Birthday) FROM Student;计算学生出生的月份:SELECT Sno,Sname,MONTH(Birthday)FROM Student;5.4 SQL的数据查询(Cont.)(5) 消除取值重复的元组例:查询所有课程名称.SELECT DISTINCT CnameFROM Course;例:查询所有系名.SELECT DISTINCT DnameFROM Student;(6) 查询满足条件的元组查询条件可以通过WHERE 子句实现,其常用的条件有:IN, NOT IN 集合LIKE, NOT LIKE 字符匹配IS NULL,IS NOT NULL 空值AND,OR 多重条件BETWEEN AND, NOT BETWEEN AND 范围=, >, <, <=, >=, !=(<>), !<,!>比较谓词条件5.4 SQL 的数据查询(Cont.)5.4 SQL的数据查询(Cont.)1) 比较大小例:查询“计算机”系全体学生的学号和姓名.SELECT Sno,SnameFROM StudentWHERE Dname=‘计算机’;例:查询全体21岁以下学生的学号和姓名.SELECT Sno,SnameFROM StudentWHERE YEAR(GETDATE( ))-YEAR(Birthday)<=21;5.4 SQL的数据查询(Cont.)2) 在一个范围内查询例:查询全体年龄在20至23岁的学生的学号和姓名. SELECT Sno,SnameFROM StudentWHERE YEAR(GETDATE( ))-YEAR(Birthday)BETWEEN20 AND23;例:查询全体年龄不在20至23岁的学生的学号和姓名. SELECT Sno,SnameFROM StudentWHERE YEAR(GETDATE( ))-YEAR(Birthday)NOT BETWEEN20 AND23;5.4 SQL的数据查询(Cont.)3) 条件为一个集合例:查询“计算机”系和“电气工程”系全体学生的全部数据. SELECT *FROM StudentWHERE Dname IN(‘计算机’,’电气工程’);括号中的内容为一个集合,相当于:SELECT *FROM StudentWHERE Dname=‘计算机’OR Dname=’电气工程’;若查询不是上述系的学生,可用条件:WHERE Dname NOT IN(‘计算机’,’电气工程’);5.4 SQL的数据查询(Cont.)4)字符匹配用谓词LIKE表示字符串匹配,形式为:[NOT] LIKE ‘匹配串’[ESCAPE ‘换码字符’]匹配串中:%表示任意长度的字符串;_表示任意单个字符例:查询“本科生05级03系”学生的全部数据.SELECT *FROM StudentWHERE Sno LIKE‘10503%’;若查询除“本科生05级03系”学生的全部数据,则条件可改为:WHERE Sno NOT LIKE’10503%’;若查询全校“03系”学生的全部数据,则条件可改为:WHERE Sno LIKE’_ _ _03%’;5.4 SQL的数据查询(Cont.)例:查询姓名中有“伟”字的学生的全部数据.SELECT *FROM StudentWHERE Sname LIKE‘%伟%’;若查询所有姓“王”的且姓名仅为两个汉字的学生的全部数据WHERE Sname LIKE‘王_’;若查询的字符串中包含%或_,可用转意符ESCAPE‘<转换码>’例:查询名称为“DB_Design”课程的课号和学分.SELECT Cno,creditFROM CourseWHERE Cname LIKE‘DB\_Design’ESCAPE‘\’;其中:\为转换码,表示该字符码后面的‘\’或‘%’不再具有匹配符的意义,而表示该字符本身.5.4 SQL的数据查询(Cont.)5)空值查询例:查询所有选课但未参加考试学生的学号和课号. SELECT Sno,CnoFROM SCWHERE Grade IS NULL;成绩为空值若查询所有有成绩的学生的学号和课号:WHERE Grade IS NOT NULL;6)多重条件查询例:查询“计算机”系年龄在21岁以下的学生的学号和姓名. SELECT Sno,Sname FROM StudentWHERE Dname=‘计算机’AND YEAR(GETDATE())-YEAR(Birthday) <=21;5.4 SQL的数据查询(Cont.)(7) 对查询结果排序用ORDER BY子句,ASC表示升序,DESC表示降序.例:查询选修了“101001”号课程的学生学号和成绩,并按成绩从高到低排序.SELECT Sno,GradeFROM SCWHERE Cno=‘101001’ORDER BY Grade DESC;若先按成绩从高到低排序,成绩相同者按学号从小到大排序.ORDER BY Grade DESC,Sno;5.4 SQL的数据查询(Cont.)(8) 集函数统计元组个数:COUNT([DISTINCT|ALL]|*)统计一列中值的个数:COUNT([DISTINCT|ALL]<列名>) 对一列求和:SUM([DISTINCT|ALL]<列名>)对一列求平均值:AVG([DISTINCT|ALL]<列名>)求一列中最大值:MAX([DISTINCT|ALL]<列名>)求一列中最小值:MIN([DISTINCT|ALL]<列名>) DISTINCT: 消除重复元组ALL: 所有元组,缺省值例:统计学生总数.SELECT COUNT (*) FROM Student;例:统计男生人数.SELECT COUNT (*) FROM Student WHERE Sex=‘男’;例:统计选修了课程的学生人数.SELECT COUNT (DISTINCT Sno) FROM SC;在SC 中对Sno 投影,然后统计去掉重复元组后的记录个数.例:查找选修“101001”号课程的学生最高分.SELECT MAX (Grade) FROM SCWHERE Cno=‘101001’;5.4 SQL 的数据查询(Cont.)怎样获得尚未选课的学生人数?怎样获得女生人数?例:计算选修“101001”号课程的学生平均成绩.SELECT AVG (Grade) FROM SC WHERE Cno=‘101001’;若显示课号及平均成绩,则:SELECT Cno,AVG (Grade) FROM SCWHERE Cno=‘101001’GROUP BY Cno;例:统计每个学生的平均成绩.SELECT Sno, AVG (Grade) FROM SCGROUP BY Sno;按课号分组5.4 SQL 的数据查询(Cont.)5.4 SQL的数据查询(Cont.)(9) 对查询结果分组分组方法用GROUP BY子句将查询结果按某一列或多列值分组,值相等的为一组.分组的目的进一步细化集函数的作用对象.例:求各门课程的课号及其选修该课的人数.SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;例:求每一个学生的平均成绩.SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno;5.4 SQL的数据查询(Cont.)若分组后还要按一定条件进行筛选, 可以用HAVING短语指定筛选条件.例:查询选修了3门以上课程的学生学号.SELECT Sno FROM SC GROUP BY SnoHAVING COUNT(*)>=3;先用GROUP语句进行分组,对每组用COUNT统计元组个数,对于每组元组个数大于等于3的学号进行输出.注意WHERE与HAVING语句的区别WHERE:作用于基本表或视图,选择满足条件的元组HAVING:作用于GROUP分成的子组,选择满足条件的组。

第五章结构化查询语言SQL

第五章结构化查询语言SQL
个数据表的名称之间用逗号隔开,在WHERE短语中必须指 定数据表之间进行的连接条件。
现在学习的是第16页,共88页
5.2.2 简单连接查询
在连接查询中引用两个表的公共字段时
1.等值连接
,须在公共字段名前添加表名或表别名 作为前缀,否则系统会提
对于等值连接,连接条件通常是两示个出数错据。表对的于公只共在字一段个的数值据相表等中。出现的
表指定别名,格式为<关系名>. <别名>,
指定别名后,在引用该数据表的字段时,应
以别名作为数据表的前缀。
现在学习的是第17页,共88页
5.2.2 简单连接查询
1.等值连接
例5.13 查询上官小梅所学课程的课程名及其对应的成绩 select 姓名,课程名,成绩 from student s,course c,grade g
结果全部合并;
现在学习的是第8页,共88页
5.2 数据查询
ORDER By<排序项> [ASC|DESC]:ORDER BY子句指定 按哪个字段对查询结果排序,ASC为升序, DESC为降序;
现在学习的是第9页,共88页
Destination可5以.是2 下数列据三种查子询句之一
[INTO Destination]:指定在何处保存查询结果。如果在同 一个查询中同时包含了INTO子句和TO子句,则TO子句不起
名>] ···]
[WHERE <连接条件> [AND <连接条件···]
[AND|OR<过滤条件> [AND |OR <过滤条件> ···]]]
[GROUP By <分组列> [,<分组列···]][HAVING <过滤条件>]

数据库系统及应用第5章 结构化查询语言SQL

数据库系统及应用第5章 结构化查询语言SQL
输入SQL 命令对数据库进行操作;另一种是程序嵌入方式,即在程序设计时将 SQL 语句嵌 入到高级语言程序中,运行程序时自动执行 SQL 语句序列。
5.1 SQL概述
1.SQL简介
SQL功能 数据定义 数据查询 数据操纵 数据控制
命令动词 CREATE、ALTER、DROP SELECT INSERT、DELETE、UPDATE GRANT、REVOKE
国标准。1987年,国际标准化组织(ISO)将其采纳为国际标准,并推荐它为关系型数据 库的标准操纵语言。该标准在1989年稍加扩充,通常被称为“SQL89”或“SQL1”,它 是许多商用关系数据库软件的基础。
5.1 SQL概述
1.SQL简介
SQL 语言具有以下特点。 (1)SQL 语言是一种介于关系代数和关系演算之间的语言,是一种一体化的语言。
(<字段名1> <字段类型> [ (字段宽度 [,<小数位数> ] ) ] [ NULL] [ NOTNULL ] [ CHECK <逻辑表达式1> [ ERROR <出错信息1> ] ] [AUTOINC [ NEXTVALUE <下一值> [STEP <步长>] ] ] [ DEFAULT <表达式1> ]
5.1 SQL概述
2.Visual FoxPro对SQL的支持
Visual FoxPro 支持 SQL 语言的数据定义、数据查询和数据操纵功能,但在具体实现 方面也存在一些差异。另外,由于 Visual FoxPro 自身在安全控制方面的缺陷,所以它没
有提供数据控制功能。
在 Visual FoxPro 中,用户可以使用以下几种方式执行 SQL 语句或命令。 (1)在命令窗口直接输入 SQL 命令。 (2)在程序中嵌入 SQL 语句。

第5章结构化查询语言

第5章结构化查询语言

第5章结构化查询语言结构化查询语言(SQL,Structured Query Language)是一种用于管理关系型数据库的标准化语言,也是数据库操作的基础。

SQL可以实现数据库的创建、查询、插入、更新和删除等操作,可以对数据库中的表、视图等进行管理和操作。

SQL语言包括数据定义语言(DDL)、数据操纵语言(DML)、数据查询语言(DQL)和事务控制语言(TCL)等几个方面。

数据定义语言(DDL)用于定义、修改和删除数据库对象,包括创建数据库(CREATEDATABASE)、创建表(CREATETABLE)、修改表结构(ALTERTABLE)和删除表(DROPTABLE)等。

数据操纵语言(DML)用于对数据库中的数据进行操作,包括插入数据(INSERT)、更新数据(UPDATE)和删除数据(DELETE)等。

数据查询语言(DQL)用于从数据库中查询数据,SQL语句的核心部分,可以实现复杂的数据查询和数据过滤。

常见的查询语句包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等。

事务控制语言(TCL)用于控制数据库中的事务,包括BEGINTRANSACTION、COMMIT、ROLLBACK等。

通过TCL语句可以确保数据库的操作具有原子性、一致性、隔离性和持久性(ACID特性)。

SQL语言的特点有以下几个方面:1.简单易学:SQL语言的语法相对简单,易于学习和使用。

2.高效可靠:SQL语言是标准化的数据库操作语言,可以高效地对数据库进行管理和操作。

3.跨平台性:SQL语言是一种通用的数据库操作语言,可以在不同的平台和数据库系统上使用。

4.强大灵活:SQL语言可以实现复杂的数据查询和处理,支持多表联合查询、条件查询、分组统计等功能。

SQL语言在现代数据库管理系统中得到了广泛的应用,是数据库开发和管理中非常重要的一部分。

掌握SQL语言可以更好地进行数据库设计、数据管理和数据分析等工作。

第 5 章 复习 SQL(结构化查询语言)

第 5 章  复习 SQL(结构化查询语言)

在T_SQL中,连接查询有两大类表示 形式,一是符合SQL标准连接谓词表示形 式,二是T_SQL扩展使用关键字JOIN的表 示形式。
① 指定每个表中要用于连接的列。典型的 连接条件在一个表中指定外键,在另一个 表中指定与其关联的键。 ② 指定比较各列的值时要使用的逻辑运算 符,如“=、< >”等。
[^]
BDTWEEN„AND IS NULL
LIKE
IN EXISห้องสมุดไป่ตู้S
模式匹配,字符串匹配操作符
检查一个字段值是否属于一组值之中 检查某一个字段值是否有值,实际上,EXISTS是IS NULL的反义词
4.练习
列出性别为女的学生姓名、家庭住址 SELECT student_name, address FROM student_info WHERE student_sex='女'
SQL查询
函数及统计
分组排序
连接 子查询
5.6 基于多表的连接查询
在关系型数据库中,将一个查询同时 涉及两个或两个以上的表,称为连接查询。 基于多表的查询是通过所谓的连接查 询来完成的。连接是根据各个表之间的逻 辑关系从两个或多个表中查询数据,结果 通常是含有参加连接运算的两个表(或多 个表)的指定列的表。
列出1980年以后出生的学生的情况 SELECT * FROM student_info WHERE born_date >'1980-12-31'
列出所有家住“武汉市”的男学生姓名、电 话号码和家庭住址
SELECT student_name, tele_number, student_sex, address FROM student_info WHERE substring(address,1,3)='武汉市' AND student_sex='男'

第5章SQL结构化查询语言

第5章SQL结构化查询语言

5.2 SELECT查询语句
5.2.1 查询分析器 5.2.2 查询语句格式 5.2.3关于演示数据库的说明
Find Information Using SQL Language
5.2.1 查询分析器
在SQL查询分析器中,既可在全文窗口中输入TransactSQL语句,也可以打开包含Transact-SQL语句的文本 文件,执行语句并在结果窗口中,查看结果。
SELECT bookname,
year(getdate())-year(publishdate) as 出版年数
FROM book
Find Information Using SQL Language
使用DISTINCT短语消除重复的记录
DISTINCT短语能够从结果表中去掉重复的记 录。
【例5-6】查询所有图书所属的出版社。
SELECT bookid AS 书号,bookname 书名,出版社=publish FROM book
Find Information Using SQL Language
显示表达式的值
在SELECT语句后面可以是字段表达式,字 段表达式不仅可以是算术表达式,还可以是 字符串常量、函数等。
【例5-5】 显示BOOK表中所有书名和出版年数。
使用单引号加入字符串
在SELECT语句中,可以在一个字段的前面加上一个单引 号字符串,称为虚拟列名,对后面的字段起说明作用。
【例5-3】显示BOOK表中书名、出版社、价格。 SELECT ’书名’, bookname ,’出版社,’publish,price FROM book
Find Information Using SQL Language
Find Information Using SQL Language

第5章SQL结构化查询语言

第5章SQL结构化查询语言

第5章SQL结构化查询语言SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。

它是一种标准化的查询语言,用于从数据库中检索和操作数据。

本章将介绍SQL的基本语法和常用命令,以及如何使用它进行数据查询、插入、更新和删除。

1.SQL语法SQL语法由关键字、函数、操作符和参数组成。

SQL语句通常以分号结尾,并且可以写在一行或多行中。

常见的SQL语句包括:- SELECT语句:用于从数据库中检索数据。

例如:SELECT * FROM table_name;- INSERT语句:用于向数据库中插入新的数据。

例如:INSERT INTO table_name (column1, column2) VALUES (value1, value2);- UPDATE语句:用于更新数据库中的数据。

例如:UPDATEtable_name SET column_name = new_value WHERE condition;- DELETE语句:用于从数据库中删除数据。

例如:DELETE FROM table_name WHERE condition;2.数据查询使用SELECT语句可以从数据库中检索数据。

可以使用通配符*检索所有列,或者指定要检索的列名。

例如,SELECT * FROM customers; 将检索customers表中的所有数据。

可以使用WHERE子句来添加过滤条件,例如:SELECT * FROM customers WHERE age > 18; 将检索年龄大于18的顾客数据。

3.数据插入使用INSERT语句可以向数据库中插入新的数据。

插入数据需要指定插入的表名和要插入的数据的列和值。

例如,INSERT INTO customers (name, age) VALUES ('John', 25); 将向customers表中插入一条名为John,年龄为25的新数据。

第5章结构化查询语言SQL

第5章结构化查询语言SQL

数据库系统及应用
第5章 结构化查询语言SQL
基本表的创建、 2.基本表的创建、修改和删除 DATABASE建立的数据库是一个空的数据库 建立的数据库是一个空的数据库, 用CREATE DATABASE建立的数据库是一个空的数据库,接下来应该在 这个数据库中建立表。 这个数据库中建立表。 (1)创建基本表 表的创建既可以通过表设计器或Visual FoxPro的新建表命令实现 的新建表命令实现, 表的创建既可以通过表设计器或Visual FoxPro的新建表命令实现, 也可以使用SQL中的相应命令创建。 SQL中的相应命令创建 也可以使用SQL中的相应命令创建。 命令格式: <表名 [FREE]( 字段名1> <字段类 表名> 命令格式:CREATE TABLE|DBF <表名> [FREE](<字段名1> <字段类 <(宽度[,<小数位数>])>[,<字段名 <字段类型 <(宽度[,<小 宽度[,<小数位数>])>[,<字段名2> 字段类型> 宽度[,< 型> <(宽度[,<小数位数>])>[,<字段名2> <字段类型> <(宽度[,<小 数位数>])>, >])>,…]) 数位数>])>, ]) 功能:建立一个由<表名>指定的表结构。 功能:建立一个由<表名>指定的表结构。 说明: 说明: 表名> 指定要创建的表的名称。 ①<表名>:指定要创建的表的名称。 FREE:指定创建的表是一个自由表,不被添加到数据库中。 ②FREE:指定创建的表是一个自由表,不被添加到数据库中。 字段名1> <字段类型 <(宽度[,<小数位数>]): 字段类型> 宽度[,<小数位数>]) ③<字段名1> <字段类型> <(宽度[,<小数位数>]):指定相应字段的 名称、类型、宽度及小数位数。 名称、类型、宽度及小数位数。

第5章结构化查询语言SQLppt课件全

第5章结构化查询语言SQLppt课件全

基本查询
❖ 例1:列出“学生”表中所有同学名单
▪ SELECT * FROM 学生
❖ 例2:列出成绩表中所有学生的学号,去掉重复值。
▪ SELECT DISTINCT 学号 FROM 成绩
SELECT命令中的函数
❖ 例3、列出所有学生的学号,姓名和入学成绩, 其中入学成绩四舍五入保留整数。
▪ SELECT 学号,姓名,ROUND(入学成绩,0) AS “入学成 绩” FROM 学生
WHERE——BETWEEN
❖ WHERE子句中的BETWEEN运算符用来确定范围 。
❖ 格式:
▪ BETWEEN…AND…或NOT BETWEEN…AND ▪ 其中BETWEEN后是范围的下限(低值),AND后是范围的
上限(高值)。
❖ 例1、列出入学成绩在560分到600分之间的学生 名单和成绩。
SQL89 ▪ 1992年公布了SQL的新标准,即SQL-92。 ▪ SQL99——SQL3
SQL语言的特点
❖ SQL是一种结构一体化的语言。它包括了数据定义 、数据查询、数据操纵和数据控制等功能,可以完 成数据库活动中的全部工作。
SQL语言的组成
❖ 数据定义:CREATE、DROP(删除)、
ALTER(修改)
▪ SELECT * FROM 学生 WHERE 专业<>“计算机”
❖ 例4、统计计算机专业入学成绩在600分以上的 学生的人数。
▪ SELECT COUNT(姓名) 人数 FROM 学生 WHERE 入 学成绩>=600 AND 专业=“计算机”
WHERE——IN
❖ WHERE子句中的IN谓词用来确定查询的集合。 ❖ 例1、查询计算机专业和外语专业的学生姓名和

第5章SQL结构化查询语言

第5章SQL结构化查询语言

第5章-SQL结构化查询语言第5章 SQL结构化查询语言5.1 SQL语言简介SQL(Structured Query Language 结构化查询语言)语言的核心是数据查询,在标准化过程中不断成为通用的数据库语言。

(1)高度集成化: SQL语言在数据定义、数据操纵、数据查询和数据控制方面都有规范的格式。

可以独立完成数据库管理的各项工作。

(2)非过程化语言:它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,只需告诉要做什么,系统就可以自动完成。

(3)集合操作:SQL语言的的操作对象和操作结果都是记录集合,这种集合特性允许一条SQL 语句的输出作为另一条SQL语句的输入,SQL语句可以嵌套。

(4)简单易学:SQL语言语句不多,语言接近英语自然语言。

在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的。

(5)用法灵活:SQL语言可以在数据库管理中直接应用,可以嵌入其它高级程序设计语言中,完成对数据库的操作。

SQL语言包含4个部分:数据定义语句(DDL):CREATE(创建)、DROP(撤掉)、ALTER(更改)。

数据操作语句(DML):INSERT(插入)、UPDATE(更新)、DELETE(删除)。

数据查询语句(DQL):SELECT(选择)。

数据控制语句(DCL):GRANT(授予)、REVOKE(吊销)、COMMIT(提交)、ROLLBACK(回滚)。

本章主要讲ACCESS 2003中所支持的SQL语句。

●使用SQL语句的步骤如下:●打开数据库窗口,进入查询设计器。

●关闭显示表窗口,执行菜单“查询|SQL特定查询|数据定义”命令。

●在打开的查询设计编辑窗口中,输入SQL语句。

●单击工具栏上的执行按钮,可以直接执行查询。

保存查询,单击工具栏上的保存按钮,在弹出的对话框中命名查询。

5.2 SQL数据查询语句完整的SQL查询语句常用的语法格式如下:SELECT [ALL|DISTINCT|TOP<n>]< * | 表名.* | [表名.]字段1 [AS 列标题1] [, [表名.]字段2 [AS 列标题2] [, …]]> [INTO <新表名>]FROM <表列或者表之间的联接关系>[WHERE <查询条件> ][GROUP BY <分组项> ] [HAVING <分组筛选条件> ][ORDER BY <排序项>[ASC|DESC] [,…]]其中:(1)语句中的符号“[]”表示可选项,“|”表示在多项选一,“<>”表示必选项。

第5章 标准结构化查询语言SQL

第5章 标准结构化查询语言SQL
SELECT 专业 FROM STUDENT SELECT DISTINCT 专业 FROM STUDENT 注意比较这两个语句的区别
5.3 SQL数据查询
(3)查询列中含有算术运算的表达式
SELECT子句的目标列中可以包含带有+、-、×、/的算术运算表达式。
[例5-10] 查询所有学生的学号,姓名和年龄。 SELECT 学号, 姓名, 2013-year(出生日期) FROM 说明:可以为列标题设置别名。
SELECT 学号 FROM 等价于 SELECT 学号 FROM SCORE WHERE 成绩 BETWEEN 85 成绩 >= AND 95 95
SCORE WHERE
85 AND 成绩 <=
5.3 SQL数据查询
练习: 1、查询xs.dbf计算机专业男生的xm、 zy和 csrq。
2、查询zg.dbf基本工资在800—1000之间的职工xm及bm.
[例5-14] 查询score.dbf选修了1001号课程且考试及格的学生学号和成绩。 SELECT 学号, 成绩 FROM SCORE WHERE 课程号='1001' AND 成绩>=60
5.3 SQL数据查询
(2)常用的查询条件运算符汇总
查询条件 比较 确定范围 确定集合 字符匹配 空值 多重条件 谓词 =,>,<,<=,>=,!=,<>,!>,!< Between and, not between and(两者之间) In,not in(两者以上) Like,not like Is null , is not null And ,or
5.3 SQL数据查询
命令格式: SELECT [ALL|DISTINCT] [ALIAS.] <字段名1> | <函数> [AS 列名称] [, [ALIAS.] <字段名2> | <函数> [AS 列名称] …] FROM <数据源> [WHERE <联接条件表达式1> AND|OR <联接条件表达式2> ] [ORDER BY <排序选项1> [ASC] [DESC] [,<排序选项2> [ASC] [DESC],……] [GROUP BY <分组字段名>] [HAVING<过滤条件表达式>]] 功能注释:

第五章 结构化查询语言SQL

第五章 结构化查询语言SQL

(6)<字段名> [NOT] LINK <字符表达式> 字段名> 字符表达式> SQL支持的关系运算符如下: SQL支持的关系运算符如下: 支持的关系运算符如下 =、<>、!=、#、==、>、>=、<、<=。
1.比较查询 1.比较查询 【例5-4】显示STUD表中所有男生记录的学号,姓名和 显示STUD表中所有男生记录的学号 表中所有男生记录的学号, 性别字段值。 性别字段值。 SELECT 学号,姓名,性别 ; 学号,姓名, FROM STUD WHERE 性别="男" 性别="男 2.多重条件查询 (AND、OR) 2.多重条件查询 AND、OR) 【例5-5】查询选修课程号为“C120”或“C140”且分数大 查询选修课程号为“C120”或 C140”且分数大 于等于80分学生的学号 课程号和成绩。 分学生的学号、 于等于80分学生的学号、课程号和成绩。 SELECT 学号,课程号,成绩 FROM 选课 WHERE; 学号,课程号, WHERE; 课程号=‘C120’ 课程号=‘C140’) 成绩>=80 (课程号=‘C120’ OR 课程号=‘C140’)AND 成绩>=80
【例5-3】显示SC(课程成绩表)中的所有记录,并将成 显示SC(课程成绩表)中的所有记录, 绩一项乘以0.7。 绩一项乘以0.7。 SELECT 学号,课程号,成绩*0.7 AS 成绩 FROM SC 学号,课程号,成绩*
5.3.2 条件查询
【格式】SELECT [ALL | DISTINCT] <字段列表> FROM <表> [WHERE <条件表达式> ] 【功能】从一个表中查询gt;由一系列用AND 或 OR 连接的 条件表达式组成,条件表达式的格式可以是以下几种:

结构化查询语言SQL

结构化查询语言SQL

SQL常用函数 名称 求和 计数 最大值 最小值 函数 SUM(字段名) SUM(字段名) 功能 求字段名所指定字段值的总和 求字段名所指定字段值的平均值 求字段名所指定字段的最大值 求字段名所指定字段的最小值
求平均值 AVG(字段名) AVG(字段名) MAX(字段名) MAX(字段名) MIN(字段名) MIN(字段名)
5.3 数据操纵
1. 插入记录 Insert Into <表名>(<字段名1>[,<字段名2>……]) Values(<表达式1>[,<表达式2>……) 2. 更新记录 Update<表名> Set <字段名1>=<表达式1> [<字段名2>=<表达式2> ……][Where<条件表达式>] 3. 删除记录 Delete From <表名>[Where<条件表达式>]
COUNT(字段名) COUNT(字段名Байду номын сангаас 计算记录个数
四舍五入 ROUND(字段名) 对输出数值四舍五入 ROUND(字段名)
5.2 数据定义
1.创建表 Creat Table<表名> ([<字段名1>]类型(长度)[,[<字段名2>]类型(长度)……]) 2.修改字段属性 Alter Table<表名> Alter<字段名1>类型(长度)[Alter[<字段名2>]类型(长度)……] 3.删除字段 Alter Table<表名> Drop<字段名1>[Drop<字段名2>……] 4.增加字段 Alter Table<表名> Add <字段名1>类型(长度)[Add[<字段名2>]类型(长度)……]

第5章结构化查询语言SQL

第5章结构化查询语言SQL

1/16/2020
第五章 结构化查询语言SQL
13
5.3 SQL的查询功能
5.3.1 单表的查询 四、分组查询
例5.21 统计每支球队参加世界杯的次数。 SELECT 参赛队,COUNT(*) AS 参加次数; FROM 参赛成绩 GROUP BY 参赛队
例5.22 查询参加过十次(含十次)以上世界杯的球队。 SELECT 参赛队,COUNT(*) AS 参加次数; FROM 参赛成绩 ; GROUP BY 参赛队 HAVING 参加次数>=10
1/16/2020
第五章 结构化查询语言SQL
11
5.3 SQL的查询功能
5.3.1 单表的查询 三、使用集函数查询
常用的集函数
函数名 SUM() AVG() MAX() MIN() COUNT()
功能 计算指定数值列的总和 计算指定数值列的平均值 求指定(数值、字符、日期)列的最大值 求指定(数值、字符、日期)列的最小值 求查询结果的一列中值的个数或元组(记录)数
1/16/2020
第五章 结构化查询语言SQL
7
5.3 SQL的查询功能
基本的形式由SELECT、FROM和WHERE三个子句组成,并具有如下 形式:
SELECT <属性列表> FROM <关系列表> WHERE <条件表达式>
<属性列表>是一个属性名(即字段名)的列表,说明要查询的数据。 <关系列表>是一个该查询涉及的表名列表,说明要查询的数据来自哪个或哪些 表,可以对单个表或多个表进行查询。 <条件表达式>是一个条件表达式,说明查询条件,即选择元组的条件。
此格式在指定表的尾部插入由VALUES (eExpression1 [, eExpression2, ...]) 给出具体值的记录。
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.1 SQL语言概述
Visual FoxPro不支持全部的SQL语言,仅 支持SELECT、CREAT、ALTER、INSERT、DELETE、 UPDATE等几种命令,其功能如下:
SQL 功能 数据定义 数据操纵 数据查询 动 词 CREAT、ALTER INSERT、DELETE、UPDATE SELECT
SELECT ALL * FROM 学生 或 SELECT * FROM 学生 等价于:
SELECT 学号,姓名,性别,出生日期,系别,贷款否,简历,照片 FROM 学生
演示
注意:*不能省
SELECT FROM 学生 错
17
2.FROM子句
FROM [<数据库名>!]<表1> [AS <别名1>] [[INNER|LEFT|RIGHT|FULL[[OUTER]]] JOIN [<数据库名>!]<表2>[AS <别名2>] ON <联接条件> [INTO <目标>]|[TO FILE <文件名>[ADDITIVE] |TO PRINTER|TO SCREEN]][PREFERENCE<优先名>] [NOCONSOLE][PLAIN][NOWAIT]
15
1. SELECT子句
SELECT [ALL|DISTINCT] [TOP<数值表达式> [PERCENT]] [<别名1>.]<选项1> AS <列名1>, [<别名2>.]<选项2> AS <列名2>,……
SELECT子句用来指定查询结果中的数据。其中:
[<别名1>.]<选项1> AS <列名1>: 别名1:是字段所在的表名; 选项1:可以是字段名、常量或表达式; 列名1:用于指定输出时使用的列标题,可以不同 于字段名。 注意:选项1用一个*号来表示时,指定所有的字段。
没有提供 数据控制的功能
本章介绍 数据查询、数 据操纵功能
11
5.4 数据查询
数据查询是SQL语言的核心, SQL给出了简单而又丰富 的查询语句形式,SQL的查询命令也称作SELECT命令, 它的基本形式由SELECT-FROM-WHERE查询块组成, 使用SELECT命令,可以对数据源进行各种组合,有效 地筛选记录、管理数据、并对结果排序及指定输出去 向等,无论查询多么复杂,其内容只有一条SELECT语 句。
FROM子句用于指定查询的表与联接类型。其中: 3、ON选项:用于指定联接条件。
19
表1
联接类型
意义
联接类型
Inner Join Left Outer Join
只有满足联接条件的记录包含在结果中 左表某记录与右表所有记录比较字段值, 若有满足联接条件的,则产生一个真实记录; 若都不满足,则产生一个含.NULL值的记录。 直到左表所有记录都比较完 Right Outer Join 右表某记录与左表所有记录比较字段值, 若有满足联接条件的,则产生一个真实记录; 若都不满足,则产生一个含.NULL值的记录。 直到右表所有记录都比较完 Full Jion 先按右联接比较字段值, 再按左联接比较字段值。 不列入重复记录
结果为:
4、全联接
24
2.FROM子句
FROM [<数据库名>!]<表1> [AS <别名1>] [[INNER|LEFT|RIGHT|FULL[[OUTER]]] JOIN [<数据库名>!]<表2>[AS <别名2>] ON <联接条件> [INTO <目标>]|[TO FILE <文件名>[ADDITIVE] |TO PRINTER|TO SCREEN]][PREFERENCE<优先名>] [NOCONSOLE][PLAIN][NOWAIT]
7
5.1 SQL语言概述
(3)简洁易学 虽然SQL的功能很强大,但语法却很 简单,只有为数不多的几条命令,这些核心功能只用 了9个命令动词;而且语法也接近英语自然语法。
SQL语句可以在命令窗口中执行,也可以作为查询或视 图(的内容)被使用,还可以在程序文件被执行。 表5.1 SQL命令动词 —————————————————————— SQL功能 命令动词 —————————————————————— 数据查询 SELECT 数据定义 CREATE、DROP、ALTER 数据操作 INSERT、UPDATE、DELETE 数据控制 GRANT、REVOKE
6
5.1 SQL语言概述
SQL语言是数据库的标准语言,几乎所有的关系数 据库管理系统都支持SQL标准。SQL语言的主要特点是: (1)高度集成化 SQL语言集数据定义、数据操纵、 数据查询和数据控制功能于一体。 (2)非过程化 SQL是一种非过程化的语言。
它不必一步步地告诉计算机“如何”去做,用户 只需说明做什么操作,而不用说明怎样做,不必了解 数据存储的格式及SQL命令的内部,就可方便地对关 系数据库进行操作。
例:SELECT 学生.学号, 学生.姓名, 成绩.成绩; FROM 学生 JOIN 成绩 ; 20 ON 学生.学号 = 成绩.学号; WHERE 学生.性别 = "男"
结果为:
1、内部联接(演示命
SELECT 学生.学号,学生.姓名
例: SELECT 学生.学号, 学生.姓名, 成绩.成绩; 21 FROM 学生 LEFT JOIN 成绩 ;
同理: [<别名2>.]<选项2> AS <列名2>类似
16
1. SELECT子句
SELECT [ALL|DISTINCT] [TOP<数值表达式> [PERCENT]] [<别名1>.]<选项1> AS <列名1>, [<别名2>.]<选项2> AS <列名2>,……
例:在学生表中查询所有的学生记录。
4
第5章 结构化查询语言SQL
•SQL是Structured Query Language的缩写, 即结构化查询语言。它是关系数据库的标准语 言。
•查询是SQL语言的重要组成部分,SQL还包 含数据定义、数据操作和数据控制功能等内容。 •SQL已经成为关系数据库的标准数据语言, 所以现在所有的关系数据库管理系统都支持 SQL。
ON 学生.学号 = 成绩.学号; WHERE 学生.性别 = “男”
结果为:
2、左联接
例:SELECT 学生.学号,学生.姓名,成绩.成绩 FROM 学生 RIGHT JOIN 成绩 22 ON 学生.学号=成绩.学号 WHERE 性别="男"
结果为:
3、右联接
例:SELECT 学生.学号,学生.姓名,成绩.成绩 FROM 学生 FULL JOIN 成绩 23 ON 学生.学号=成绩.学号 WHERE 性别="男"
说明:SELECT-ቤተ መጻሕፍቲ ባይዱQL命令的格式包括三个基本子句:
SELECT子句、FROM子句、WHERE子句, 还包括操作子句: ORDER子句、GROUP子句、UNION子句以及其他一些选项
14
1. SELECT子句
SELECT [ALL|DISTINCT] [TOP<数值表达式> [PERCENT]] [<别名1>.]<选项1> [AS <列名1>] [,<别名2>.]<选项2> [AS <列名2>]……
8
5.1 SQL语言概述
从该表可知,它的词汇很少。 (3)简洁易学 虽然SQL的功能很强大,但语法却很 初学者经过短期的学习就可 简单,只有为数不多的几条命令,这些核心功能只用 以使用SQL进行数据库的存 了9个命令动词;而且语法也接近英语自然语法。 取等操作,因此,易学易用 是它的最大特点。
表5.1 SQL命令动词 —————————————————————— SQL功能 命令动词 —————————————————————— 数据查询 SELECT 数据定义 CREATE、DROP、ALTER 数据操作 INSERT、UPDATE、DELETE 数据控制 GRANT、REVOKE
12
5.4.1 SQL-SELECT 查询语句
SELECT 命令可以进行多个查询块的嵌套查询,以完成 更复杂的查询任务。 其命令格式为:
格式:SELECT [ALL|DISTINCT] [TOP<数值> [PERCENT]] 13 [<别名1>.]<选项1> [AS <列名1>] [,<别名2>.]<选项2> [AS <列名2>]…… FROM [<数据库名>!]<表1> [AS <别名1>] [[INNER|LEFT|RIGHT|FULL[OUTER]] JOIN [<数据库名>!]<表2>[AS <别名2>] ON <联接条件> [INTO <目标>]|TO FILE <文件名>|TO PRINT ] [WHERE <筛选条件> [AND <联接条件>] [GROUP BY <分组项>] [HAVING <筛选条件>] [UNION [ALL] SELECT <命令>] [ORDER BY <排序项1>[ASC|DESC] [,<排序项2>[ASC|DESC]…]
FROM子句用于指定查询的表与联接类型。其中: 1、JOIN关键字用于联接其左右两个〈表名〉所指 定的表。 2、INNER | LEFT[OUTER] | RIGHT [OUTER] | FULL[OUTER]选项,指定两表联
相关文档
最新文档