第5章sql(结构化查询语言)概要

上传人:今*** 文档编号:110007876 上传时间:2019-10-28 格式:PPT 页数:144 大小:1.26MB
返回 下载 相关 举报
第5章sql(结构化查询语言)概要_第1页
第1页 / 共144页
第5章sql(结构化查询语言)概要_第2页
第2页 / 共144页
第5章sql(结构化查询语言)概要_第3页
第3页 / 共144页
第5章sql(结构化查询语言)概要_第4页
第4页 / 共144页
第5章sql(结构化查询语言)概要_第5页
第5页 / 共144页
点击查看更多>>
资源描述

《第5章sql(结构化查询语言)概要》由会员分享,可在线阅读,更多相关《第5章sql(结构化查询语言)概要(144页珍藏版)》请在金锄头文库上搜索。

1、第 5 章 SQL(结构化查询语言),SQL的全称为Structured Query Language(结构化查询语言),它利用一些简单的句子构成基本的语法,来存取数据库的内容。,5.1 SQL,5.1.1 SQL概述 SQL是应用于数据库的语言,本身是不能独立存在的。,5.1.2 SQL的分类,SQL按照用途可以分为如下3类。 1数据定义语言(Data Definition Language,DDL) 类似于这一类定义数据库对象的SQL叙述即为DDL语言。例如,数据库创建语句(CREATE DATABASE)和表创建语句(CREATE TABLE)等。,2数据处理语言(Data Manipu

2、lation Language,DML),SQL语法中处理数据语言称为DML。例如,使用SELECT(数据查询语句)查询表中的内容,或者使用INSERT(插入语句)、DELETE(删除语句)和UPDATE(更新语句)插入、修改和更新一笔记录等,这些语句属于DML。,3数据控制语言(Data Control Language,DCL),数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括grant、deny、revoke等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言

3、。,连接、选择和投影,SQL Server是一个关系数据库管理系统,建立在关系模型基础之上,具有严格的数学理论基础。关系运算的特点是运算的对象和结果都是表。,选择(Selection),选择是单目运算,其运算对象是一个表。该运算按给定的条件,从表中选出满足条件的行形成一个新表作为运算结果。 选择运算的记号为 F(R)。 其中是选择运算符,下标F是一个条件表达式,R是被操作的表。 【例4.1】学生情况表如表4.1所示。,运算式:性别=女(学生),该选择运算的结果如表4.2所示。,投影(Projection),投影也是单目运算,该运算从表中选出指定的属性值组成一个新表,记为:A(R)。 其中A是属

4、性名(即列名)表,R是表名。 【例4.2】若在表4.1中对学号、姓名和总学分投影,运算式为: 学号,姓名,总学分(学生) 该运算得到如表4.3所示的新表。,连接(JOIN),连接(JOIN),等值连接:两个表的某些列值相等。 自然连接:要求两个表有共同属性(列),结果表是在参与操作的两个表的共同属性上进行等值连接再去除重复的属性后所得的新表。自然连接运算记为:R S,其中R和S是参与运算的两个表。,连接(JOIN),5.2 SELECT查询语句,SQL查询分析器是一个图形用户界面,用以交互地设计和测试Transact-SQL语句、批处理和脚本。,5.2.1 查询分析器,启动SQL查询分析器可采

5、用两种方法: 在“开始”菜单中,通过Microsoft SQL Server下拉菜单的“查询分析器”命令来打开查询分析器。 在SQL Server企业管理器中通过工具菜单启动。,启动SQL查询分析器并执行相应语句的操作步骤如下。 (1)在“开始”菜单中,单击“程序”级联菜单,选择“Microsoft SQL Server”程序组中的“查询分析器”选项,即可启动SQL查询分析器。或在企业管理器中,单击“工具”,选择“SQL查询分析器”选项,也可启动SQL查询分析器。,(2)在启动SQL查询分析器时,系统首先打开“连接到SQL Server”对话框。使用该对话框可以指定连接到哪个SQL Serve

6、r服务器。如图5-1所示。,图5-1 “连接到SQL Server”对话框,(3)单击SQL Server文本框后面的按钮,可打开“选择服务器”对话框。可以在此对话框中选择要连接到的SQL Server服务器。如图5-2所示。,图5-2 “选择服务器”对话框,(4)在图5-1所示的“连接到SQL Server”对话框中设置正确的验证模式,即可连接到SQL Server服务器,并打开SQL查询分析器。,(5)进入“SQL查询分析器”界面,在工具栏中,单击 master所在的下拉框,即可选择待查询的数据库,例如选择“学生信息数据库”。 (6)在SQL语句录入框中录入SQL语句,然后单击工具栏中的按

7、钮“”,执行该“SELECT”查询语句,即可得到操作结果。,5.2.2 查询语句格式,1基本格式 SELECT ALL | DISTICT , , FROM , , WHERE GROUP BY HAVING ORDER BY ASC | DESC ,2语句说明, SELECT语句的基本格式是由SELECT子句、FROM子句和WHERE子句组成的查询块。 整个SELECT语句的含义是:根据WHERE子句的筛选条件表达式,从FROM子句指定的表中找出满足条件记录,再按SELECT语句中指定的字段次序,筛选出记录中的字段值构造一个显示结果表。, 如果有GROUP子句,则将结果按的值进行分组,该值相

