关系数据库标准语言SQL概述
- 格式:pptx
- 大小:405.61 KB
- 文档页数:99
关系数据库标准语言S Q L1、SQL是结构化的查询语言,是一种高度非过程化的语言。
查询是其核心。
注意:数据定义一般是对数据表操作,数据操纵一般是对表中的记录进行操作2、查询功能格式:SELE字段名……&&说明要查询的数据FROM数据表名(有联系的多个数据表名,有公共域)&&数据来源哪些表ON 联接的字段名WHERE连接条件……AND 条件……&&说明查询条件GROUP BY 分组(字段名)HAVING 分组条件&&查询结果分组ORDER BY 排序字段&&查询结果排序成绩管理数据库有以下三个数据库表:学生(学号C,姓名C,性别C,年龄N,系C……)选课(学号C,课程号C,成绩N……)课程(课程号C,课程名C……)1基于单个数据表,SELE…FROM …WHERE…(类似VF命令LIST FOR 条件)SELE 后面接要查询输出的字段名,多个用逗号分隔,全部可以用* FROM 后面是查询的数据表(单个数据表)WHERE 后面跟查询条件教材P130SELE 工资FROM 职工(从职工表中查询所有职工的“工资”字段值)SELE * FROM 职工(从职工表中查询所有职工的元组,*表示所有属性)SELE * FROM 职工WHERE 工资>1230(从职工表中查询工资大于1230的元组)注意:1、WHERE 后面的条件可以是任意复杂的条件表达式2、DISTINCT 短语消除结果中重复值(注意)列:查询成绩大于等于60分的学生的学号、课程号、成绩(学号,课程号,成绩都在选课表中)SELE 学号,课程号,成绩FROM 选课WHERE 成绩>=60相当于VF命令:LIST FIELDS 学号,课程号,成绩FOR 成绩>=60查询有考试成绩的学生的学号SELE DIST 学号FROM 选课(DIST 去掉重复)列:在学生表中查询2系年龄小于25的女同学的学号,姓名在学生表中查询2系或6系年龄小于25的男同学的学号,姓名分析条件:性别='女' AND 年龄<25 AND (系='6' OR 系='2')等于条件:性别='男' AND 年龄<25 AND 系='6' OR性别='男' AND 年龄<25 AND 系='2'-----------------------------------------------------------------------2)基于多个数据表(两个或三个),这些数据表肯定有联系(有公用字段),而且查询输出的字段可能在几个(两个或以上有联系)数据表中。
关系数据库查询语⾔SQL授课⽅式:以下所有的例⼦都在sql server 中进⾏现场调试其执⾏结果,或者让学⽣上讲台练习,让学⽣体会其具体的含义第四章关系数据库查询语⾔SQL(8学时)第1节关系数据库标准语⾔SQL ——查询部分⼀、SQL概述1.SQL标准SQL(Structured Query Language):结构化数据库查询语⾔。
SQL作为⼀个ANSI标准,现在最新的标准是SQL99!是介于关系代数和关系演算之间的结构化查询语⾔,功能包括数据查询(Data Query )、数据操纵(Data Manipulation)、数据定义(Data Definition)、数据控制(Data Control)2.SQL的特点1)综合统⼀SQL语⾔集数据定义语⾔DDL、数据操纵语⾔DML、数据控制语⾔DCL功能于⼀体,语⾔风格统⼀。
可独⽴完成数据库⽣命周期中的全部活动,包括:定义关系模式、建⽴数据库、插⼊数据、查询、更新、维护、数据库重构、数据库安全性控制等⼀系列操作要求,为数据库应⽤系统开发提供了良好的环境。
由于关系模型中实体间连续军⽤关系表⽰,这种数据结构单⼀性带来了数据操作的统⼀,查找、插⼊、删除、修改等每⼀种操作只需要⼀种操作符,从⽽克服了⾮关系系统由于信息表⽰⽅式多样性带来的操作复杂性。
2)⾼度⾮过程化SQL语⾔只要提出“做什么”,⽆须指明“怎么做”!!⽤户⽆须了解存取路径,存取路径的选择及SQL语句的操作过程由系统⾃动完成。
减轻了⽤户的负担,提⾼了数据独⽴性。
3)⾯向集合的操作⽅式Sql 语⾔采⽤集合操作⽅式,不仅操作对象、查询结果可以是元组集合,⽽且⼀次插⼊、删除、更新操作的对象可是元组的集合。
4)以同⼀种语法结构提供两种使⽤⽅式既是⾃含式语⾔,⼜是嵌⼊式语⾔。
⾃含式语⾔:能独⽴的⽤于联机交互的使⽤⽅式,⽤户可以在终端键盘上直接键⼊SQL 命令对数据库进⾏操作。
在SQL SERVER 2000种现场演⽰SQL语句的操作。
第三章关系数据库标准查询语言SQL●3.1 SQL概述●3.2数据定义语言(DDL)●3.3 SQL的数据查询(DML)●3.4 SQL的数据更新(DML)●3.5视图●3.6数据控制语言(DCL)●3.7嵌入式SQL语言●3.8 存储过程*(T-SQL)3.1 SQL概述●SQL(Standard/Structured Query Language)是关系数据库标准●1986年10月,美国国家标准局(American National Standard Institute ANSI)公布第一个标准ANSI X3.135-1986,国际标准化组织(International Organization for Standardization ISO)也通过这一标准称SQL-86●1989年ANSI再次公布标准ANSI X3.135-1989 ,ISO 相应SQL-89●1999年,ISO公布SQL-1999(SQL99,SQL3)●2003年,ISO公布SQL-20033.1.1 SQL语言的组成●数据定义(DDL Data Definition/Description Language )–定义数据库的逻辑结构,包括基本表、视图、索引等●数据操纵(DML Data Manipulation Language)–包括查询和更新,更新又包含插入、删除和修改●数据控制(DCL Data Control Language )–授权、完整性规则描述、事务控制等●嵌入式SQL(ESQL)–在宿主语言中使用SQL的规则3.1.2 SQL语言的特点●综合统一:集DDL、DML、DCL于一体,语言风格统一●面向集合的操作方式:操作对象、查询结果都可以是元组的集合●高度非过程化:存取路进透明。
●以统一的语法结构提供两种使用方式:自含式、嵌入式●语言简洁,易学易用,主要共使用11个关键词–DDL:create drop alter–DML:select insert delete update–DCL:grant revoke commit rollback3.2数据定义语言(DDL)3.2.1定义、删除与修改基本表定义基本表语法CREATE TABLE <表名> (<列名><数据类型>[列级约束条件][,<列名><数据类型>[列级约束条件]... ...][,<表级完整性约束条件>])例:CREATE TABLE S(S#CHAR(5)NOT NULL UNIQUE,SN CHAR(20),SA INT,SD CHAR(3),PRIMARY KEY (S#));修改表语法ALTER TABLE <表名>[ADD <新列名><数据类型>[列级约束条件]] [DROP <完整性约束条件>][MODIFY <列名><数据类型>];例:ALTER TABLE S ADD SCome DATE;ALTER TABLE S MODIFY SA SMALLINT; ALTER TABLE S DROP UNIQUE(S#);删除表语法DROP TABLE <表名>例:DROP TABLE S3.2.2建立和删除索引索引的建立语法CREATE [UNIQUE][CLUSTER] INDEX <索引名>ON <表名>(<列名1>[<次序>][,<列名2><次序>... ...])<次序>可以是ACS和DESC例:CREATE UNIQUE INDEX S_S# ON S(S#)CREATE UNIQUE INDEX C_C# ON C(C#)CREATE UNIQUE INDEX SC_S#_C# ON SC(S#ASC,C# DESC)索引的删除语法DROP INDEX [<表名>.]<索引名>DROP INDEX [S.]S_S#3.3 SQL的数据查询(DML)●关系代数表达式∏A1,A2,.....An(δF(R1×R2×... ...×R n)) ●SQL 语句SELECT A1,A2,......A nFROM R1,R2,... ...R mWHERE F详细语法SELECT [ALL|DISTINCT] {*|<目标表达式1> [,<目标表达式2> ... ...]}FROM <表名或视图名1> [,<表名或视图名2>]... ...[WHERE <条件表达式>][GROUP BY <列名表达式1>[,<列名表达式2>]][HAVING <条件表达式> ][ORDER BY <列名表达式1> [ASC|DESC]], <列名表达式2> [ASC|DESC]]执行过程1)先按WHERE子句条件从FROM子句指定的表/视图中找出满足条件的元组(选择);2)再按SELECT子句中的目标表达式选择出元组中的属性,形成结果表(投影);3)如有GROUP子句,则将结果按<列名表达式>的值分组,该<列名表达式>值相等的元组为一个组,通常会在每组中使用聚合函数。