SQL语言基础课件_第1页
SQL语言基础课件_第2页
SQL语言基础课件_第3页
SQL语言基础课件_第4页
SQL语言基础课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2.6数数据据控制语语言(DCL))2.7常常用函函数2.1..2SQL的优点点2.1..3操操作界界面2.1..1发发展历历史3.1SQL简介介SQL语语言是数数据库的的核心语语言。全全称是““结构化化查询语语言(StructuredQueryLanguage)”,,最早的的是IBM的圣圣约瑟研研究实验验室为其其关系数数据库管管理系统统SYSTEMR开发发的一种种查询语语言,它它的前身身是SQUARE语言言。1.非过程化化语言SQL是是一个非非过程化化的语言言,因为为它一次次处理一一个记录录,对数数据提供供自动导导航。SQL允允许用户户在高层层的数据据结构上上工作,,而不对对单个记记录进行行操作,,可操作作记录集集。所有有SQL语句接接受集合合作为输输入,返返回集合合作为输输出。SQL的的集合特特性允许许一条SQL语语句的结结果作为为另一条条SQL语句的的输入。。SQL不要求求用户指指定对数数据的存存放方法法。这种种特性使使用户更更易集中中精力于于要得到到的结果果。2.1..2SQL的优点点2.1..2SQL的优点点2.统一的语语言SQL可可用于所所有用户户的DB活动模模型,包包括系统统管理员员、数据据库管理理员、应应用程序序员、决决策支持持系统人人员及许许多其它它类型的的终端用用户。SQL为为许多任任务提供供了语句句,包括括:查询数据据在表中插插入、修修改和删删除记录录建立、修修改和删删除数据据对象控制对数数据和数数据对象象的存取取保证数据据库一致致性和完完整性2.1..2SQL的优点点3.是所有关关系数据据库的公公共语言言由于所有有主要的的关系数数据库管管理系统统都支持持SQL语言,,用户可可将使用用SQL的技能能从一个个RDBMS转转到另一一个,所所有用SQL编编写的程程序都是是可以移移植的。。1.SQL*PLUS界面::(1)登登录输入SQLPLUS,,再回车车;接着着输入正正确的Oracle用用户名并并回车;;输入用用户口令令并回车车,会显显示提示示符:SQL>>。(2)退退出输入EXIT即即可。2.语句句的编辑辑与运行行语句的编编辑与运运行可以以在语句句提示符符后输入入SQL语句并并运行。。执行单单条语句句,以分分号结束束输入;;执行程程序块以以斜杠结结束输入入,或者者以空行行结束输输入。也可以利利用SQL缓冲冲区进行行PL//SQL块的编编辑和运运行,或或利用语语句文件件进行PL/SQL块块的编辑辑和运行行。2.1..3操操作界界面2.2..2SQL语言的的语法结结构2.2..1SQL语言的的主要功功能3.2SQL基本本语法通过SQL语句句,程序序员或数数据库管管理员((DBA)可以以做如下下的主要要工作::(1)建建立数据据库的表表格,包包括设置置表格所所可以使使用之空空间。(2)改改变数据据库系统统环境设设置。(3)针针对某个个数据库库或表格格,授予予用户存存取权限限。(4)对对数据库库表格建建立索引引值。(5)修修改数据据库表格格结构((新建、、删除或或是修改改表格字字段)。。(6)对对数据库库进行数数据的新新建。(7)对对数据库库进行数数据的删删除。(8)对对数据库库进行数数据的修修改。(9)对对数据库库进行数数据的查查询。2.2..2SQL语言的的语法结结构SQL语语句是针针对关系系型数据据库所建建立出来来的语法法叙述,,所以SQL在在这类数数据库中中所发挥挥的功能能非常的的强,SQL的的语句不不多,而而且其语语法也相相对较简简单。归归纳起来来,共有有六大类类:1.第一一类———属性词词(Predicates))2.第二二类———声明((Declaration))3.第三三类———条件子子句(Clause))4.第四四类———运算符符(Operator)5.第五五类———函数((Function))6.第六六类———SQL语句((Statement)2.3..2复复合查查询2.3..1基基本查查询2.3数数据查查询语言言(DQL)2.3..3集集合函函数1.DQL的基基本结构构2.SELECT语语句的格格式SELECT[[distinct字字段列表表][table.字字段名]][字段段名as别别名][*][[集合函函数(字字段名))]FROM表名名1[[,....][WHERE....]][GROUPBY....]][HAVING....][ORDERBY....]]2.3..1基基本查查询3.SELECT中的的条件语语句(1)FROM条件件子句SELECTfieldlist(可以以使用算算术运算算符(++--*//)))FROMtableexpression(2)WHERE条条件子句句SELECTfieldlistFROMtableexpressionWHEREcriteria(后后副:where子句句中的运运算符))(3)“*”,DISTINCT属性词用用法SELECT[[*||DISTINCT]]FROMtable

