Oracle数据库讲义(第二章).ppt
《Oracle数据库讲义(第二章).ppt》由会员分享,可在线阅读,更多相关《Oracle数据库讲义(第二章).ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 讲 义Oracle数据库2009.3李明俊第二章 SQL语言基础本章内容本章内容2.1 SQL概述2.2 SQL*Plus概述2.3 数据操纵SQL2.4 查询2.5 小结事务处理2.1 SQL概述SQL(Structure Query Language)SQL(Structure Query Language)语言是数据库的核心语。语言是数据库的核心语。一、一、SQLSQL语言的特点语言的特点 在在OracleOracle数据库中创建、存储、更新、检索和维护数据;数据库中创建、存储、更新、检索和维护数据;SQL SQL语句由关键字、表名、字段名、变量名及表达式等构成;语句由关键字、表名、字
2、段名、变量名及表达式等构成;SQL SQL语言是面向集合的描述性非过程化的语言是面向集合的描述性非过程化的4GL4GL。二、二、SQLSQL语言共分为五大类:语言共分为五大类:数据查询语言数据查询语言DQLDQL(SELECT SELECT)数据操纵语言数据操纵语言DMLDML(INSERTINSERT、UPDATEUPDATE、DELETEDELETE)数据定义语言数据定义语言DDLDDL(CREATECREATE、ALTERALTER、DROPDROP)事务控制语言(事务控制语言(COMMITCOMMIT、ROLLBACKROLLBACK)数据控制语言数据控制语言DCLDCL(GRANTG
3、RANT、REVOKEREVOKE)。)。三、三、SQLSQL语言的基本语法语言的基本语法 SQL SQL语言的语法比较简单,类似于英文语法,说明如下:语言的语法比较简单,类似于英文语法,说明如下:SQL SQL语句一般由主句和从句组成,主句表示主要功能;语句一般由主句和从句组成,主句表示主要功能;从句表示条件和限定;从句表示条件和限定;在关键字、变量名、字段名、表名等之间用一个以上在关键字、变量名、字段名、表名等之间用一个以上 的空格或逗号分隔;的空格或逗号分隔;语句不分大小写语句不分大小写(查询的数据内容除外查询的数据内容除外);一条语句可写在一行或多行上;一条语句可写在一行或多行上;每条
4、语句已分号每条语句已分号(;)结束。结束。例:例:Select spbm,spmc,xsje from T_SPML where xsjg=100;Select spbm,spmc,xsje from T_SPML where xsjg=100;-主句主句 从句从句四、四、SQLSQL基本数据类型基本数据类型 常量常量 数值常量、字符常量数值常量、字符常量 数值型数值型Number Number 整数型、浮点数整数型、浮点数 字符型字符型CharChar、Varchar2 Varchar2 固定长、可变长固定长、可变长 日期型日期型Date DD-MMDate DD-MM月月-YY(MM=11
5、2)-YY(MM=112)长字符型长字符型Long Long 长字符串长字符串(32767)(32767)布尔型布尔型Boolean Boolean 真真(TRUE)(TRUE)、假、假(FALSE)FALSE)描述格式:描述格式:number(m,n)char(n)varchar2(n)number(m,n)char(n)varchar2(n)Date long(n)Boolean Date long(n)Boolean例:例:number(6,2)char(8)varchar2(20)long(1000)number(6,2)char(8)varchar2(20)long(1000)五、S
6、QL基本运算符 种类种类 运算符运算符 含含 义义算术运算符 *指数 *、/乘、除+、-、|加、减、连接 关系运算符 或!=不等于 、=、sqlplus scott/tiger主机字符串(3)输入SQL命令,在命令的结尾处输入一个“;”号,然后按回车。SQL*Plus的关闭在使用完SQL*Plus后,一定要正确关闭会话。正确关闭会话可以确保会话使用的数据库资源释放,以便数据库的其他用户访问。(1)直接关闭窗口。(2)在SQL提示符后键入并执行EXIT命令,窗口自动关闭。SAVE该命令将当前的命令行保存到操作系统的文件中。格式:SAVE filename.ext其中:filename:你将把缓冲
7、区中的内容存入到操作系统目录的文件名。ext:若使用文件后缀,缺省的文件后缀为SQL。2.2.2 SQL*Plus常用编辑命令GET 该命令将操作系统的目录下的命令文件读到缓冲区(但不执行)。格式:GET filename.ext其中:filename:希望加载到SQL缓冲区的文件名。ext:文件的扩展名,缺省为 SQL.EDIT该命令为调用操作系统的编辑指定文件或缓冲区的内容。格式:EDIT filename.ext 其中:如果EDIT后面没有跟文件名,则编辑SQL缓冲区中的内容,编辑中所做的改变均存入缓冲区。RUN 或/该命令运行指定的文件。LIST 可以用 LIST 命令来列出当前SQL
8、缓冲区中的一行或多行命令语句 格式:LIST n|n m|n*|n LAST|*|*n|*LAST|LAST其中:n 列出第n行,n m 列出n到m行,n*列出第n行到当前行,n LAST 列出第n行到最末行,*列出所有行,*n 列出当前行到第n行,*LAST列出当前行到最末行,LAST 列出最末行SPOOLSPOOL 命令可以实现将屏幕所出现的一切信息记录到操作系统的文件中直到SPOOL OFF为止。格式:SPOOL filename.ext|OFF其中:filename:输出(spool)的文件名.ext文件的后缀。缺省的后缀是LST(或LIS)。SPOOL test 以下的屏幕显示内容存
9、储到test.lst文件中。SPOOL off 结束屏幕显示内容输出到文件中。配置会话环境 一般在SQL下进行SQLPLUS 操作,都需要进行必要的环境设置才能完成我们所需要的输出。所有环境的设置由 SET命令加相应的环境变量来完成。下面是常用的环境设置:ARRAYSIZE(读取的行数)格式:SET ARRAYSIZEintegerAUTOCOMMIT(自动提交)格式:SET AUTO COMMIT OFF|ON LINESIZE(行显示宽度)格式:SET Linesize80|integerPAGESIZE(页行数)格式:SET pagesize 24|integer 2.3 数据库对象创建
10、和操纵 2.3.1 创建表 表是关系数据库中最重要的数据库对象,其他数据库对象的创建以及各种操作都是围绕表进行。本章所有例子以下列学生选课系统为例。学生(学号,姓名,年龄,性别,专业名)课程(课程号、课程名,任课教师)选课(学号,课程号,成绩)定义语句格式一、一、CREATE TABLE(,)例例1:Create Table TT_spml(:Create Table TT_spml(spbm char(6),spmc spbm char(6),spmc varchar2(20),varchar2(20),spgg varchar2(15),spcd varchar2(10),spgg var
11、char2(15),spcd varchar2(10),jldw char(2),ghdw char(6),jldw char(2),ghdw char(6),xsjg number(8,2),zfrq char(8);xsjg number(8,2),zfrq char(8);二、描述语句Oracle Oracle 对对SQLSQL最重要的改进之就是增加了描述最重要的改进之就是增加了描述(describedescribe)命令,使用)命令,使用describedescribe命令,用户可命令,用户可以快速掌握表及其中所有表列的概要。以快速掌握表及其中所有表列的概要。describedescr
12、ibe命令可以列出存储的命令可以列出存储的PL/SQLPL/SQL包中所有的过程和这包中所有的过程和这些过程所使用的输入些过程所使用的输入/输出参数。输出参数。【例【例3 3】显示表商品目录及供货单位的结构:】显示表商品目录及供货单位的结构:DESCribe T_spml DESCribe T_spml DESCribe T_ghdwml DESCribe T_ghdwml三、复制表三、复制表 Create Table 表名1 as select 列名1,列名2 from 表名2;例:例:Create Table TT_spml as select*from t_spml;修改表的列名修改表的
13、列名 Create Table TT_ghdwml(ghdw,dwmc)as select dwbm,dwmc from t_ghdwml;四、删除表四、删除表 Drop Table Drop Table 语句语句 格式:格式:Drop table Drop table 表名表名 Cascade Constraint Cascade Constraint 语句;语句;Cascade Constraint Cascade Constraint当要删除的表与与其他表有当要删除的表与与其他表有 约束条件时同时删除约束条件。约束条件时同时删除约束条件。例:例:Drop Table TT_spml;Dr
14、op Table TT_spml;Create Table TT_ghdwml as Select dwbm,dwmc from t_ghdwml;Drop Table TT_ghdwml;五、表的重命名五、表的重命名 Rename 语句语句 格式:格式:Rename 原表名原表名 To 现表名现表名;例:例:Rename TT_ghdwml to ghdwml;六、六、数据完整性与约束条件数据完整性与约束条件 列级格式:列级格式:Create table 表名表名 (列名列名1 1 类型类型 约束条件约束条件,列名列名2 2 类型类型 约束条件约束条件,);,);表级格式:表级格式:Crea
15、te table 表名表名 (列名列名1 1 类型,列名类型,列名2 2 类型,类型,)约束条件约束条件;约束条件:约束条件:Check 检验取值的正确性;检验取值的正确性;Not Null 不允许取空值;不允许取空值;Unique 值不允许重复;值不允许重复;Primary 设定为主键,值不允许重复和空;设定为主键,值不允许重复和空;References设定为外键,建立表的主从关系,设定为外键,建立表的主从关系,外键的值必须存在于主表的主键中;外键的值必须存在于主表的主键中;主键主键 Primary Key 主键有两个功能:主键有两个功能:能够唯一地标示每一行;能够唯一地标示每一行;主键不能
16、是空值。主键不能是空值。主键有两个规则:主键有两个规则:每个表只能有一个主键;每个表只能有一个主键;主键可以是一列或多列组合。主键可以是一列或多列组合。例例1:Create Table T_xsml -学生目录表学生目录表 xsbh char(8)Primary Key,xsxm varchar2(8),sfzh char(18),xsxb char(1);Create Table T_xscjb(-学生成绩表学生成绩表 kcbm char(4),-课程编码 xsbh char(8),-学生编号 pscj varchar2(6),-平时成绩 kscj varchar2(6),-考试成绩 Con
17、straint pk Primary Key(kcbm,xsbh);Constraint pk 可以省略。可以省略。Insert into T_xscjb Values(1101,20031101,85,90);Insert into T_xscjb Values(1101,85,90)Insert into T_xscjb Values(1101,20031102,85,90);非空非空 Not Null 非空功能:列不能是空值。非空功能:列不能是空值。例例1:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8),xsxb
18、char(1)Not Null);Insert Into T_xsml values(20031101,王强,M);唯一唯一 Unique 唯一功能:表中所有的行限定唯一的列唯一功能:表中所有的行限定唯一的列(列组列组)不能重复。不能重复。例:例:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8)Not null,sfzh char(18)Unique);Insert Into T_xsml values(20031101,王强王强,230102198401010001);Create Table T_xscjb(kcbm
19、char(4),-课程编码 xsbh char(8),-学生编号 pscj varchar2(6),-平时成绩 kscj varchar2(6),-考试成绩 Constraint uq Unique(kcbm,xsbh);Constraint uq 可以省略。可以省略。检查检查 Check 检查功能:列只能取指定范围的值,可以有多个限定。检查功能:列只能取指定范围的值,可以有多个限定。例例1:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8)Not null,xsxb char(1),Constraint ck Check(
20、xsxb in(M,W);Constraint ck 可以省略。可以省略。Insert Into T_xsml values(20031101,王强,M);外键外键 Foreign Key 外键功能:限定两个表之间的数据关系。外键功能:限定两个表之间的数据关系。外键可以一列或多列。外键可以一列或多列。例:例:Create Table T_xscjb(xsbh char(8),kcbm char(4)References T_kcml,-T_kcml 课程目录的主键主键 pscj varchar2(6),kscj varchar2(6);Create Table T_kcml(kcbm char
21、(4)Primary key,kcmc varchar2(20);Create Table T_xscjb(xsbh char(8),zybmzybm char(3),-专业编码专业编码 kcbmkcbm char(4),pscj varchar2(6),kscj varchar2(6),Foreign Key(zybm,kcbmzybm,kcbm)References T_kcml(zybm,kcbmzybm,kcbm);-课程目录课程目录Create Table T_kcml(zybmzybm char(3),zymc varchar(20),kcbmkcbm char(4),primar
22、y key(zybm,kcbmzybm,kcbm);注意:在有多列外键时,所要关联表的主键必须是注意:在有多列外键时,所要关联表的主键必须是 相对应多列。相对应多列。【例1】在SAM用户下建立表Student,Course,SCSQL create table Student(Stu_no char(8),Stu_name varchar2(10)not null,Stu_age number(3),Stu_sex char(2),Stu_dept varchar2(20),CONSTRAINT pk_sno PRIMARY KEY(Stu_no);SQL create table Cours
23、e(Cou_no char(3),Cou_name varchar2(16)not null,Cou_pno char(3),Cou_teacher varchar2(10),CONSTRAINT pk_cno PRIMARY KEY(Cou_no);create table SC(-create table SC(-成绩表成绩表 Stu_no char(8),Stu_no char(8),Cou_no char(3),Cou_no char(3),Grade number(3),Grade number(3),CONSTRAINT pk_sc PRIMARY KEY(Stu_no,Cou_n
24、o),CONSTRAINT pk_sc PRIMARY KEY(Stu_no,Cou_no),FOREIGN KEY(Stu_no)REFERENCES Student(Stu_no),FOREIGN KEY(Stu_no)REFERENCES Student(Stu_no),FOREIGN KEY(Cou_no)REFERENCES Course(Cou_no),FOREIGN KEY(Cou_no)REFERENCES Course(Cou_no),CHECK(grade is null)or CHECK(grade is null)or (grade between 0 and 100)
25、;(grade between 0 and 100);2.3.2 修改表结构语法ALTER TABLE user.tableALTER TABLE user.tableADD (colum_element|table_constraintADD (colum_element|table_constraint ,column_element|table_constraint.),column_element|table_constraint.)MODIFY(column_element,column_element.)MODIFY(column_element,column_element.)D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 讲义 第二
限制150内