数据库原理及应用开发技术-SQL.ppt
《数据库原理及应用开发技术-SQL.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用开发技术-SQL.ppt(95页珍藏版)》请在三一办公上搜索。
1、讲义三 关系数据库标准语言SQL,1 SQL简介2 SQL定义语言3 SQL操作语言4 SQL查询语言5 SQL的基本语言元素6 SQL的操作符7 SQL表达式8 SQL条件9 SQL函数10 SQL查询与子查询总结,3.1 SQL简介,Structure Query Language(SQL)的历史1970年,Prof Codd 提出著名的关系数据模型SQL语言由IBM Research Lab首先开发创建System R时使用1979年,关系软件公司(Oracle)首先开发出实用的商业SQL版本SQL 是高级的非过程化编程语言。,3.1 SQL简介,SQL标准SQL-86是第一个SQL标准
2、SQL-89、SQL-92(SQL2)、SQL-99(SQL3)关系型商业数据库遵守的查询语言规范各种通行的数据库系统在其实践过程中都对 SQL 规范作了某些编改和扩充,3.1 SQL简介,SQL的使用直接使用交互式查询工具(MS sql server:Transact-sql)直接键入SQL命令对数据库进行操作由DBMS进行解释嵌入式SQL(Embedded SQL)嵌入到高级编程语言使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力。需要将嵌入的SQL语句转化为宿主语言编译器能处理的语句,3.1 SQL简介,SQL语句分类数据定义语言(Data Definition)crea
3、tealterdrop数据操作语言(Data Manipulation)insertupdatedelete数据查询语言select数据控制语言(Data Control)grantrolerevoke,3.5.1 数据类型,常用的数据类型数据类型描述CHAR(size)存储最长为n个字节的定长字符串VARCHAR(size)存储最长为n个字节的变长字符串NUMERIC(P,S)存储任何类型的数字DATETIME存储日期时间INT长整形SMALLINT短整形FLOAT(n)浮点数,精度至少为n位数字,3.1 SQL简介,数据定义语句格式1 创建表CREATE TABLE(列完整性约束条件,列完
4、整性约束条件,列完整性约束条件,);,3.1 SQL简介,数据定义语句格式2 更改表ALTER TABLE ADD 列完整性约束条件,DROP,MODIFY;3 删除表DROP TABLE;,3.1 SQL简介,数据操作语句格式1 插入操作INSERT INTO(,)VALUES(,);,3.1 SQL简介,数据操作语句格式2 修改操作UPDATE SET=,=WHERE;3 删除操作DELETEFROM WHERE;,3.1 SQL简介,数据查询语句:数据查询是数据库的核心操作SELECT语句的格式为:SELECT ALL|DISTINCT 别名,别名 FROM 别名,别名 WHERE GR
5、OUP BY HAVING ORDER BY ASC|DESC,ASC|DESC;,3.1 SQL简介,数据控制语句:授权SQL语言用GRANT语句向用户授予操作权限,GRANT语句的一般格式为:GRANT,ON TO,WITH GRANT OPTION;,3.1 SQL简介,数据控制语句:收回权限授予的权限用REVOKE语句收回,REVOKE语句的一般格式为:REVOKE,ON FROM,;,3.1 SQL简介,数据控制语句:角色创建角色CREATE ROLE;分配角色:GRANT TO;,3.2 SQL定义语言,表、视图是数据库中的主体。SQL提供数据定义语句对这些主体进行管理 SQL的数
6、据定义语句,3.2.1 表定义,1 表的创建,SQL语言使用CREATE TABLE语句定义表,其一般格式如下:CREATE TABLE(列级完整性约束条件,列级完整性约束条件),);,3.2.1 表定义,1 表的创建,(1)实体完整性例 建立Student表,Sno作为主码。CREATE TABLE Student(Sno CHAR(7)PRIMARY KEY,Sname CHAR(8),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20);,3.2.1 表定义,1 表的创建(1)实体完整性,例 建立SC表,Sno和Cno是主码。CREATE TABLE SC(
7、Sno CHAR(7),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno);,3.2.1 表定义,1 表的创建,(2)参照完整性例 建立SC表,Sno和Cno是主码,且Sno和Cno也是外码,分别引用Student表的Sno列和Course表的Cno列。CREATE TABLE SC(Sno CHAR(7),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(C
8、no);,3.2.1 表定义,1 表的创建,(3)属性值约束非空值限制指定允许的取值范围当往表中插入元组或修改属性的值时,数据库管理系统就检查属性上的限制是否被满足,如果不满足则操作被拒绝执行。,3.2.1 表定义,1 表的创建(3)属性值约束,例 当学生的性别是男时,其名字不能以Ms.打头。CREATE TABLE Student(Sno CHAR(7)PRIMARY KEY,Sname CHAR(8)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),CHECK(Ssex=女 OR Sname NOT LIKE Ms.%);,3.2.1 表
9、定义,2 修改表,一般格式为:ALTER TABLE ADD 完整性约束 DROP MODIFY;,3.2.1 表定义,2 修改表,例 向Student表增加“入学时间”列,其数据类型为日期型。ALTER TABLE Student ADD Scome DATE;不论表中原来是否已有数据,新增加的列一律为空值。例 删除学生姓名不能取空值的约束。ALTER TABLE Student DROP NOT NULL(Sname);,3.2.1 表定义,3、删除表当某个表不再需要时,可以使用DROP TABLE语句删除它。其一般格式为:DROP TABLE 例 删除Student表。DROP TABL
10、E Student;,3.2.2 试图定义,1、视图的作用(1)视图能够简化用户的操作(2)视图可以减少冗余数据(3)视图对重构数据库提供了一定程度的逻辑独立性(4)视图能够对机密数据提供安全保护,3.2.2 试图定义,2、视图创建SQL语言用CREATE VIEW命令建立视图,其一般格式为:CREATE VIEW(,)AS WITH CHECK OPTION;,3.2.2 试图定义,2 试图创建例 建立计算机系学生的视图。CREATE VIEW Student_CSASSELECT*FROM StudentWHERE Sdept=计算机;,3.2.2 试图定义,2 试图创建例 建立英语课(1
11、156)成绩单的视图。CREATE VIEW English_Grade(Sno,Sname,Grade)ASSELECT Student.Sno,Sname,GradeFROM Student JOIN SC ON Student.Sno=SC.Sno AND SC.Cno=1156;,3.2.2 试图定义,2 试图创建例 建立英语课的成绩在80分以上的学生的视图。CREATE VIEW English_Grade_80ASSELECT Sno,Sname,GradeFROM English_GradeWHERE Grade=80;,3.2.2 试图定义,3 删除视图当不再需要一个视图时,可
12、以删除它,语句格式为:DROP VIEW 例 删除视图Student_CSDROP VIEW Student_CS;,3.3 SQL操作语言,1 插入操作2 修改操作3 删除操作,3.3.1 插入操作,1、插入操作插入语句的格式是:INSERTINTO(,)VALUES(,);,3.3.1 插入操作,例 将学生王林的信息插入到Student表中。INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage)VALUES(2000012,王林,男,计算机,19);INTO子句指定Student表和要赋值的列,VALUES子句对元组的各列赋值。,3.3.1 插入操作,
13、例 在表Course中增加课程离散数学的信息。INSERTINTO Course(Cno,Cname,Cpno,Ccredit)VALUES(1136,离散数学,NULL,4);符号NULL的含义是赋予该列的值是空值。,3.3.2 修改操作,2、修改操作修改操作又称为更新操作,语句的一般格式是:UPDATE SET=,=WHERE;,3.3.2 修改操作,例 将学号为2000012的学生的年龄改为18岁。UPDATE StudentSET Sage=18WHERE Sno=2000012;例6 将所有学生的年龄增加1岁。UPDATE StudentSET Sage=Sage+1;,3.3.3
14、删除操作,3、删除操作 语句的一般格式为:DELETE FROM WHERE;,3.3.3 删除操作,例 删除学号为2000012的学生记录。DELETEFROM StudentWHERE Sno=2000012;例 删除所有的学生选课记录。DELETEFROM SC;,3.4 SQL查询语音,1.查询基本结构概述2.查询子句概述3.SELECT 列表4.FROM子句5.WHERE子句,3.4.1 查询基本结构概述,查询基本结构概述:SELECT 列表:指定列FROM 指定表WHERE指定行语义:Select 子句中的属性列表,对上述结果作投影()操作。From 子句:对指定关系,作笛卡儿积(
15、)Where 子句:进行选择()运算,找出符合条件的元组。,3.4.2 查询子句概述,SELECT 子句指定您要检索的列。FROM 子句指定从中请求列的表。在所有从表中检索数据的查询中都需要该子句。ON 子句指定 FROM 子句中的表将如何进行连接。该子句只用于多表查询。WHERE 子句指定表中您要查看的行。GROUP BY 子句用于集合数据。HAVING 子句指定要在其上收集集合数据的行。ORDER BY 子句对结果集中的行进行排序。,3.4.3 SELECT 列表,1从表中选择所有列SELECT distinct*FROM table-expression2从表中选择特定的列SELECT
16、dept_id,dept_name FROM department3重命名查询结果中的列SELECTcolumn-nameASaliasSELECTcolumn-namealias4查询结果中显示字符串select the firstname is as“”,first_name from employees;5计算 SELECT 列表中的值SELECT first_name,salary-10 AS salary after tax FROM employees;,3.4.4 FROM子句,直接使用表名FROM table_name使用相关名您可以赋予表名一个相关名以减少需要键入的字符。您可
17、以在 FROM 子句中指派相关名,方法是在表名之后键入该相关名,如下所示:SELECT d.dept_id,d.dept_name FROM Department dFROM 子句包括链接两个或多个表的表名,3.4.5 WHERE 子句,比较WHERE salary 50000 范围WHERE salary BETWEEN 40000 AND 60000 列表WHERE station IN(beijing,shanghai,jinan)字符匹配 WHERE phone LIKE 415%未知值WHERE first_name is not NULL组合WHERE salary 50000 A
18、ND first_name like A%,3.5 SQL的基本语言元素,数据类型数值常量数据格式化空值,3.5.1 数据类型,数据类型自动转换规则INSERTUPDATE语句中,数据值按照字段的类型进行转换SELECT语句中,字段值按照定义的变量类型转换比较字符数值与数字数值时,将字符数值转换为数字比较字符数值与日期数值时,将字符数值转换为日期赋值语句中,一般将等号右边的变量转换为左边的数据类型,3.5.1 数据类型,字符自动转换SELECT salary+10 FROM employees;SELECT last_name FROM employees WHERE employee_id=
19、200;SELECT last_name FROM employees WHERE hiredate=1982-01-23;,3.5.2 数值常量,字符常量HelloORACLE09-MAR-98数字常量25+6.340.525e-03-1,3.5.3 数据格式化,字符串格式化CAST(expression AS data_type)CONVERT(data_type(length),expression,style)日期格式化字符串转日期 Select cast(2009-01-01 as datetime)日期格式转换 Select CONVERT(varchar(100),GETDATE
20、(),0),3.5.4 NULL(空),Null:表明记录的字段中不包含任何值(空)目前将等同于Null(ORACLE)条件中的NULLIf A is:Condition Evaluates to:10 a IS NULL FALSE10 a IS NOT NULL TRUENULLa IS NULL TRUENULL a IS NOT NULL FALSE10 a=NULL UNKNOWN10 a!=NULL UNKNOWN,3.6 SQL的操作符,操作符介绍一元操作符二元操作符多元操作符算术运算符连接运算符组合操作符,3.6.1 算数运算符,运算符举例+-SELECT*FROM WHERE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 开发 技术 SQL
链接地址:https://www.31ppt.com/p-6050180.html