版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SQL语言基础语言基础本章学习目标本章学习目标 SQL语言是数据库的标准语言。只有理解了SQL才能真正理解关系数据库。本章将介绍怎样使用“结构化查询语言”(SQL)来操作数据库。第三章第三章 SQL语言基础语言基础 本章内容安排本章内容安排 3.1 SQL简介 SQL语言是数据库的核心语言。全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。 1.非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层
2、的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。3.1.2 SQL的优点的优点 3.1.2 SQL的优点的优点2.统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。 SQL为许多任务提供了语句,包括: 查询数据 在表中插入、修改和删除记录 建立、修改和删除数据对象 保证数据库一致性和完整性3.1.2 SQL的优
3、点的优点3.是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个,所有用SQL编写的程序都是可以移植的。 1SQL*PLUS界面:界面:(1)登录)登录输入输入SQLPLUS,再回车;接着输入正确的,再回车;接着输入正确的Oracle用户名用户名并回车;输入用户口令并回车,会显示提示符:并回车;输入用户口令并回车,会显示提示符:SQL。(2)退出)退出输入输入EXIT即可。即可。2语句的编辑与运行语句的编辑与运行语句的编辑与运行可以在语句提示符后输入语句的编辑与运行可以在语句提示符后输入SQL语句并语句并运行。执行单条语
4、句,以分号结束输入;执行程序块以运行。执行单条语句,以分号结束输入;执行程序块以斜杠结束输入,或者以空行结束输入。斜杠结束输入,或者以空行结束输入。也可以利用也可以利用SQL缓冲区进行缓冲区进行PL/SQL块的编辑和运行,或块的编辑和运行,或利用语句文件进行利用语句文件进行PL/SQL块的编辑和运行。块的编辑和运行。3.1.3 操作界面操作界面 3.2 SQL基本语法 通过通过SQL语句,程序员或数据库管理员(语句,程序员或数据库管理员(DBA)可以做如下的)可以做如下的主要工作:主要工作:(1)建立数据库的表格,包括设置表格所可以使用之空间。)建立数据库的表格,包括设置表格所可以使用之空间。
5、(2)改变数据库系统环境设置。)改变数据库系统环境设置。(3)针对某个数据库或表格,授予用户存取权限。)针对某个数据库或表格,授予用户存取权限。(4)对数据库表格建立索引值。)对数据库表格建立索引值。(5)修改数据库表格结构(新建、删除或是修改表格字段)。)修改数据库表格结构(新建、删除或是修改表格字段)。(6)对数据库进行数据的新建。)对数据库进行数据的新建。(7)对数据库进行数据的删除。)对数据库进行数据的删除。(8)对数据库进行数据的修改。)对数据库进行数据的修改。(9)对数据库进行数据的查询。)对数据库进行数据的查询。3.2.2 SQL语言的语法结构语言的语法结构SQL语句是针对关系型
6、数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,SQL的语句不多,而且其语法也相对较简单。归纳起来,共有六大类:1第一类属性词(Predicates)2第二类声明(Declaration)3第三类条件子句(Clause)4第四类运算符(Operator)与操作数(Operation)5第五类函数(Function)6第六类SQL语句(Statement) 3.5.2 ALTER语句语句 3.5.1 CREATE语句语句3.5 数据定义语言(DDL)3.5.3 DROP语句语句 3.5.4 TRUNCATE语句语句1表的建立 表是存储用户数据的基本结构。 建立表主要指定
7、义下列信息: 列定义 完整性约束 表所在表空间 存储特性 可选择的聚集3.5.1 CREATE语句(1)建立一个新表的语句格式可以利用CREATE TABLE语句,来建立一个全新的表,但前提是:数据库必须已经存在。语句格式为:CREATE TABLE table(field1 type(size)index1,field2 type(size)index2,.,nultifieldindex,.)(2)注意事项创建表时要把较小的不为空的字段放在前面,可能为空的字段放在后面。创建表时可以用中文的字段名,但最好还是用英文的字段名。创建表时可以给字段加上默认值,例如DEFAULT SYSDATE。这
8、样每次插入和修改时,不用程序操作这个字段都能得到动作的时间。创建表时可以给字段加上约束条件。例如不允许重复UNIQUE,关键字PRIMARY KEY。2表索引的建立 索引是一种数据库对象。对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。在下列情况下,Oracle可利用索引改进性能:按指定的索引列的值查找行。按索引列的顺序存取表。表索引的建立主要采用的是CREATE INDEX语句。这个命令是对一个已存在的表建立索引,语句格式为:CREATEUNIQUEINDEX index ON table(field1ASC|DESC,field2ASC|DESC,.)WITH PRIM
9、ARY|DISALLOWNULL|IGNORENULL3视图的建立视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。视图所基于的表称为基表。引入视图有下列作用:提供附加的表安全级,限制存取基表的行或/和列集合。隐藏数据复杂性。为数据提供另一种观点。促使Oracle的某些操作在包含视图的数据库上执行,而不在另一个数据库上执行。建立视图的语句格式为:CREATE VIEW view AS SELECT table1.field1,table2.field1FROM table1,table2.;4同义词的建立 同义词为表、视图、序列、存储函数、包、快照或其它同义词的另一个名
10、字。使用同义词为了安全和方便。对某一对象建立同义词可有下列好处:引用对象不需指出对象的持有者。引用对象不需指出它所位于的数据库。为对象提供另一个名字。建立同义词使用的语句格式为:CREATE SYNONYM symnon_name FOR username.tablename;5用户的建立 建立用户使用的语句格式为: CREATE USER username IDENTIFIED BY password;1ALTER语句格式用ALTER语句,可以修改表、索引,或对视图的字段重新设计。语句格式为:ALTER TABLE tableADD COLUMN field type(size)CONSTR
11、AINT 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)修改表里字段的定义描述,语句格式为:ALTER TABLE table MODIFY FIELD DATATYPE;(4)给表里的字段加上约束条件,语句格式为:ALTER TABLE t
12、able ADD CONSTRAINT cons_name PRIMARYKEY(field);ALTER TABLE table ADD CONSTRAINTcons_name UNIQUE(field);(5)把表放在或取出数据库的内存区,语句格式为:ALTER TABLE table CACHE;ALTER TABLE table NOCACHE; 使用DROP语句,可以删除表,索引,视图,同义词,过程,函数,数据库链接等。DROP语句的格式为:DROP TABLE table|INDEX index ON table3.5.3 DROP语句 使用TRUNCATE语句,可以清空表里的所有
13、记录,保留表的结构。TRUNCATE语句的格式为:TRUNCATE table;3.5.4 TRUNCATE语句 3.3 数据查询语言(DQL) 1DQL的基本结构2SELECT 语句的格式SELECTpredicate*|table.*|table.field,table.field2,. AS alias1 ,alias2,.FROM tableexpression ,.WHERE.GROUP BY.HAVING.ORDER BY.WITH OWNERACCESS OPTION3.3.1 基本查询 3SELECT中的条件语句(1)FROM 条件子句SELECT fieldlistFROM
14、tableexpression (2)WHERE 条件子句SELECT fieldlistFROM tableexpressionWHERE criteria(3)“*”,DISTINCT属性词用法 SELECT *|DISTINCT FROM table (4)ORDER BY条件子句 SELECT fieldlist FROM tableWHERE selectcriteriaORDER BY fieldASC|DESC,field2ASC|DESC,.(5)GROUP BY 条件子句SELECT fieldlistFROM tableWHERE criteriaGROUP BY grou
15、pfieldlist(6)HAVING 条件子句 SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlistHAVING groupcriteria (7)BETWEEN.AND 运算符 exprNotBETWEEN value1 AND value2 (8)LIKE 操作数 expression LIKE pattern expression 4注意事项(1)字段名之间可以进行算术运算,例如:(字段名1*字段名2)/3(2)查询语句可以嵌套,例如:SELECTFROM 表名1 WHERE 字段1 in (SELE
16、CTFROM表名1,表名2, WHERE条件1 WHERE条件2);(3)查询结果集的排序操作,默认的排序是升序ASC,降序是DESC。(4)每个表都有一个隐含的字段ROWID,它标记着记录的唯一性。1连接查询 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。 (1)内连接(INNER JOIN) 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:等值连接:在连接条件中使用等于号(=)运算符比较被连接列的
17、列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括、=、=、!和。自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。3.3.2 复合查询(2)外连接(OUTER JOIN) 外连接分为左外连接(LEFT JOIN )、右外连接(RIGHT JOIN)和全外连(FULL OUTER JOIN )接三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全
18、外连接时)中所有符合搜索条件的数据行。 在ORACLE中,外连接可以通过在WHERE子句中:(+)的使用来使用,例如:表A与表B的左连接A.FIELD1=B.FIELD1 (+) ,右连接A.FIELD1 (+)=B.FIELD1(3)交叉连接 交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。2联合查询 UNION运算符可以将两个或两个以上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:select_statementUNIO
19、N ALL selectstatementUNION ALL selectstatementnSELECT Date FROM Store_Information UNION SELECT Date FROM Internet_Sales 注意:union用法中,两个select语句的字段类型匹配,而且字段个数要相同,如上面的例子,在实际的软件开发过程,会遇到更复杂的情况.1统计字段值的数目函数COUNT()用来统计一个表中有多少条记录。注意:函数COUNT()没有指定任何字段。这个语句计算表中所有记录所数目,包括有空值的记录。因此,不需要指定要被计算的特定字段。2计算字段的平均值函数AVG(
20、)可以返回一个字段中所有值的平均值。注意:函数AVG()只能对数值型字段使用。这个函数在计算平均值时也忽略空值。3.3.3集合函数3计算字段值的和计算字段值的和使用函数SUM()。注意:函数SUM()的返回值代表字段purchase_amount中所有值的总和。4返回最大值或最小值函数MAX()和函数MIN()分别用于返回最大值和最小值。注意:函数MIN()返回一个字段的所有值中的最小值。如果字段是空的,函数MIN()返回空值。3.4.2 DELETE语句语句 3.4 数据操纵语言(DML)3.4.3 UPDATE语句语句1INSERT语句格式INSERT语句用于往数据表里插入记录。(1)同时
21、插入多条记录的语句格式为:INSERT INTO tablename (target.field1,target.field2,)SELECT (source.field1,source.field2,)FROM tableexpression(2)插入单条记录的语句格式为:INSERT INTO tablename (target.field1,target.field2,.)VALUES(value1,value2,.)3.4.1 INSERT语句2注意事项(1)字符串类型的字段值必须用单引号括起来,例如:GOODDAY。(2)如果字段值里包含单引号需要进行字符串转换,把它替换成两个单引号
22、 。(3)字符串类型的字段值超过定义的长度会出错,最好在插入前进行长度校验。(4)日期字段的字段值可以用当前数据库的系统时间SYSDATE,精确到秒。(5)INSERT时如果要用到从1开始自动增长的序列号,应该先建立一个序列号。1DELETE语句格式DELETE语句删除数据表里的记录。用DELETE语句删除的记录,无法再复原,所以条件设置一定要正确。DELETE语句格式为:DELETE table.*FROM tableexpressionWHERE criteria3.4.2 DELETE语句2注意事项(1)删除记录并不能释放Oracle里被占用的数据块表空间。它只把那些被删除的数据块标成unused。(2)如果确实要删除一个大表里的全部记录,可以用TRUNCATE语句,它可以释放占用的数据块表空间,其语句格式为:TRUNCATE TABLE 表名;(3)此操作不可回退。 UPDATE 语句通过条件的限制来修改特定的数据。 UPDATE语句格式为: UPDATE table SET column = newvalue WHERE criteria; DML 语句对表都加上了行级锁,确认完成后,必须加上事物处理结束的语句COMMIT才能正式生效,否则改变不一定写入数据库里。如果想撤回这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南都市职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年湖南吉利汽车职业技术学院高职单招笔试语文历年参考题库含答案解析
- 2026年湖北工业职业技术学院高职单招笔试物理历年参考题库含答案解析
- 2026年淮南职业技术学院高职单招笔试英语历年参考题库含答案解析
- 2026年浙江警官职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年河南工业和信息化职业学院高职单招笔试语文历年参考题库含答案解析
- 2026年河北政法职业学院高职单招笔试英语历年参考题库含答案解析
- 2026年沧州医学高等专科学校高职单招笔试职业适应性测验历年参考题库含答案解析
- 2026年江西洪州职业学院高职单招笔试综合素质历年参考题库含答案解析
- 2026年江西工程学院高职单招笔试职业技能测验历年参考题库含答案解析
- 70周岁及以上驾驶人能力测试题库(含详细答案)
- 建筑工地节能减排措施方案
- 【新教材】青岛版(2024)三年级上册数学 六 美丽乡村-轴对称、平移和旋转现象 教案
- 2024版抗结核药所致药物性肝损伤诊治指南课件
- 2026年华侨、港澳、台联考高考数学试卷(含解析)
- 2026年青少年学法用法知识竞赛考试题库(含答案)
- 【数学】浙江省杭州市2026届高三上学期教学质量检测试题(解析版)
- 2025年专升本医学检验技术考试真题专项训练试卷及答案
- 真假美猴王课件
- 生物质颗粒工人管理制度
- GA/T 2171-2024机动车驾驶人考试场地布局规划指南
评论
0/150
提交评论