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

下载本文档

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

文档简介

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语句的的格式为为:TRUNCATEtable表表名;2.5.4T

温馨提示

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

评论

0/150

提交评论