《[精选]05SQL语言基础cmh.pptx》由会员分享,可在线阅读,更多相关《[精选]05SQL语言基础cmh.pptx(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQLSQL语言基础语言基础语言基础语言基础本章学习目标本章学习目标 SQL语言是数据库的标准语言。只有理解了SQL才能真正理解关系数据库。本章将介绍怎样使用“结构化查询语言”(SQL)来操作数据库。第三章第三章 SQL语言基础语言基础 本章内容安排本章内容安排本章内容安排本章内容安排 3.1 SQL 3.1 SQL简介简介简介简介 3.2 SQL 3.2 SQL基本语法基本语法基本语法基本语法 3.3 3.3 数据查询语言(数据查询语言(数据查询语言(数据查询语言(DQLDQL)3.4 3.4 数据操纵语言(数据操纵语言(数据操纵语言(数据操纵语言(DMLDML)3.5 3.5 数据定义语言
2、数据定义语言数据定义语言数据定义语言(DDL)(DDL)3.6 3.6 数据控制语言(数据控制语言(数据控制语言(数据控制语言(DCLDCL)3.7 3.7 常用函数常用函数常用函数常用函数 3.1.2 SQL 3.1.2 SQL的优点的优点的优点的优点 3.1.3 3.1.3 操作界面操作界面操作界面操作界面 3.1.1 3.1.1 发展历史发展历史发展历史发展历史 3.1 SQL简介 SQL语言是数据库的核心语言。全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是
3、SQUARE语言。1.非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。3.1.2 SQL的优点的优点 3.1.2 SQL的优点的优点2.统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。SQL为许多任务提供
4、了语句,包括:查询数据在表中插入、修改和删除记录建立、修改和删除数据对象保证数据库一致性和完整性3.1.2 SQL的优点的优点3.是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个,所有用SQL编写的程序都是可以移植的。1SQL*PLUS界面:界面:(1)登录)登录输输入入SQLPLUS,再再回回车车;接接着着输输入入正正确确的的Oracle用用户户名名并回车;输入用户口令并回车,会显示提示符:并回车;输入用户口令并回车,会显示提示符:SQL。(2)退出)退出输入输入EXIT即可。即可。2语句的编辑与运行语句的编辑与运
5、行语语句句的的编编辑辑与与运运行行可可以以在在语语句句提提示示符符后后输输入入SQL语语句句并并运运行行。执执行行单单条条语语句句,以以分分号号结结束束输输入入;执执行行程程序序块块以以斜杠结束输入,或者以空行结束输入。斜杠结束输入,或者以空行结束输入。也也可可以以利利用用SQL缓缓冲冲区区进进行行PL/SQL块块的的编编辑辑和和运运行行,或或利用语句文件进行利用语句文件进行PL/SQL块的编辑和运行。块的编辑和运行。3.1.3 操作界面操作界面 3.2.2 SQL3.2.2 SQL语言的语法结构语言的语法结构语言的语法结构语言的语法结构 3.2.1 SQL3.2.1 SQL语言的主要功能语言
6、的主要功能语言的主要功能语言的主要功能 3.2 SQL基本语法 通通过SQL语句句,程程序序员或或数数据据库管管理理员(DBA)可可以以做做如如下下的的主要工作:主要工作:(1)建立数据)建立数据库的表格,包括的表格,包括设置表格所可以使用之空置表格所可以使用之空间。(2)改)改变数据数据库系系统环境境设置。置。(3)针对某个数据某个数据库或表格,授予用或表格,授予用户存取存取权限。限。(4)对数据数据库表格建立索引表格建立索引值。(5)修改数据)修改数据库表格表格结构(新建、构(新建、删除或是修改表格字段)。除或是修改表格字段)。(6)对数据数据库进行数据的新建。行数据的新建。(7)对数据数
7、据库进行数据的行数据的删除。除。(8)对数据数据库进行数据的修改。行数据的修改。(9)对数据数据库进行数据的行数据的查询。3.2.2 SQL语言的语法结构语言的语法结构SQL语句是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,SQL的语句不多,而且其语法也相对较简单。归纳起来,共有六大类:1第一类属性词(Predicates)2第二类声明(Declaration)3第三类条件子句(Clause)4第四类运算符(Operator)与操作数(Operation)5第五类函数(Function)6第六类SQL语句(Statement)3.5.2 ALTER语句语
8、句 3.5.1 CREATE语句语句3.5 数据定义语言(DDL)3.5.3 DROP语句语句 3.5.4 TRUNCATE语句语句1表的建立 表是存储用户数据的基本结构。建立表主要指定义下列信息:列定义 完整性约束 表所在表空间 存储特性 可选择的聚集3.5.1 CREATE语句(1)建立一个新表的语句格式可以利用CREATE TABLE语句,来建立一个全新的表,但前提是:数据库必须已经存在。语句格式为:CREATE TABLE table(field1 type(size)index1,field2 type(size)index2,.,nultifieldindex,.)(2)注意事项创
9、建表时要把较小的不为空的字段放在前面,可能为空的字段放在后面。创建表时可以用中文的字段名,但最好还是用英文的字段名。创建表时可以给字段加上默认值,例如DEFAULT SYSDATE。这样每次插入和修改时,不用程序操作这个字段都能得到动作的时间。创建表时可以给字段加上约束条件。例如不允许重复UNIQUE,关键字PRIMARY KEY。2表索引的建立 索引是一种数据库对象。对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。在下列情况下,Oracle可利用索引改进性能:按指定的索引列的值查找行。按索引列的顺序存取表。表索引的建立主要采用的是CREATE INDEX语句。这个命令是对
10、一个已存在的表建立索引,语句格式为:CREATEUNIQUEINDEX index ON table(field1ASC|DESC,field2ASC|DESC,.)WITH PRIMARY|DISALLOWNULL|IGNORENULL3视图的建立视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。视图所基于的表称为基表。引入视图有下列作用:提供附加的表安全级,限制存取基表的行或/和列集合。隐藏数据复杂性。为数据提供另一种观点。促使Oracle的某些操作在包含视图的数据库上执行,而不在另一个数据库上执行。建立视图的语句格式为:CREATE VIEW view AS SE
11、LECT table1.field1,table2.field1FROM table1,table2.;4同义词的建立 同义词为表、视图、序列、存储函数、包、快照或其它同义词的另一个名字。使用同义词为了安全和方便。对某一对象建立同义词可有下列好处:引用对象不需指出对象的持有者。引用对象不需指出它所位于的数据库。为对象提供另一个名字。建立同义词使用的语句格式为:CREATE SYNONYM symnon_name FOR username.tablename;5用户的建立 建立用户使用的语句格式为:CREATE USER username IDENTIFIED BY password;1ALTE
12、R语句格式用ALTER语句,可以修改表、索引,或对视图的字段重新设计。语句格式为:ALTER TABLE tableADD COLUMN field type(size)CONSTRAINT index|CONSTRAINT multifiedindex|DROP COLUMN field|CONSTRAINT indexname3.5.2 ALTER语句2ALTER语句的具体用法(1)改变表的名称,语句格式为:ALTER TABLE table1 TO table2;(2)在表的后面增加一个字段,语句格式为:ALTER TABLE table ADD FIELD DATATYPE;(3)修改
13、表里字段的定义描述,语句格式为:ALTER TABLE table MODIFY FIELD DATATYPE;(4)给表里的字段加上约束条件,语句格式为:ALTER TABLE table ADD CONSTRAINT cons_name PRIMARYKEY(field);ALTER TABLE table ADD CONSTRAINTcons_name UNIQUE(field);(5)把表放在或取出数据库的内存区,语句格式为:ALTER TABLE table CACHE;ALTER TABLE table NOCACHE;使用DROP语句,可以删除表,索引,视图,同义词,过程,函数,
14、数据库链接等。DROP语句的格式为:DROP TABLE table|INDEX index ON table3.5.3 DROP语句 使用TRUNCATE语句,可以清空表里的所有记录,保留表的结构。TRUNCATE语句的格式为:TRUNCATE table;3.5.4 TRUNCATE语句3.3.2 3.3.2 复合查询复合查询复合查询复合查询 3.3.1 3.3.1 基本查询基本查询基本查询基本查询 3.3 数据查询语言(DQL)3.3.3 3.3.3 集合函数集合函数集合函数集合函数 1DQL的基本结构2SELECT 语句的格式SELECTpredicate*|table.*|table
15、.field,table.field2,.AS alias1,alias2,.FROM tableexpression,.WHERE.GROUP BY.HAVING.ORDER BY.WITH OWNERACCESS OPTION3.3.1 基本查询 3SELECT中的条件语句(1)FROM 条件子句SELECT fieldlistFROM tableexpression(2)WHERE 条件子句SELECT fieldlistFROM tableexpressionWHERE criteria(3)“*”,DISTINCT属性词用法 SELECT*|DISTINCT FROM table(4
16、)ORDER BY条件子句 SELECT fieldlist FROM tableWHERE selectcriteriaORDER BY fieldASC|DESC,field2ASC|DESC,.(5)GROUP BY 条件子句SELECT fieldlistFROM tableWHERE criteriaGROUP BY groupfieldlist(6)HAVING 条件子句 SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlistHAVING groupcriteria (7)BETWEEN.AND 运
17、算符 exprNotBETWEEN value1 AND value2 (8)LIKE 操作数 expression LIKE pattern expression 4注意事项(1)字段名之间可以进行算术运算,例如:(字段名1*字段名2)/3(2)查询语句可以嵌套,例如:SELECTFROM 表名1 WHERE 字段1 in(SELECTFROM表名1,表名2,WHERE条件1 WHERE条件2);(3)查询结果集的排序操作,默认的排序是升序ASC,降序是DESC。(4)每个表都有一个隐含的字段ROWID,它标记着记录的唯一性。1连接查询 连接可以在SELECT 语句的FROM子句或WHERE
18、子句中建立,在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。(1)内连接(INNER JOIN)内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括、=、=、!和。自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括
19、的列,并删除连接表中的重复列。3.3.2 复合查询(2)外连接(OUTER JOIN)外连接分为左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连(FULL OUTER JOIN)接三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。在ORACLE中,外连接可以通过在WHERE子句中:(+)的使用来使用,例如:表A与表B的左连接A.FIELD1=B.FIELD1(+),右连接A.FIELD1(+)=B.FIELD1(3)交叉连接 交叉连接不带WHERE 子句,它返回被连
20、接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。2联合查询 UNION运算符可以将两个或两个以上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:select_statementUNION ALL selectstatementUNION ALL selectstatementnSELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales 注意:union用法中,两个select语句的
21、字段类型匹配,而且字段个数要相同,如上面的例子,在实际的软件开发过程,会遇到更复杂的情况.1统计字段值的数目函数COUNT()用来统计一个表中有多少条记录。注意:函数COUNT()没有指定任何字段。这个语句计算表中所有记录所数目,包括有空值的记录。因此,不需要指定要被计算的特定字段。2计算字段的平均值函数AVG()可以返回一个字段中所有值的平均值。注意:函数AVG()只能对数值型字段使用。这个函数在计算平均值时也忽略空值。3.3.3集合函数3计算字段值的和计算字段值的和使用函数SUM()。注意:函数SUM()的返回值代表字段purchase_amount中所有值的总和。4返回最大值或最小值函数
22、MAX()和函数MIN()分别用于返回最大值和最小值。注意:函数MIN()返回一个字段的所有值中的最小值。如果字段是空的,函数MIN()返回空值。3.4.2 DELETE语句语句3.4.1 INSERT3.4.1 INSERT语句语句语句语句 3.4 数据操纵语言(DML)3.4.3 UPDATE语句语句1INSERT语句格式INSERT语句用于往数据表里插入记录。(1)同时插入多条记录的语句格式为:INSERT INTO tablename(target.field1,target.field2,)SELECT(source.field1,source.field2,)FROM tablee
23、xpression(2)插入单条记录的语句格式为:INSERT INTO tablename(target.field1,target.field2,.)VALUES(value1,value2,.)3.4.1 INSERT语句2注意事项(1)字符串类型的字段值必须用单引号括起来,例如:GOODDAY。(2)如果字段值里包含单引号需要进行字符串转换,把它替换成两个单引号。(3)字符串类型的字段值超过定义的长度会出错,最好在插入前进行长度校验。(4)日期字段的字段值可以用当前数据库的系统时间SYSDATE,精确到秒。(5)INSERT时如果要用到从1开始自动增长的序列号,应该先建立一个序列号。1
24、DELETE语句格式DELETE语句删除数据表里的记录。用DELETE语句删除的记录,无法再复原,所以条件设置一定要正确。DELETE语句格式为:DELETE table.*FROM tableexpressionWHERE criteria3.4.2 DELETE语句2注意事项(1)删除记录并不能释放Oracle里被占用的数据块表空间。它只把那些被删除的数据块标成unused。(2)如果确实要删除一个大表里的全部记录,可以用TRUNCATE语句,它可以释放占用的数据块表空间,其语句格式为:TRUNCATE TABLE 表名;(3)此操作不可回退。UPDATE 语句通过条件的限制来修改特定的数
25、据。UPDATE语句格式为:UPDATE table SET column=newvalue WHERE criteria;DML 语句对表都加上了行级锁,确认完成后,必须加上事物处理结束的语句COMMIT才能正式生效,否则改变不一定写入数据库里。如果想撤回这些操作,可以用语句ROLLBACK复原。3.4.3 UPDATE语句2.REVOKE语句语句1.GRANT语句语句 3.6 数据控制语言(DCL)3.COMMIT语句语句4.ROLLBACK语句语句 1GRANT语句 GRANT语句的作用是赋与用户权限。常用的数据对象权限有以下六个:(1)ALL ON 数据对象名(2)SELECT ON
26、数据对象名(3)UPDATE ON 数据对象名(4)DELETE ON 数据对象名(5)INSERT ON 数据对象名(6)ALTER ON 数据对象名2REVOKE语句REVOKE语句是回收权限语句。回收以上所赋权限的相应语句为:REVOKE CONNECT FROM USER1;REVOKE SELECT ON TABLE2 FROM USER2;REVOKE SELECT,INSERT,DELETE ON TABLE3 FROM USER1,USER2;3COMMIT语句COMMIT WORK:提交事务。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。(1)显式
27、提交用COMMIT语句直接完成的提交为显式提交。其格式为:SQLCOMMIT;(2)隐式提交用SQL语句间接完成的提交为隐式提交。这些命令是:ALTER,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,QUIT,REVOKE。(3)自动提交若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQLSET AUTOCOMMIT ON;4 ROLLBACK语句ROLLBACK WORK TO SAVEPOINT:回退到某一点。回滚语句使数据库状态回到上次最后提交事务的状态。9、静夜四无邻,荒居旧业贫。
28、3月-233月-23Monday,March 13,202310、雨中黄叶树,灯下白头人。15:01:1415:01:1415:013/13/2023 3:01:14 PM11、以我独沈久,愧君相见频。3月-2315:01:1415:01Mar-2313-Mar-2312、故人江海别,几度隔山川。15:01:1415:01:1415:01Monday,March 13,202313、乍见翻疑梦,相悲各问年。3月-233月-2315:01:1415:01:14March 13,202314、他乡生白发,旧国见青山。13 三月 20233:01:14 下午15:01:143月-2315、比不了得就
29、不比,得不到的就不要。三月 233:01 下午3月-2315:01March 13,202316、行动出成果,工作出财富。2023/3/13 15:01:1415:01:1413 March 202317、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。3:01:14 下午3:01 下午15:01:143月-239、没有失败,只有暂时停止成功!。3月-233月-23Monday,March 13,202310、很多事情努力了未必有结果,但是不努力却什么改变也没有。15:01:1415:01:1415:013/13/2023 3:01:14 PM11、成功就是日复一日那一点点小
30、小努力的积累。3月-2315:01:1415:01Mar-2313-Mar-2312、世间成事,不求其绝对圆满,留一份不足,可得无限完美。15:01:1415:01:1415:01Monday,March 13,202313、不知香积寺,数里入云峰。3月-233月-2315:01:1415:01:14March 13,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏。13 三月 20233:01:14 下午15:01:143月-2315、楚塞三湘接,荆门九派通。三月 233:01 下午3月-2315:01March 13,202316、少年十五二十时,步行夺得胡马骑。2023/3/
31、13 15:01:1415:01:1413 March 202317、空山新雨后,天气晚来秋。3:01:14 下午3:01 下午15:01:143月-239、杨柳散和风,青山澹吾虑。3月-233月-23Monday,March 13,202310、阅读一切好书如同和过去最杰出的人谈话。15:01:1415:01:1415:013/13/2023 3:01:14 PM11、越是没有本领的就越加自命不凡。3月-2315:01:1415:01Mar-2313-Mar-2312、越是无能的人,越喜欢挑剔别人的错儿。15:01:1415:01:1415:01Monday,March 13,202313、
32、知人者智,自知者明。胜人者有力,自胜者强。3月-233月-2315:01:1415:01:14March 13,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏。13 三月 20233:01:14 下午15:01:143月-2315、最具挑战性的挑战莫过于提升自我。三月 233:01 下午3月-2315:01March 13,202316、业余生活要有意义,不要越轨。2023/3/13 15:01:1415:01:1413 March 202317、一个人即使已登上顶峰,也仍要自强不息。3:01:15 下午3:01 下午15:01:153月-23MOMODA POWERPOINTLorem ipsum dolor sit amet,consectetur adipiscing elit.Fusce id urna blandit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis ut cursus.感感 谢谢 您您 的的 下下 载载 观观 看看专家告诉演讲完毕,谢谢观看!