(4)ORDERBY条件子句句SELECTfieldlistFROMtableWHEREselectcriteriaORDERBYfield[ASC||DESC][[,field2[ASC||DESC][[,....]]](5)GROUPBY条条件子句句SELECTfieldlistFROMtableWHEREcriteriaGROUPBYgroupfieldlist(6)HAVING条件子句句SELECTfieldlistFROMtableWHEREselectcriteriaGROUPBYgroupfieldlistHAVINGgroupcriteriawhere子句句中的运运算符::(1)比比较运算算符:>><<<=>>===<<>(2)范范围运算算符:[[NOT]Between………..and(3)列列表运算算符:[[NOT]IN(expressionlistvalue))(4)模模式匹配配运算符符like__,%%(5)NULL运运算符符:isnotnull(6)逻逻辑运算算符:andornot((not要要与其他他两个共共同使用用)例如:WHERE((type==''business''ORtype==''psychology'))ANDNOTadvance>>55004.注意事事项(1)字字段名之之间可以以进行算算术运算算,例如如:(字段名名1*字字段名2)/3(2)查查询语句句可以嵌嵌套,例例如:SELECT………FROM表表名1WHERE字段段1in(SELECT……FROM表名1,表名名2,………WHERE条件件1WHERE条件件2);;(3)查查询结果果集的排排序操作作,默认认的排序序是升序序ASC,降序序是DESC。。1.连接查询询连接可以以在SELECT语语句的FROM子句或或WHERE子子句中建建立,在在FROM子句句中指出出连接时时有助于于将连接接操作与与WHERE子子句中的的搜索条条件区分分开来。。这样就就可以将将多个表表中的数数据进行行有条件件的查询询:select**fromtablename1,,tablename2,,…whereexpre2.3..2复复合查询询2.联合查询询UNION运算算符可以以将两个个或两个个以上SELECT语语句的查查询结果果集合合合并成一一个结果果集合显显示,即即执行联联合查询询。UNION的语法法格式为为:select__statementUNION[[ALL]selectstatement[UNION[[ALL]selectstatement][……n]3,外联联接查询询:左外连接接查询::leftjoin右外连接接查询::rightjoin全外连接接查询::fulljoin条条件的的指定用用on4,内连连接查询询:第一种::在from后后直接添添加表名名,中间间用逗号号隔开;;第二种::使用““join””连接接,条条件的指指定用““on””5,自连连接:就是将同同一个表表其不同同的别名名,使他他在逻辑辑上成为为两张表表1.统计计字段值值的数目目函数COUNT()用用来统计计一个表表中有多多少条记记录。Count(distinct/**字段段名称))注意:函数COUNT()没没有指定定任何字字段。这这个语句句计算表表中所有有记录所所数目,,包括有有空值的的记录。。因此,,不需要要指定要要被计算算的特定定字段。。2.计算算字段的的平均值值函数AVG())可以返返回一个个字段中中所有值值的平均均值。注意:函数AVG())只能对对数值型型字段使使用。这这个函数数在计算算平均值值时也忽忽略空值值。2.3..3集合合函数3.计算算字段值值的和计算字段段值的和和使用函函数SUM())。注意:函数SUM())的返回回值代表表字段purchase_amount中中所有值值的总和和。4.返回回最大值值或最小小值函数MAX())和函数数MIN()分分别用于于返回最最大值和和最小值值。注意:函数MIN())返回一一个字段段的所有有值中的的最小值值。如果果字段是是空的,,函数MIN(()返回回空值。。2.4.2DELETE语语句2.4..1INSERT语句2.4数数据操操纵语言言(DML)2.4.3UPDATE语语句1.INSERT语语句格式式INSERT语语句用于于往数据据表里插插入记录录。(1)插入单条条记录的的语句格格式为::INSERTINTOtablename(target.field1,,target.field2,....))VALUES((value1,value2,....))、(2)同时插入入多条记记录的语语句格式式为:INSERTINTOtablename((target.field1,target..field2,………)SELECT((source.field1,,source.field2,………)FROMtableexpression2.4.1INSERT语语句2.注意事项项(1)字字符串类类型的字字段值必必须用单单引号括括起来,,例如::’GOODDAY’’。(2)如如果字段段值里包包含单引引号需要要进行字字符串转转换,把把它替换换成两个个单引号号‘‘‘。(3)字字符串类类型的字字段值超超过定义义的长度度会出错错,最好好在插入入前进行行长度校校验。(4)日日期字段段的字段段值可以以用当前前数据库库的系统统时间SYSDATE,精确确到秒。。(5)INSERT时时如果要要用到从从1开始始自动增增长的序序列号,,应该先先建立一一个序列列号。(6)在在添加数数据时可可以使用用转换函函数添加加指定的的数据类类型。有to__char())to_date()to_number())1.DELETE语句句格式DELETE语语句删除除数据表表里的记记录。用用DELETE语句删删除的记记录,无无法再复复原,所所以条件件设置一一定要正正确。DELETE语语句格式式为:DELETE[[tablename]FROMtableexpressionWHEREcriteria2.4.2DELETE语语句2.注意事项项(1)删删除记录录并不能能释放Oracle里里被占用用的数据据块表空空间。它它只把那那些被删删除的数数据块标标成unused。(2)如如果确实实要删除除一个大大表里的的全部记记录,可可以用TRUNCATE语句句,它可可以释放放占用的的数据块块表空间间,其语语句格式式为:TRUNCATETABLE表表名;(3)此此操作不不可回退退。UPDATE语语句通通过条件件的限制制来修改改特定的的数据。。UPDATE语句格格式为::UPDATEtablenameSETnewvalue[FROMtableexpression]]WHEREcriteria;DML语语句对对表都加加上了行行级锁,,确认完完成后,,必须加加上事物物处理结结束的语语句COMMIT才能能正式生生效,否否则改变变不一定定写入数数据库里里。如果果想撤回回这些操操作,可可以用语语句ROLLBACK复原。。2.4.3UPDATE语语句2.5..2ALTER语语句2.5.1CREATE语语句2.5数数据定定义语言言(DDL)2.5..3DROP语句句2.5.4TRUNCATE语句句1.表的的建立表是存储储用户数数据的基基本结构构。建立表主主要指定定义下列列信息::列定义完整性约约束2.5.1CREATE语语句字段数据据类型::字符型::1、char((n)):定长长字符串串长度度1~20002、varchar2(n)):变变长字符符串长长度1~~40003、nchar(n)):定长长字符串串长度度1~10004、nvarchar2(n)变长长字符串串长度度1~10005、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)):存4Gunicode的字字符数据据(1)建建立一个个新表的的语句格格式可以利用用CREATETABLE语句,,来建立立一个全全新的表表,但前前提是::数据库库必须已已经存在在。语句句格式为为:CREATETABLEtablename(field1type[(size)][[index1],field2type[((size)]][index2],,....,nultifieldindex[,,....])[constraint约约束名]]primarykey(列名名)[constraint约约束名]]primarykey(列名名):不不重复,,不能有有null值可以被外外键引用用,一个个表中只只能有一一个主键键[constraint约约束名]]unique((列名)):字段段中的数数据不能能重复,,可以被被外键引引用。[constraint约约束名]]foreignkey(列名名)references主键键表(主主键列))中的数数据必须须来自于于主键或或者是唯唯一约束束列数据据。[constraint约约束名]]check(检查查表达式式)[constraint约约束名]]default((默认认值)得得到到系统时时间:sysdate(2)注意事项项①创建表表时要把把较小的的不为空空的字段段放在前前面,可可能为空空的字段段放在后后面。②创建表表时可以以用中文文的字段段名,但但最好还还是用英英文的字字段名。。③创建表表时可以以给字段段加上默默认值,,例如DEFAULTSYSDATE。。这样每每次插入入和修改改时,不不用程序序操作这这个字段段都能得得到动作作的时间间。④创建表表时可以以给字段段加上约约束条件件。例如如不允许许重复UNIQUE,,主键PRIMARYKEY。2.表索引的的建立索引是一一种数据据库对象象,他他是表和和蔟相联联系的结结构,能能够是与与表相关关的SQL语句句执行更更迅速,,能够快快速定位位要查询询的信息息,他对对查询结结果每影影响,但但可以提提高查询询速度,,对于在在表或聚聚集的索索引列上上的每一一值将包包含一项项,为行行提供直直接的快快速存取取。在下下列情况况下,Oracle可可利用索索引改进进性能::按指定定的索引引列的值值查找行行。按索引引列的顺顺序存取取表。注意:建立表的的主键时时候的约约束可以以自动建建索引primarykey----------唯一一性索引引unique----------唯一一性索引引表索引的的建立主主要采用用的是CREATEINDEX语语句。这这个命令令是对一一个已存存在的表表建立索索引,语语句格式式为:CREATE[[UNIQUE]INDEXindexnameONtablename(field1[ASC|DESC],field2[[ASC|DESC]],....)3.视图图的建立立视图是一一个逻辑辑表,它它允许操操作者从从其它表表或视图图存取数数据,视视图本身身不包含含数据。。视图所所基于的的表称为为基表。。引入视图图有下列列作用::提供附附加的表表安全级级,限制制存取基基表的行行或/和和列集合合。隐藏数数据复杂杂性。为数据据提供另另一种观观点。促使Oracle的的某些操操作在包包含视图图的数据据库上执执行,而而不在另另一个数数据库上上执行。。建立视图图的语句句格式为为:CREATEVIEWviewname(字字段列表表)ASSELECTtable1.field1,……,table2.field1……FROMtable1,table2…….;Withreadonly4.同义词的的建立同义词为为表、视视图、序序列、存存储函数数、包、、快照或或其它同同义词的的另一个个名字。。使用同同义词为为了安全全和方便便。对某某一对象象建立同同义词可可有下列列好处::引用对对象不需需指出对对象的持持有者。。引用对对象不需需指出它它所位于于的数据据库。为对象象提供另另一个名名字。建立同义义词使用用的语句句格式为为:CREATESYNONYMsymnon__nameFOR[[username.]tablename;1.ALTER语句句格式用ALTER语语句,可可以修改改表、索索引,或或对视图图的字段段重新设设计。语语句格式式为:ALTERTABLEtablename{ADD(COLUMNfieldtype[((size)]]|CONSTRAINTmultifiedindex}}|DROP{{COLUMNfield|CONSTRAINTindexname}}2.5.2ALTER语句句2.ALTER语句的的具体用用法(1)在在表的后后面增加加一个字字段,例例如为::ALTERTABLE表表名名ADD(("BOOK_SHU"VARCHAR2((10)))(2)修修改表里里字段的的定义描描述,例例如为::ALTERTABLE表表名MODIFY(("BOOK__NAME“NOTNULL)(3)给给表里的的字段加加上约束束条件,,语句格格式为::ALTERTABLE""SCOTT""."ZHOU1"ADD((CONSTRAINT""ZHUJIAN""PRIMARYKEY(book__name)))修改表名名称:rename旧旧表名名to新表表名修改列的的属性时时,需要要注意以以下几条条:1、可以以增加列列的宽度度或数字字的精度度。2、减少少列的宽宽度时,,列的取取值要大大于列值值范围。3、当数数据类型型被修改改时,列列值必须须为空使用DROP语语句,可可以删除除表,索索引,视视图,同同义词,,过程,,函数,,数据库库链接等等。可以以恢复,,DROP语句句的格式式为:DROP{TABLEtable|INDEXindexONtable}例如:droptablebiao2.5.3DROP语句使用TRUNCATE语句,,可以清清空表里里的所有有记录,,保留表表的结构构。TRUNCATE语句的的格式为为:TRUNCATEtabl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论