8、等的记录为一个组。 如果GROUP子句带HAVING短语,则只有满足指定条件的组才会显示输出。,5.3 基于单表的查询,5.3.1 查询表中指定的字段 SELECT子句后的各个字段的先后顺序可以与原表中的顺序不一致,但在结果表中,字段是按照SELECT子句后的各个字段的顺序显示。 SELECT student_name, student_sex, address FROM student_info,图5-4 【例5-1】的显示结果,5.3.2 通配符“*”的使用,在SELECT语句中,可以使用通配符“*”显示所有的字段。 SELECT * FROM student_info,图5-5 【例5-

9、2】的显示结果,5.3.3 使用单引号加入字符串,在SELECT语句中,可以在一个字段的前面加上一个单引号字符串,对后面的字段起说明作用。,SELECT student_name,家庭住址, address FROM student_info,图5-6 【例5-3】的显示结果,5.3.4 使用别名,在显示结果时,可以指定以别名代替原来的字段名称,共有3种方法: 采用“字段名称 AS 别名”的格式; 采用“字段名称 别名”的格式; 采用“别名=字段名称”的格式。,SELECT student_name AS 姓名, address AS 家庭住址 FROM student_info 或者 SEL

10、ECT student_name 姓名, address 家庭住址 FROM student_info 或者 SELECT 姓名=student_name, 家庭住址=address FROM student_info 执行结果如图5-7所示。,图5-7 【例5-4】的显示结果,替换查询结果中的数据,要替换查询结果中的数据,则要使用查询中的CASE表达式,格式为: CASE WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 ELSE 表达式 END,【例4.8】查询XS表中计算机系各同学的学号、姓名和总学分,对其总学分按以下规则进行替换: SELECT 学号, 姓名,

11、 等级= CASE WHEN 总学分 IS NULL THEN 尚未选课 WHEN 总学分 =50 and 总学分=52 THEN 合格 ELSE 优秀 END FROM XS WHERE 专业名=计算机,该语句的执行结果如图4.4所示。,替换查询结果中的数据,5.3.5 显示表达式的值,SELECT student_name, year(getdate()-year(born_date) as 年龄 FROM student_info,5.3.6 使用DISTINCT短语消除重复的记录,DISTINCT短语能够从结果表中去掉重复的记录。 SELECT DISTINCT class_no FR

12、OM student_info,5.3.7 使用WHERE子句查询特定的记录,1关系表达式 用关系运算符将两个表达式连接在一起的式子即为关系表达式,关系表达式的返回值为逻辑值(TRUE、 FALSE),关系表达式的格式为: ,在关系表达式字符型数据之间的比较是对字符的ASCII值进行比较。所有字符都有一个ASCII值与之对应。例如,字母“A”、字母“B”、字母“C”,它们的ASCII值分别是65、66、67。 字符串的比较是从左向右依次进行的。 在SQL Server 2000中,日期字符串可以按照“年月日”的格式书写。,表5-1 关系运算符,2逻辑表达式,用逻辑运算符将两个表达式连接在一起的

13、式子即为逻辑表达式,逻辑表达式的返回值为逻辑值(TRUE、FALSE),逻辑表达式的格式为: ,表5-2 逻辑运算符,3特殊表达式,表5-3 特殊运算符,4有关关系运算符的使用,SELECT student_name, address FROM student_info WHERE student_sex=女 SELECT * FROM student_info WHERE born_date 1980-12-31,5有关逻辑运算符的使用,SELECT student_name, tele_number, student_sex, address FROM student_info WHERE

14、 substring(address,1,3)=武汉市 AND student_sex=男,SELECT student_name,student_sex,tele_number FROM student_info WHERE class_no=200001 OR SUBSTRING(tele_number,1,2)=87,SELECT student_name, student_sex, born_date FROM student_info WHERE not (year(getdate()-year(born_date)=23) 或 SELECT student_name, studen

15、t_sex, born_date FROM student_info WHERE (year(getdate()-year(born_date) !=23,6有关特殊运算符的使用,使用“BETWEENAND”的作用是定义表达式在两数之间。 格式为: 表达式 NOT BETWEEN 表达式1 AND 表达式2,SELECT * FROM student_info WHERE (year(getdate()-year(born_date) BETWEEN 18 AND 20,当需要判断一个表达式的值是否为空值时,可使用关键字“IS NULL”。 使用“IS NULL”短语的格式为: 表达式 IS

16、NOT NULL 当使用NOT 关键字,表示不为空。,SELECT student_name, tele_number FROM student_info WHERE comment IS NULL,使用IN关键字可以指定一个值表,值表中指定列出所有可能的值,当表达式与值表中的任意一个匹配时,即返回TRUE,否则返回FALSE。使用IN关键字指定值表的格式为: 表达式 IN (表达式1,n),SELECT student_id, student_name, student_sex FROM student_info WHERE class_no IN (200001,200002) 或者 SELECT student_id, student_name, student_sex FROM student_info WHERE c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号