SQL语言基础课件

上传人:M****1 文档编号:571890732 上传时间:2024-08-12 格式:PPT 页数:74 大小:884KB
返回 下载 相关 举报
SQL语言基础课件_第1页
第1页 / 共74页
SQL语言基础课件_第2页
第2页 / 共74页
SQL语言基础课件_第3页
第3页 / 共74页
SQL语言基础课件_第4页
第4页 / 共74页
SQL语言基础课件_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《SQL语言基础课件》由会员分享,可在线阅读,更多相关《SQL语言基础课件(74页珍藏版)》请在金锄头文库上搜索。

1、SQLSQL语言基础语言基础语言基础语言基础本章学习目标本章学习目标 SQL语言是数据库的标准语言。只有理解了SQL才能真正理解关系数据库。本章将介绍怎样使用“结构化查询语言”(SQL)来操作数据库。第二章第二章 SQL语言基础语言基础 本章内容安排本章内容安排本章内容安排本章内容安排 2.1 SQL 2.1 SQL简介简介简介简介 2.2 SQL 2.2 SQL基本语法基本语法基本语法基本语法 2 2.3 .3 数据查询语言(数据查询语言(数据查询语言(数据查询语言(DQLDQL) 2.4 2.4 数据操纵语言(数据操纵语言(数据操纵语言(数据操纵语言(DMLDML) 2.5 2.5 数据定

2、义语言数据定义语言数据定义语言数据定义语言(DDL)(DDL) 2.6 2.6 数据控制语言(数据控制语言(数据控制语言(数据控制语言(DCLDCL) 2 2.7 .7 常用函数常用函数常用函数常用函数 2.1.2 SQL 2.1.2 SQL的优点的优点的优点的优点 2.1.3 2.1.3 操作界面操作界面操作界面操作界面 2.1.1 2.1.1 发展历史发展历史发展历史发展历史 3.1 SQL简介 SQL语言是数据库的核心语言。全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言

3、,它的前身是SQUARE语言。 1.非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。2.1.2 SQL的优点的优点 2.1.2 SQL的优点的优点2.统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。 SQ

4、L为许多任务提供了语句,包括:查询数据在表中插入、修改和删除记录建立、修改和删除数据对象控制对数据和数据对象的存取保证数据库一致性和完整性2.1.2 SQL的优点的优点3.是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个,所有用SQL编写的程序都是可以移植的。 1SQL*PLUS界面:界面:(1)登录)登录输输入入SQLPLUS,再再回回车车;接接着着输输入入正正确确的的Oracle用用户户名名并回车;输入用户口令并回车,会显示提示符:并回车;输入用户口令并回车,会显示提示符:SQL。(2)退出)退出输入输入EXIT

5、即可。即可。2语句的编辑与运行语句的编辑与运行语语句句的的编编辑辑与与运运行行可可以以在在语语句句提提示示符符后后输输入入SQL语语句句并并运运行行。执执行行单单条条语语句句,以以分分号号结结束束输输入入;执执行行程程序序块块以以斜杠结束输入,或者以空行结束输入。斜杠结束输入,或者以空行结束输入。也也可可以以利利用用SQL缓缓冲冲区区进进行行PL/SQL块块的的编编辑辑和和运运行行,或或利用语句文件进行利用语句文件进行PL/SQL块的编辑和运行。块的编辑和运行。2.1.3 操作界面操作界面 2.2.2 SQL2.2.2 SQL语言的语法结构语言的语法结构语言的语法结构语言的语法结构 2.2.1

6、 SQL2.2.1 SQL语言的主要功能语言的主要功能语言的主要功能语言的主要功能 3.2 SQL基本语法 通通过过SQL语语句句,程程序序员员或或数数据据库库管管理理员员(DBA)可可以以做做如如下下的的主要工作:主要工作:(1)建立数据)建立数据库库的表格,包括的表格,包括设设置表格所可以使用之空置表格所可以使用之空间间。(2)改)改变变数据数据库库系系统环统环境境设设置。置。(3)针对针对某个数据某个数据库库或表格,授予用或表格,授予用户户存取存取权权限。限。(4)对对数据数据库库表格建立索引表格建立索引值值。(5)修改数据)修改数据库库表格表格结结构(新建、构(新建、删删除或是修改表格

7、字段)。除或是修改表格字段)。(6)对对数据数据库进库进行数据的新建。行数据的新建。(7)对对数据数据库进库进行数据的行数据的删删除。除。(8)对对数据数据库进库进行数据的修改。行数据的修改。(9)对对数据数据库进库进行数据的行数据的查询查询。2.2.2 SQL语言的语法结构语言的语法结构SQL语句是针对关系型数据库所建立出来的语法叙述,所以SQL在这类数据库中所发挥的功能非常的强,SQL的语句不多,而且其语法也相对较简单。归纳起来,共有六大类:1第一类属性词(Predicates)2第二类声明(Declaration)3第三类条件子句(Clause)4第四类运算符(Operator)5第五类

8、函数(Function)6第六类SQL语句(Statement) 2.3.2 2.3.2 复合查询复合查询复合查询复合查询 2.3.1 2.3.1 基本查询基本查询基本查询基本查询 2.3 数据查询语言(DQL)2.3.3 2.3.3 集合函数集合函数集合函数集合函数 1DQL的基本结构2SELECT 语句的格式SELECT distinct 字段列表table.字段名字段名 as 别名 *集合函数(字段名)FROM 表名1 ,.WHERE.GROUP BY.HAVING.ORDER BY.2.3.1 基本查询 3SELECT中的条件语句(1)FROM 条件子句SELECT fieldlist

9、(可以使用算术运算符( + - * /)FROM tableexpression (2)WHERE 条件子句SELECT fieldlistFROM tableexpressionWHERE criteria(后副:where子句中的运算符)(3)“*”,DISTINCT属性词用法 SELECT *|DISTINCT FROM table (4)ORDER BY条件子句 SELECT fieldlist FROM tableWHERE selectcriteriaORDER BY fieldASC|DESC,field2ASC|DESC,.(5)GROUP BY 条件子句SELECT fiel

10、dlistFROM tableWHERE criteriaGROUP BY groupfieldlist(6)HAVING 条件子句 SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlistHAVING groupcriteria where子句中的运算符: (1)比较运算符: = = (2)范围运算符:NOTBetween .and (3)列表运算符:NOTIN(expression listvalue) (4)模式匹配运算符 like _ , % (5) NULL 运算符:is not null (6)逻辑运

11、算符:and or not (not 要与其他两个共同使用) 例如: WHERE (type = business OR type = psychology) AND NOT advance 5500 4注意事项(1)字段名之间可以进行算术运算,例如:(字段名1*字段名2)/3(2)查询语句可以嵌套,例如:SELECTFROM 表名1 WHERE 字段1 in (SELECTFROM表名1,表名2, WHERE条件1 WHERE条件2);(3)查询结果集的排序操作,默认的排序是升序ASC,降序是DESC。1连接查询 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,在FROM子

12、句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。这样就可以将多个表中的数据进行有条件的查询: select * from tablename1 , tablename2, where expre2.3.2 复合查询2联合查询 UNION运算符可以将两个或两个以上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:select_statementUNION ALL selectstatementUNION ALL selectstatementn3,外联接查询: 左外连接查询:left join 右外连接查询:right join 全

13、外连接查询:full join 条件的指定用on4,内连接查询: 第一种:在from后直接添加表名,中间用逗号隔开; 第二种:使用 “join” 连接 ,条件的指定用“on”5,自连接: 就是将同一个表其不同的别名,使他在逻辑上成为两张表1统计字段值的数目函数COUNT()用来统计一个表中有多少条记录。Count(distinct/* 字段名称)注意:函数COUNT()没有指定任何字段。这个语句计算表中所有记录所数目,包括有空值的记录。因此,不需要指定要被计算的特定字段。2计算字段的平均值函数AVG()可以返回一个字段中所有值的平均值。注意:函数AVG()只能对数值型字段使用。这个函数在计算平

14、均值时也忽略空值。2.3.3集合函数3计算字段值的和计算字段值的和使用函数SUM()。注意:函数SUM()的返回值代表字段purchase_amount中所有值的总和。4返回最大值或最小值函数MAX()和函数MIN()分别用于返回最大值和最小值。注意:函数MIN()返回一个字段的所有值中的最小值。如果字段是空的,函数MIN()返回空值。2.4.2 DELETE语句语句2.4.1 INSERT2.4.1 INSERT语句语句语句语句 2.4 数据操纵语言(DML)2.4.3 UPDATE语句语句1INSERT语句格式INSERT语句用于往数据表里插入记录。(1)插入单条记录的语句格式为:INSE

15、RT INTO tablename(target.field1,target.field2,.)VALUES(value1,value2,.) 、(2)同时插入多条记录的语句格式为:INSERT INTO tablename(target.field1,target.field2,)SELECT (source.field1,source.field2,)FROM tableexpression2.4.1 INSERT语句2注意事项(1)字符串类型的字段值必须用单引号括起来,例如:GOODDAY。(2)如果字段值里包含单引号需要进行字符串转换,把它替换成两个单引号 。(3)字符串类型的字段值超

16、过定义的长度会出错,最好在插入前进行长度校验。(4)日期字段的字段值可以用当前数据库的系统时间SYSDATE,精确到秒。(5)INSERT时如果要用到从1开始自动增长的序列号,应该先建立一个序列号。 (6)在添加数据时可以使用转换函数添加指定的数据类型。 有to_char() to_date() to_number()1DELETE语句格式DELETE语句删除数据表里的记录。用DELETE语句删除的记录,无法再复原,所以条件设置一定要正确。DELETE语句格式为:DELETE tablenameFROM tableexpressionWHERE criteria2.4.2 DELETE语句2注

17、意事项(1)删除记录并不能释放Oracle里被占用的数据块表空间。它只把那些被删除的数据块标成unused。(2)如果确实要删除一个大表里的全部记录,可以用TRUNCATE语句,它可以释放占用的数据块表空间,其语句格式为:TRUNCATE TABLE 表名;(3)此操作不可回退。 UPDATE 语句通过条件的限制来修改特定的数据。 UPDATE语句格式为: UPDATE tablename SET newvalue FROM tableexpression WHERE criteria; DML 语句对表都加上了行级锁,确认完成后,必须加上事物处理结束的语句COMMIT才能正式生效,否则改变不

18、一定写入数据库里。如果想撤回这些操作,可以用语句ROLLBACK复原。2.4.3 UPDATE语句2.5.2 ALTER语句语句 2.5.1 CREATE语句语句2.5 数据定义语言(DDL)2.5.3 DROP语句语句 2.5.4 TRUNCATE语句语句1表的建立 表是存储用户数据的基本结构。 建立表主要指定义下列信息: 列定义 完整性约束2.5.1 CREATE语句字段数据类型:字符型:1、char (n):定长字符串 长度120002、varchar2(n) :变长字符串 长度140003、nchar(n):定长字符串 长度110004、nvarchar2(n)变长字符串 长度1100

19、05、long(n)变长字符串 长度2G数字型1、Number(p,s) :p为所有位数,s为小数位数 number 范围 10的-38次方 到10的38次方 日期型1、date : 储存从公元前4712/1/1到公元4712/12/31大对象数据类型 1、Blob(n):存4G的二进制数据 2、Clob(n):存4G的字符数据 3、NClob(n):存4G unicode 的字符数据 (1)建立一个新表的语句格式可以利用CREATE TABLE语句,来建立一个全新的表,但前提是:数据库必须已经存在。语句格式为:CREATE TABLE tablename(field1 type(size)i

20、ndex1,field2 type(size)index2,.,nultifieldindex,.)constraint 约束名约束名 primary key(列名列名)constraint 约束名 primary key(列名):不重复,不能有null值 可以被外键引用,一个表中只能有一个主键constraint 约束名 unique (列名):字段中的数据不能重复,可以被外键引用。constraint 约束名 foreign key(列名) references 主键表(主键列)中的数据必须来自于主键或者是唯一约束列数据。constraint 约束名 check(检查表达式)constra

21、int 约束名 default (默认值) 得到系统时间:sysdate(2)注意事项创建表时要把较小的不为空的字段放在前面,可能为空的字段放在后面。创建表时可以用中文的字段名,但最好还是用英文的字段名。创建表时可以给字段加上默认值,例如DEFAULT SYSDATE。这样每次插入和修改时,不用程序操作这个字段都能得到动作的时间。创建表时可以给字段加上约束条件。例如不允许重复UNIQUE,主键PRIMARY KEY。2表索引的建立 索引是一种数据库对象 ,他是表和蔟相联系的结构,能够是与表相关的SQL语句执行更迅速,能够快速定位要查询的信息,他对查询结果每影响,但可以提高查询速度,对于在表或聚

22、集的索引列上的每一值将包含一项,为行提供直接的快速存取。在下列情况下,Oracle可利用索引改进性能: 按指定的索引列的值查找行。按索引列的顺序存取表。注意: 建立表的主键时候的约束可以自动建索引 primary key - 唯一性索引 unique - 唯一性索引表索引的建立主要采用的是CREATE INDEX语句。这个命令是对一个已存在的表建立索引,语句格式为:CREATEUNIQUEINDEX indexname ON tablename(field1ASC|DESC,field2ASC|DESC,.)3视图的建立视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。

23、视图所基于的表称为基表。引入视图有下列作用:提供附加的表安全级,限制存取基表的行或/和列集合。隐藏数据复杂性。为数据提供另一种观点。促使Oracle的某些操作在包含视图的数据库上执行,而不在另一个数据库上执行。建立视图的语句格式为:CREATE VIEW viewname(字段列表) AS SELECT table1.field1,table2.field1 FROM table1,table2.;With read only4同义词的建立 同义词为表、视图、序列、存储函数、包、快照或其它同义词的另一个名字。使用同义词为了安全和方便。对某一对象建立同义词可有下列好处:引用对象不需指出对象的持有

24、者。引用对象不需指出它所位于的数据库。为对象提供另一个名字。建立同义词使用的语句格式为:CREATE SYNONYM symnon_name FOR username.tablename;1ALTER语句格式用ALTER语句,可以修改表、索引,或对视图的字段重新设计。语句格式为:ALTER TABLE tablenameADD (COLUMN field type(size)|CONSTRAINT multifiedindex |DROP COLUMN field|CONSTRAINT indexname2.5.2 ALTER语句2ALTER语句的具体用法(1)在表的后面增加一个字段,例如为:

25、 ALTER TABLE 表名 ADD (BOOK_SHU VARCHAR2(10) ) (2)修改表里字段的定义描述,例如为: ALTER TABLE 表名 MODIFY(BOOK_NAME“ NOT NULL)(3)给表里的字段加上约束条件,语句格式为: ALTER TABLE SCOTT.ZHOU1 ADD (CONSTRAINT ZHUJIAN PRIMARY KEY(book_name)修改表名称: rename 旧表名 to 新表名修改列的属性时,需要注意以下几条: 1、可以增加列的宽度或数字的精度。 2、减少列的宽度时,列的取值要大于列值范 围。 3、当数据类型被修改时,列值必须

26、为空 使用DROP语句,可以删除表,索引,视图,同义词,过程,函数,数据库链接等。可以恢复,DROP语句的格式为:DROP TABLE table|INDEX index ON table例如: drop table biao 2.5.3 DROP语句 使用TRUNCATE语句,可以清空表里的所有记录,保留表的结构。TRUNCATE语句的格式为:TRUNCATE table 表名;2.5.4 TRUNCATE语句2.6 数据控制语言()1. COMMIT语句语句2. ROLLBACK语句语句 事物控制实验:两个对比COMMIT语句COMMIT WORK:提交事务。提交数据有三种类型:显式提交、

27、隐式提交及自动提交。下面分别说明这三种类型。(1)显式提交用COMMIT语句直接完成的提交为显式提交。其格式为:SQLCOMMIT;(2)隐式提交用SQL语句间接完成的提交为隐式提交。这些命令是:ALTER,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,QUIT,REVOKE。(3)自动提交若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQLSET AUTOCOMMIT ON;ROLLBACK语句ROLLBACK WORK TO SAVEPOINT:回退到某一点。回滚语句使数据库状态回到上

28、次最后提交事务的状态。2.7 常用函数一个函数类似于一个算符,它操作数据项,返回一个结果。函数在格式上不同于算符,它具有参数,可操作0个、一个、二个或多个参数,函数的形式为:函数名(参数1,参数2,)函数具有下列一般类形: 单行函数 分组函数注意系统运算表 :dual如:select length(hello) from dual例如:select * from scott.emp where ename=king select * from scott.emp where ename =upper(king)Select hiredate,add_months(hiredate,3) from emp select last_day(sysdate) from dual;select next_day(sysdate,星期三) from dual; select months_between(sysdate,hiredate) from emp;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号