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语言的特点 在Oracle数据库中创建、存储、更新、检索和维护数据;SQL语句由关键字、表名、字段名、变量名及表达式等构成;SQL语言是面向集合的描述性非过程化的4GL。二、SQL语言共分为五大类:数据查询语言DQL(SELECT)数据操纵语言DML(INSERT、UPDATE、DELETE)数据定义语言
2、DDL(CREATE、ALTER、DROP)事务控制语言(COMMIT、ROLLBACK)数据控制语言DCL(GRANT、REVOKE)。,三、SQL语言的基本语法 SQL语言的语法比较简单,类似于英文语法,说明如下:SQL语句一般由主句和从句组成,主句表示主要功能;从句表示条件和限定;在关键字、变量名、字段名、表名等之间用一个以上 的空格或逗号分隔;语句不分大小写(查询的数据内容除外);一条语句可写在一行或多行上;每条语句已分号(;)结束。例:Select spbm,spmc,xsje from T_SPML where xsjg=100;-主句 从句,四、SQL基本数据类型 常量 数值常量
3、、字符常量 数值型Number 整数型、浮点数 字符型Char、Varchar2 固定长、可变长 日期型Date DD-MM月-YY(MM=112)长字符型Long 长字符串(32767)布尔型Boolean 真(TRUE)、假(FALSE)描述格式:number(m,n)char(n)varchar2(n)Date long(n)Boolean例:number(6,2)char(8)varchar2(20)long(1000),五、SQL基本运算符,2.2 SQL*Plus概述,Oracle的SQL*Plus是标准SQL的一个扩展集,除了符合SQL标准的语句外,它还提供了一些Oracle 的
4、特定的外加语句。SQL*Plus是用户和数据库服务器之间的友好字符接口。用户可以在SQL*Plus窗口中编写程序,实现数据的处理和控制等多种功能。SQL*Plus可以用来生成报表、控制屏幕显示和打印输出格式。,菜单方式SQL*Plus的启动 在【开始】菜单的【程序】中运行Oracle for NT/Windows 98组的SQL*Plus程序。弹出登录窗口,要求输入用户名、口令和主机字符串。主机字符串是数据库的别名。SQL*Plus连接到主机字符串所对应的数据库。,2.2.1 SQL*Plus的启动和关闭,命令行方式启动(DOS方式启动SQL*Plus。)(1)单击运行菜单命令,打开运行对话框
5、。(2)在“打开”文本框中输入sqlplus,或输入sqlplus 用户名/密码。c:sqlplus scott/tiger主机字符串(3)输入SQL命令,在命令的结尾处输入一个“;”号,然后按回车。,SQL*Plus的关闭在使用完SQL*Plus后,一定要正确关闭会话。正确关闭会话可以确保会话使用的数据库资源释放,以便数据库的其他用户访问。(1)直接关闭窗口。(2)在SQL提示符后键入并执行EXIT命令,窗口自动关闭。,SAVE该命令将当前的命令行保存到操作系统的文件中。格式:SAVE filename.ext其中:filename:你将把缓冲区中的内容存入到操作系统目录的文件名。ext:若
6、使用文件后缀,缺省的文件后缀为SQL。,2.2.2 SQL*Plus常用编辑命令,GET 该命令将操作系统的目录下的命令文件读到缓冲区(但不执行)。格式:GET filename.ext其中:filename:希望加载到SQL缓冲区的文件名。ext:文件的扩展名,缺省为 SQL.,EDIT该命令为调用操作系统的编辑指定文件或缓冲区的内容。格式:EDIT filename.ext 其中:如果EDIT后面没有跟文件名,则编辑SQL缓冲区中的内容,编辑中所做的改变均存入缓冲区。,RUN 或/该命令运行指定的文件。LIST 可以用 LIST 命令来列出当前SQL缓冲区中的一行或多行命令语句 格式:LI
7、ST 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 以下的屏幕显示内容存储到test.lst文件中。SPOOL
8、 off 结束屏幕显示内容输出到文件中。,配置会话环境 一般在SQL下进行SQLPLUS 操作,都需要进行必要的环境设置才能完成我们所需要的输出。所有环境的设置由 SET命令加相应的环境变量来完成。下面是常用的环境设置:ARRAYSIZE(读取的行数)格式:SET ARRAYSIZEintegerAUTOCOMMIT(自动提交)格式:SET AUTO COMMIT OFF|ON LINESIZE(行显示宽度)格式:SET Linesize80|integerPAGESIZE(页行数)格式:SET pagesize 24|integer,2.3 数据库对象创建和操纵 2.3.1 创建表 表是关系
9、数据库中最重要的数据库对象,其他数据库对象的创建以及各种操作都是围绕表进行。本章所有例子以下列学生选课系统为例。学生(学号,姓名,年龄,性别,专业名)课程(课程号、课程名,任课教师)选课(学号,课程号,成绩),定义语句格式,一、CREATE TABLE(,),例1:Create Table TT_spml(spbm char(6),spmc varchar2(20),spgg varchar2(15),spcd varchar2(10),jldw char(2),ghdw char(6),xsjg number(8,2),zfrq char(8);,二、描述语句,Oracle 对SQL最重要的
10、改进之就是增加了描述(describe)命令,使用describe命令,用户可以快速掌握表及其中所有表列的概要。describe命令可以列出存储的PL/SQL包中所有的过程和这些过程所使用的输入/输出参数。【例3】显示表商品目录及供货单位的结构:DESCribe T_spml DESCribe T_ghdwml,三、复制表 Create Table 表名1 as select 列名1,列名2 from 表名2;例:Create Table TT_spml as select*from t_spml;修改表的列名 Create Table TT_ghdwml(ghdw,dwmc)as selec
11、t dwbm,dwmc from t_ghdwml;四、删除表 Drop Table 语句 格式:Drop table 表名 Cascade Constraint 语句;Cascade Constraint当要删除的表与与其他表有 约束条件时同时删除约束条件。例:Drop 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;六、
12、数据完整性与约束条件 列级格式:Create table 表名(列名1 类型 约束条件,列名2 类型 约束条件,);表级格式:Create table 表名(列名1 类型,列名2 类型,)约束条件;约束条件:Check 检验取值的正确性;Not Null 不允许取空值;Unique 值不允许重复;Primary 设定为主键,值不允许重复和空;References设定为外键,建立表的主从关系,外键的值必须存在于主表的主键中;,主键 Primary Key 主键有两个功能:能够唯一地标示每一行;主键不能是空值。主键有两个规则:每个表只能有一个主键;主键可以是一列或多列组合。例1:Create Ta
13、ble 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),-考试成绩 Constraint pk Primary Key(kcbm,xsbh);Constraint pk 可以省略。Insert into T_xscjb Values(1101,20031101,85,90
14、);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 char(1)Not Null);Insert Into T_xsml values(20031101,王强,M);,唯一 Unique 唯一功能:表中所有的行限定唯一的列(列组)不能重复。例:Create Table T_xsml(x
15、sbh 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 char(4),-课程编码 xsbh char(8),-学生编号 pscj varchar2(6),-平时成绩 kscj varchar2(6),-考试成绩 Constraint uq Unique(kcbm,xsbh);Constraint uq 可以省略。,检查 Check 检查功能:列
16、只能取指定范围的值,可以有多个限定。例1:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8)Not null,xsxb char(1),Constraint ck Check(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
17、_kcml,-T_kcml 课程目录的主键 pscj varchar2(6),kscj varchar2(6);Create Table T_kcml(kcbm char(4)Primary key,kcmc varchar2(20);,Create Table T_xscjb(xsbh char(8),zybm char(3),-专业编码 kcbm char(4),pscj varchar2(6),kscj varchar2(6),Foreign Key(zybm,kcbm)References T_kcml(zybm,kcbm);-课程目录Create Table T_kcml(zybm
18、char(3),zymc varchar(20),kcbm char(4),primary key(zybm,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 ta
19、ble Course(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(-成绩表 Stu_no char(8),Cou_no char(3),Grade number(3),CONSTRAINT pk_sc PRIMARY KEY(Stu_no,Cou_no),FOREIGN KEY(Stu_no)REFERENCES Student(Stu_no),FOREIGN
20、 KEY(Cou_no)REFERENCES Course(Cou_no),CHECK(grade is null)or(grade between 0 and 100);,2.3.2 修改表结构,语法ALTER TABLE user.tableADD(colum_element|table_constraint,column_element|table_constraint.)MODIFY(column_element,column_element.)DROP CONSTRAINT constraint.PCTFREE integerPCTUSED integerINITRANS integ
21、erMAXTRANS integerSTORAGE storageBACKUP,格式:Alter Table 表名 Add|Modify|Drop Column 修改内容;例:增加新列 Alter Table T_ghdwml add swdm char(15);修改列 Alter Table T_ghdwml modify swdm number(15);删除列 Alter Table T_ghdwml Drop Column swdm;,例:对已经存在的学生表增加一新的列(入学成绩)alter table student add stu_score number(3);例:删除学生表中的入
22、学成绩 alter table student drop column stu_score;,2.3.3 插入语句,INSERT 语句可以完成对表、视图进行数据插入。INSERT INTO user.tabledb_link(column1,column2.)VALUES(express1,express2.);Insert into 表名1()Select From 表名2;例:插入1条记录于student表中。INSERT into Student VALUES(20026101,李勇,20,男,计算机);,2.3.4 修改数据语句,使用UPDATE语句修改表中的数据 格式:UPDATE
23、table SET column=value,column=value WHERE condition;使用UPDATE语句应注意以下事项:如果要更新数值列,则可以直接提供数值;如果要更新字符列或日期列,则数据必须用单引号。当更新数据时,数据必须要与列的数据类型匹配。当更新数据时,数据必须要满足约束规则,,例:将student表中学号为20026101的学生年龄修改为18。update student set stu_age=18 where stu_no=20026101;将所有选修课程号为a01的成绩加2分,所有选修课程号为a03的成绩加3分。其余加1 分。update sc set gr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 讲义 第二
链接地址:https://www.31ppt.com/p-6513585.html