资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,关系数据库标准语言,SQL / 1,SQL,语言初步,数据查询语句,数据库更新语句,数据定义语句,数据控制语句,什麽是,SQL,?,SQL,:,Structured query language,功能:,查询、操纵、定义、控制,特点:,1,、一体化;,2,、两种使用方式,统一的语法结构;,方式一、联机交互使用方式;,方式二、嵌入式。,3,、高度非过程化;,4,、语言简洁,易学易用。,SQL,支持关系数据库三级模式,基本表:,独立存在的表。每个基表对应一个存储文件,一个表可带若干索引。,存储文件,+,索引,=,内模式,视图:,是一个虚表。数据库中仅存视图定义,不存对应的数据 。,SQL,的三级模式,外模式,模式,内模式,Storefile1,Storefile2,Storefile3,Storefile4,Basetable1,Basetable2,Basetable3,Basetable4,View1,View2,SQL,用户,SQL,命令,的种类,DDL,,,数据定义语言,DML,,,数据操纵语言,DQL,,,数据查询语言,DCL,,,数据控制语言,数据管理命令,事务性控制命令,DDL,,,数据定义语言,用户创建或重新构建数据库的语言,CREATE INDEX,ALTER INDEX,DROP INDEX,CREATE TABLE,ALTER TABLE,DROP TABLE,DML,,,数据操纵语言,用于在关系数据库对象中操纵数据,INSERT,UPDATE,DELETE,DQL,,,数据查询语言,对数据库中的信息寻找和定位,SELECT,DCL,,,数据控制语言,用于创建与用户访问相关的对象,也控制着用户的权限分配,ALTER PASSWORD,改变口令,GRANT,为用户授予特权,REVOKE,从用户处收回特权,数据管理命令,审计和分析对数据库的操作,并可分析系统的执行过程,START AUDIT,STOP AUDIT,事务性控制命令,用户管理数据库的事务命令,COMMIT,用于保护数据库的事务,ROLLBACK,用于撤消数据库的事务,SAVEPOINT,创建一组事务中的撤消点,SET TRANSACTION,给事务命名,数据库中的表结构,数据库中的表,数据和基本数据类型,数据库中的表,表:字段、记录、列、主键,customer_tbl,Order_tbl,Products_tbl,Prod_id,Prod_desc,cost,112candy1.35,113plastic1.04,Products_tbl,记录,列(字段),主键,数据和基本数据类型,数据是存储在数据库中的信息集合。数据类型用于给特定的数据提供规则。,基本数据类型包括:,字符串,数字,日期和时间值,字符串,定长字符串:,CHARACTER,(,n,),变长字符串:,CHARACTER VARYING,(,n,),数字值,BIT(n),BIT VERYING(n),DECIMAL(n,n),INTEGER,SMALLINT,FLOAT(p),REAL(s),DOUBLE PRECISION(p),日期和时间值,DATE(YEAR,MONTH,DAY),TIME(HOUR,MINUTE,SECOND),INTERVAL,TIMESTAMP,NULL,值:为空。,数据查询语句,语法:,SELECT * | all | column1,column2 ,FROM table1 ,table2 , WHERE condition , GROUP BY column1 , ORDER BY column2(asc,desc) ,按列取值相等的原则进行分组,按列值进行排序,例,1,:,SELECT * FROM,products_tbl,WHERE cost , =,。,注意比较双方的数据类型。,2,、算术运算符,包括:,+,,,-,,*,,/,等。,与数学运算规则一致。,2,、逻辑操作符,IS NULL,(,是否为空),BETWEEN,(,在某两个值之间),IN,(,一系列值中),LIKE,(,相似值的比较),EXITS,(,是否存在符合条件的数据),UNIQUE,(,是否唯一),ALL/ANY,(,一组数据的所有,/,其中的任何一个),AND/OR,(,逻辑与,/,或),IS NULL / IS NOT NULL,WHERE salary IS NULL,工资为空值,。,WHERE salary = NULL,工资中含有,NULL,字符。,例:,SELECT,emp_id,emp_name,FROM,employee_tbl,WHERE,emp_phone,IS NULL,BETWEEN,WHERE salary BETWEEN 200 and 300,工资在,200,到,300,之间,包括,200,和,300,。,IN,WHERE salary IN (200,,,300,,,400,),工资必须是,200,,,300,,,400,之中的值。,LIKE,使用匹配符将一个值同其相似的值比较。,匹配符包括:,-,代表一个字符。,%,代表多个字符。,如:,WHERE salary LIKE -00,查找,00,作为后两位数的值。,WHERE salary LIKE 200%,查找,200,作为前三位数的值。,EXISTS,查询在指定表中是否存在一行符合某种条件的数据。,WHERE EXISTS,(,SELECT employee_id,FROM,employee_tbl,WHERE employee_id = 3333),UNIQUE,在特定的表中搜索每一行是否唯一。,WHERE UNIQUE,(SELECT salary,FROM,employee_tbl,WHERE employee_id = 3333),测试满足条件的工资是否有重复数据。,ALL/ANY,与某个数据集中所有数据,/,任何一个进行比较。,WHERE salary all,(SELECT salary,FROM,employee_tbl,WHERE city = INDIAN),AND/OR,AND,连接的条件必须都满足。,OR,连接的条件至少满足一个。,如:,SELECT *,FROM,products_tbl,WHERE cost 10 and cost 15,视图的更新,对视图的更新最终要转换成对基本表的更新。,视图更新条件:,1,、视图必须未涉及连接;,2,、视图必须不包含,GROUP BY,子句;,3,、视图不能包含任何组合函数;,4,、不能使用,DISTINCT,子句;,5,、,WHERE,子句不能包含表的嵌套引用。,例:,UPDATE employee summary,SET pay_rate = 18,WHERE,emp_id,= 52431875,转换成:,UPDATE employee _,pay_tbl,SET pay_rate = 18,WHERE,emp_id,= 52431875,删除视图,语法:,DROP VIEW view_name,例:,DROP VIEW employee summary,删除了视图,由此视图导出的其他视图也将自动被删除,若导出此视图的基本表被删除了,则此视图也将自动删除,视图的优点,视图对于数据库的重构造提供了一定程度的逻辑独立性。,简化了用户观点。,视图使不同的用户能以不同的方式看待同一数据。,视图对机密数据提供了自动的安全保护功能。,三、索引的建立与删除,语法:,CREATE UNIQUE CLUSTER INDEX index_name ON,table_name(clo_name,升,/,降序,.),ASC,:,升序,,DESC,:,降序,UNIQUE,每一个索引只对应唯一的数据记录;,CLUSTER,聚簇,索引,是指索引项的顺序与表中记录的物理顺序一致的索引组织。,例:为学生,-,课程数据库中的,student,couse, sc 3,个表建立索引。其中,student,表按学号,升序建立唯一索引;,couse,表按,课程号升序建立唯一索引;,sc,表按学号,升序和课程号降序建唯一索引。,CREATE UNIQUE INDEX,stusno,ON,student(sno,),CREATE UNIQUE INDEX,coucno,ON,couse(cno,),CREATE UNIQUE INDEX,scno,ON,sc(sno,ASC,cno,DESC),删除索引,语法:,DROP INDEX ,例:删除,student,表的,stusname,索引,DROP INDEX,stusname,四、数据控制语句,授权,收回权限,数据控制包括:数据的安全性控制,完整性控制,并发控制和恢复,授权:,将对指定操作对象的指定操作权限授予指定的用户。,GRANT ,,,ON ,TO , ,WITH GRANT OPTION;,权限,:,SELECT,INSERT,UPDATE,DELETE;ALTER,INDEX;CREATE,对象类型,:,TABLE,DATABASE,对象,:,属性列,视图,基本表,数据库,例,1:,把查询,student,表权限授给用户,U1.,GRANT,SELECT,ON,TABLE student,TO,U1;,例,2:,把查询,sc,表权限授给所有用户,.,GRANT,SELECT,ON,TABLE SC,TO,PUBLIC;,例,3:,把对表,SC,的,INSERT,权限授给用户,U2,并允许他转授,.,GRANT,INSERT,ON,TABLE SC,TO,U2,WITH GRANT OPTION,;,GRANT,INSERT,ON,TABLE SC,TO,U3,REVOKE ,,,ON ,FROM , ;,例,4:,把所有用户查询,SC,表权限收回,.,REVOKE,SELECT,ON,TABLE SC,FROM,PUBLIC;,收回权限,例,5:,把用户,U1,修改,student,表的,sno,字段的权限收回,.,REVOKE,UPDATE(sno,),ON,TABLE student,FROM,U1;,
展开阅读全文