关系数据库语言_第1页
关系数据库语言_第2页
关系数据库语言_第3页
关系数据库语言_第4页
关系数据库语言_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关系数据库语言 SQL,关系数据库语言 SQL,结构化查询语言 SQL Structured Query Language SQL已不限于查询,还包括数据操纵、定义、控制和管理等功能。它是一个综合的、通用的、功能极强的关系数据库语言。 国际标准化组织(ISO)89年公布了SQL语言的国际标准(SQL89)。 我国也制定了类似的标准(SQL89) 实际系统大都对SQL语言作了扩充。,SQL语言的特点,非过程化 SQL语言是非过程化语言(第四代语言)。 一体化 SQL集DDL、DML、DCL为一体。用SQL语言可实现DB生命周期的全部活动。 因实体、联系均用关系来表示,这种数据结构的单一性也带来了

2、DB语言的统一性。 两种使用方式,统一的语法结构。 联机交互使用方式。 嵌入某种高级程序设计语言。,表格实例之一,选课(学号,课程号,成绩) sc(sno , cno , grade),课程(课程号,课程名,学分,上课时间,名额) course(cno , cname , credit,ctime,quota),系(系号,系名,电话) dep(dno , dname , tel ),学生 (学号,姓名,性别,出生年月,系号) student(sno , sname , sex , birthday , dno),表格实例之二,emp ( eno,ename,sex , age,sal,mgr,

3、dno ) 职工 职工号 姓名 性别 年龄 工资 领导 部门号 其中,mge为职工的上一级领导(即上一级领导的职工号),建立表对象,CREATE TABLE student ( sno NUMBER(6) , sname CHAR(6) , sex CHAR(2) , birthday DATE , dno CHAR(3) ) ; insert into student values(980001, “李力”, “男”, “17-12月-1980”,“d01”);,INSERT INTO emp VALUES(e01, 李宏,男, 32 ,580.0,e100,d02) ; INSERT IN

4、TO emp(eno,ename,dno) VALUES(eo1,王兰 ,d01); UPDATE emp SET sal=sal*1.1 WHERE dno=d01 ; DELETE FROM emp WHERE dno=d01 ;,DML 语句(DB写语句),Select 语句,SELECT * FROM student WHERE sex = 男 AND dno = D01 ; 查询的结果仍可看成是一个关系,它由查出的记录组成。,查询语句中的投影操作,SELECT sno ,sname ,dno FROM student WHERE sex男 ; 该语句输出如下: sno sname d

5、no 980001 张自立 d01 970020 李春生 d02,查询语句中的选择操作,例:查询79、80两年出生的男同学的名单: SELECT sname,birthday FROM student WHERE sex=男 AND birthday BETWEEN 01-1月-79 AND 31-12月-80; 查询1980年以前出生的学生: SELECT * FROM student WHERE birthday ,=, 其他运算符:IN,NOT IN 判断是否是集合的成员。 BETWEEN AND 判断列值是否满足指定的区间 LIKE 匹配模式 _ % IS NOT NULL 测试空值,

6、查询语句中的选择操作,在查询条件中,可以使用集合运算符 SELECT dname,tel FROM dep WHERE dname IN(计算机系,外语系,中文系) ; 该表达式等同于: dname=计算机系 OR dname=外语系 OR dname=中文系 集合运算符NOT IN是IN的反义词, WHERE dname NOT IN(计算机系,外语系,中文系) ;,查询语句中的选择操作,空值 查询学号为980001的同学正在学习的课程: SELECT cno FROM sc WHERE sno=980001 AND grade IS NULL; 模糊匹配。 _ 表示任意一个字符 表示任意个

7、字符(包括0个)。 例如,查询姓王的同学信息; SELECT * FROM student WHERE sname LIKE 王 ;,查询的排序输出,查询学生c01课程的成绩,并按成绩由高到低的顺序输出: SELECT sno,grade (输出学号和成绩) FROM sc WHERE cno=c01and grade IS NOT NULL ORDER BY grade DESC ; 排序输出的隐含顺序是升序(ASC),如果要求按列值的降序输出,需在列名后指定DESC。,(5) 多表查询与连接操作(joins),笛卡尔积操作将结果关系扩展,如果笛卡尔积的两关系元组数分别为m和n,那么结果关系

8、的元组数为mn,而在处理中往往只是需要其中部分元组。 连接(Join)操作是从笛卡尔积中选择满足条件的元组。最常用的条件是等值连接,Select * from student,dep where student.dno=dep.dno,dno,student,dep,多表查询与连接操作,表之间的连接操作(通常是自然连接)体现在WHERE子句中的连接条件。 例:查询计算机系的学生信息 SELECT sno,sname,sex FROM student,dep WHERE student.dno=dep.dno AND dname=计算机系;,查询物理课不及格的学生名单(输出学生的学号、姓名及成绩): SELECT student.sno,s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论