下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SQL是Structured Quevy Language构化查询语言)的缩写。SQL是专为数据 库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出 做什么”的命令,怎么做”是不用使用者考虑的。SQL功能强大、简单易 学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持 SQL。#1二、SQL数据库数据体系结构SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型 术语不同。在SQL中,关系模式(模式)称为基本表"(basetable)存储模式(内模 式)称为存储文件”(storedfile)子模式(外模式)称为视图"
2、(view)元组称为行”(row)属性称为歹(column)名称对称如八001000092人:#1三、SQL语言的组成在正式学习SQL语言之前,首先让我们对 SQL语言有一个基本认识,介绍 一下SQL语言的组成:1 .一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。2 .一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据 项。3 .一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。4 .一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物
3、理文件对应。5 .用户可以用SQL®句对视图和基本表进行查询等操作。在用户角度来 看,视图和基本表是一样的,没有区别,都是关系(表格 )。用户可以是应用程序,也可以是终端用户。SQL®句可嵌入在宿主语言的程序中使用,宿主语言有 FORTRAN COBOL PASCAL PL/I, C和Ada语言等。 SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。#1 四、对数据库进行操作SQL包括了所有对数据库白操作,主要是由4个部分组成:1.数据定义:这一部分又称为“SQLDDL定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引 4 部分。 2.数据操纵:这一部分又
4、称为“SQLDML其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。3 .数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。4 .嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的 规则。下面我们将分别介绍:#2(一)数据定义SQL数据定义功能包括定义数据库、基本表、索引和视图。首先,让我们了解一下SQL所提供的基本数据类型:(如八00100009")1 . 数据库的建立与删除(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:CREATEDATABASE<g库名 > 其
5、它参数其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。其它参数因具体数据库实现系统不同而异。例:要建立项目管理数据库(xmmanage),其语句应为:CREATEDATABASExmmanage(2)数据库的删除:将数据库及其全部内容从系统中删除。其语句格式为:DROPDATABASEg库名例:删除项目管理数据库(xmmanage),其语句应为:DROPDATABASExmmanage2 .基本表的定义及变更本身独立存在的表称为基本表,在 SQL语言中一个关系唯一对应一个基本 表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除
6、与修改。(1)基本表的定义:基本表是非导出关系,其定义涉及表名、列名及数据类型等,其语句格式为:CREATETABLE哪据库名 . 表名,(列名 数据类型缺省值NOTNULL / NUL,L列名 数据类型缺省值NOTNULL/ NULL ,UNIQUE列名,列名万,PRIMARYKEY(名),FOREIGNKEY(名,歹U名)REFERENCEg 例名,歹U 名 ),CHECKS牛)其它参数)其中,数据库名 .指出将新建立的表存放于该数据库中;新建的表由两部分组成:其一为表和一组列名,其二是实际存放的数据(即可在定义表的同时,直接存放数据到表中 );列名为用户自定义的易于理解的名称,列名中不能
7、使用空格;数据类型为上面所介绍的几种标准数据类型;NOTNULL/NULL指出该列是否允许存放空值,SQL语言支持空值的概念,所谓空值是 “不知道 ”或 “无意义 ”的值,值得注意的是数据“0和空格都不是”空值,系统一般默认允许为空值,所以当不允许为空值时,必须明确使用 NOT NULL;,UNIQU日将列按照其规定的顺序进行排列,如不指定排列顺序,则按 列的定义顺序排列;PRIMARY KEY用于指定表的主键(即关系中白主属性), 实体完整性约束条件规定:主键必须是唯一的,非空的;,FOREIGNKEY(名,歹U名)REFERENCgg 例名,歹U 名万是用于指定外键参照完整性约束条件,FO
8、REIGNKEY定相关列为外键,其参照对象为另外一个表的指定列,即使用REFERENCE入的外表中的列,当不指定外表列名时,系统将默认其列名与参照键的列名相同,要注意的 是:使用外键时必须使用参照,另外数据的外键参照完整性约束条件规定:外 键的值要么与相对应的主键相同,要么为空值(具体由实现系统不同而异),CHECK用于使用指定条件对存入表中的数据进行检查,以确定其合法 性,提高数据的安全性。例:要建立一个学生情况表(student)CREATE TABLE student 名例如:将上面建立的表都删除DROP TABLE studen, t subject, score(3)基本表的修改:在
9、基本表建立并使用一段时间后,可能需要根据实际要 求对基本表的结构进行修改,即增加新的属性或删除属性。增加属性的语句格式为:ALTER TABLE数据库名 表名ADD(列名 数据类型缺省值NOT NULL / NUL L, 列名 数据类型缺省值 NOT NULL / NULL ,UNIQUE列名,歹U名万,PRIMARY KEY(名),FOREIGN KEY名,歹U名)REFERENCED (列名,歹U名万,CHECKS)其它参数)例如:在基本表student中力口入歹!J stborn出生日期,数据类型为 DATE且不能为空值ALTER TABLE student ADD (stborn DA
10、TE NOT NULL)删除属性的语句格式为:ALTER TABL日数据库名 .表名DROP( 列名 数据类型缺省值 NOT NULL / NUL L,列名 数据类型缺省值NOT NULL / NUL L )例如:将基本表student中的列st_age删除ALTER TABLE student DROP (st_age)3 .视图定义与删除在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的表,是从现有基本表中抽取若干子集组成用户的 “专用表 ” 。这种构造方式必须使用SQL中的SELEC语句来实现。在定义一个视图时,只是把其 定义存放在系统的数据中,而并不直接存储
11、视图对应的数据,直到用户使用视图时才去求得对应的数据。(1)视图的定义:定义视图可以使用 CREATE VIEW®句实现,其语句格式为:CREATE VIEW!图名 AS SELECT句从一个基本表中导出视图:例:从基本表student 中导出只包括女学生情况的视图CREATE VIEW WOMANVIEW A S勺定义与删除索引属于物理存储概念,而不是逻辑的概念。在SQL中抛弃了索引概念,直接使用主键概念。值得一提的是,有些关系DBMS 同时包括索引机制和主键机制,这里我们推荐使用主键机制,因为它对系统资源占用较低且效率较高。(1)索引的定义:索引是建立在基本表之上的,其语句格式为
12、:CREATE UNIQUEa INDEX索引名 ON数据库名表名(列名ASC/DESC ,列名:ASC/DESC )这里,保留字UNIQUE表示基本表中的索引值不允许重复,若缺省则表示 索引值在表中允许重复;DESC!示按索引键降序排列,若缺省或 ASC表示升序 排列。例:对基本表student中的st_no和st_age建立索引,分别为升序与降序, 且索引值不允许重复CREATE UNIQUE INDEX STINDEXN 查询例:找出所有学生的的选课情况SELECT st_n,o su_noFROM score例:找出所有学生的情况SELECT*FROM student“*为通配符,表示
13、查找FROM中所指出关系的所有属性的值。2 .条件查询条件查询即带有 WHER守句的查询,所要查i的对象必须满足 WHERE? 句给出的条件。例:找出任何一门课成绩在70 以上的学生情况、课号及分数SELECT UNIQU,EFROM student, scoreWHERE >=70 AND =这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCTIU会去掉重复行。另外逻辑运算符的优先顺序为NOT> AND OR。例:找出课程号为 c02 的,考试成绩不及格的学生SELECT st_noFROM scoreWHERE su_no= c02 AND score&l
14、t;603 .排序查询排序查询是指将查询结果按指定属性的升序 (ASC或降序(DESC)例,由 ORDERBYF句指明。例:查找不及格的课程,并将结果按课程号从大到小排列SELECT UNIQUE su_noFROM scoreWHERE score<60ORDER BY su_no DESC4 .嵌套查询嵌套查询是指 WHER守句中又包含SELECTS,它用于较复杂的跨多个 基本表查询的情况。例:查找课程编号为C03且课程成绩在80分以上的学生的学号、姓名SELECT st_n,o st_nameFROM studentWHERE stno IN (SELECT st_noFROM s
15、coreWHERE su_no=c03 AND score>80 )这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中, IN 是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。5 .计算查询计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:COUNT(*计算元组的个数COUNT列名)对某一列中的值计算个数SUM(列名)求某一列值的总和(此列值是数值型)AVG例名)求某一歹U值的平均值(此列值是数值型)MAX(列名)求某一列值中
16、的最大值MIN(列名)求某一列值中的最小值例:求男学生的总人数和平均年龄SELECT COUNT,(*)AVG(st_age)FROM studentWHERE st_sex=|'例:统计选修了课程的学生的人数SELECT COUNT(DISTINCT st_no)FROM score注意:这里一定要加入 DISTINCT因为有的学生可能选修了多门课程,但 统计时只能按1人统计,所以要使用DISTINCT8行过滤。#2 (三 )数据更新数据更新包括数据插入、删除和修改操作。它们分别由INSER帮句,DELETED句及UPDATED句完成。这些操作都可在任何基本表上进行,但在视 图上有所
17、限制。其中,当视图是由单个基本表导出时,可进行插入和修改操作,但不能进行删除操作;当视图是从多个基本表中导出时,上述三种操作都不能进行。1. 数据插入将数据插入SQL的基本表有两种方式:一种是单元组的插入,另一种是多元组的插入。单元组的插入:向基本表 score中插入一个成绩元组(100002, c02, 95),可 使用以下语句:INSERT INTO score(st_n,osu_no, score) VALUES( 1000,02 c0,2 95)由此,可以给出单元组的插入语句格式:INSERT INTO1名(列名 1 ,列名 2)VALUES(值 1 ,列值 2)其中,列名序列为要插入
18、值的列名集合,列值序列为要插入的对应值。若插入的是一个表的全部列值,则列名可以省略不写如上面的 (st_no, su_no, score)可以省去;若插入的是表的部分列值,则必须列出相应列名,此时,该关 系中未列出的列名取空值。多元组的插入:这是一种把 SELEC语句查询结果插入到某个已知的基本表中的方法。例如:需要在表score 中求出每个学生的平均成绩,并保留在某个表中。此时可以先创建一个新的基本表 stu_avggrade,再用INSERTS句把表score中求得 的每一个学生的平均成绩(用SELECT:得)插入至stu_avggrade中。CREATE TABLE stu_avggra
19、de(st_no CHAR(10) NOT NUL L 据删除SQL的删除操作是指从基本表中删除满足 WHERE条件表达式 >的记录。如 果没有WHER可句,则删除表中全部记录,但表结构依然存在。其语句格式 为:DELETE FROM1名WHER磔件表达式下面举例说明:单元组的删除:把学号为100002 的学生从表student 中删除,可用以下语句:DELETE FROM studentWHERE st_no= 1000据修改02 修改语句是按SET子句中的表达式,在指定表中修改满足条件表达式的记 录的相应列值。其语句格式如下:UPDATES名SETJ名二列改变值WHER磔件表达式例:
20、把 c02 的课程名改为英语,可以用下列语句:UPDATE subjectSET su_subject或语'WHERE su_no= c02 例:将课程成绩达到 70分的学生成绩,再提高 10%UPDATE scoreSET score=*scoreWHERE score>=7010 / 15SQL的删除语句和修改语句中的 WHERE?句用法与SELECT WHERE?句 用法相同。数据的删除和修改操作,实际上要先做 SELEC查询操作,然后再把 找到的元组删除或修改。#2 (四 )数据控制由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,
21、SQL®言提供了一系列的数据控制功能。其中, 主要包括安全性控制、完整性控制、事务控制和并发控制。1 .xx 控制数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库 中的数据。即限定不同用户操作不同的数据对象的权限。存取权控制包括权力的授与、检查和撤消。权力授与和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有 权在相应数据上进行所要求的操作。(1)权力授与:权力授与有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:|CONNECT
22、|GRANT|RESOURCE|TO户名IDENTIFED BYI令|DBA |其中,CONNEC俵示数据库管理员允许指定的用户具有连接到数据库的权 力,这种授权是针对新用户;RESOURC表示允许用户建立自己的新关系模式, 用户获得CONNEC权力后,必'须获得RESOURCE力才能创建自己的新表; DBA表示数据库管理员将自己的特权授与指定的用户。若要同时授与某用户上 述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定。另外,具有CONNECT口 RESOURC授权的用户可以建立自己的表,并在自 己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其 他用
23、户的关系,除非能获得其他用户转授给他的相应权力。例:若允许用户SSE11接到数据库并可以建立他自己的关系,则可通过如 下命令授与权力: GRANT CONNECT TO SSE INENTIFIED BY BD1928GRANT RESOURCE TO SSE用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的 命令形式,其命令格式如下:|SELECT |INSERT |DELETE |GRANT|UPDATE(U名 1,列名 2)|ON康名 |TO| 用户名 | WITH GRANT OPTION |ALTER | |视图名| |PUBLIC|NDEX |ALL |若对某一用户同
24、时授与多种操作权力,则操作命令符号可用 “, ”相隔。PUBLIC表示将权力授与数据库的所有用户,使用时要注意:任选项WITHGRANTOPTION!示接到授权的用户,具有将其所得到的同时 权力再转授给其他用户权力。例:如果将表student 的查询权授与所有用户,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若将表subject的插入及修改权力授与用户 SS中使得他具有将这种权 力转授他人的权力,则可使用以下命令:GRANT INSER,TUPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION 这里
25、,UPDAT诟面跟su_subject是指出其所能修改的列。(2)权力回收:权力回收是指回收指定用户原已授与的某些权力。与权力授与命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。DBA专用的权力回收命令格式为:|CONNECT |REVOKE|RESOURCE|FROM 户名|DBA |用户可用的权力回收命令格式为:|SELECT |INSERT |DELETE |REVOKE|UPDATE(名 1 ,列名 2)|ON|表名 |FROM | 用户名 |ALTER | |视图名 | |PUBLIC|INDEX |ALL |例:回收用户SSESDBA权力:REVOKE DBA FRO
26、M SSE2 .完整性控制数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过 CREATETABLE句中的CHECK子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL前者用于防止重复值进入数据库,后者用于防止 空值。3 .事务控制事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合 ),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION始,以COMMIT或ROLLBAC篦束。SQL提供了事务提交和事务撤消两种命令:(1)事务提交:事务提交的命令为:COMMIT WORK事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。(2)事务撤消:事务撤消的命令是:ROLLBACK WORK事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要 “回滚 ”到相应事务开始时的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年南昌市西湖区事业单位人员招聘考试试题及答案详解
- 2026年广安市广安区公务员人员招聘笔试备考试题及答案详解
- 2025年六盘水市六枝特区公务员人员招聘考试试题及答案详解
- 2026年乌鲁木齐市水磨沟区公务员人员招聘笔试备考试题及答案详解
- 2026年邯郸市丛台区公务员人员招聘笔试参考题库及答案详解
- 2026年新疆维吾尔自治区乌鲁木齐市公务员人员招聘笔试参考试题及答案详解
- 2026年广元市元坝区公务员人员招聘笔试备考试题及答案详解
- 2026年嘉兴市秀城区事业单位人员招聘笔试备考试题及答案详解
- 2025年吴忠市红寺堡区公务员人员招聘考试试题及答案详解
- 2026年安徽省宣城市公务员人员招聘笔试备考题库及答案详解
- 2026中国中医药国际化发展现状及市场准入壁垒分析报告
- 2026年财政部高层财会人才中青年人才选拔笔试热及完整(附答案)
- 2026年高考全国1卷语文高考试题(原卷版)
- 消防报警主机移位施工方案及流程
- 2025年河南三支一扶(6月14日)真题(答案)
- GB/T 44693.3-2026危险化学品企业工艺平稳性第3 部分:标准操作程序编制与使用规范
- 妇产科妊娠糖尿病管理方案
- 2026中车株洲电力机车研究所有限公司春季全球校园招聘考试参考题库及答案解析
- 车速重新鉴定申请书
- 2024-2025学年新疆伊犁州伊宁三中高一(上)第一次月考数学试卷(含答案)
- 心包积液护理疾病查房
评论
0/150
提交评论