oracle11g的基本SQL语句和函数.ppt
《oracle11g的基本SQL语句和函数.ppt》由会员分享,可在线阅读,更多相关《oracle11g的基本SQL语句和函数.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目标q掌握 Oracle 基本SQL语句 q掌握 Oracle 单值、分组函数q掌握 Oracle 多表查询、集合运算基本SQL 语句 qSQL 是 Structured Query Language(结构化查询语言)的首字母缩写词qSQL 是数据库语言,Oracle 使用该语言存储和检索信息q表是主要的数据库对象,用于存储数据q通过 SQL可以实现与 Oracle 服务器的通信SELECT ename FROM Emp;发送 SQL 查询Oracle 服务器enameBLAKESMITH ALLEN DAVID MARTIN发送命令输出到用户端用户SQL 简介 qSQL 支持下列类别的命令:
2、l数据定义语言(DDL)l数据操纵语言(DML)增删改查l事务控制语言(TCL)commit roll backl数据控制语言(DCL)数据定义语言数据定义语言 CREATEALTERDROP数据操纵语言数据操纵语言 INSERTSELECTDELETEUPDATE事务控制语言事务控制语言COMMITSAVEPOINTROLLBACK数据控制语言数据控制语言 GRANTREVOKEOracle 数据类型 q创建表时,必须为各个列指定数据类型q以下是 Oracle 数据类型的类别:qRAW/LONG RAW 图片换成二进制代码qLOB大对象类型(非常大的word文档等)数据类型数据类型字符数值日
3、期时间RAW/LONG RAWLOBOracle 数据类型字符数据类型字符数据类型CHARVARCHAR2LONGq 当需要固定长度的字符串时,使用 CHAR 数据类型。q CHAR 数据类型存储字母数字值。q CHAR 数据类型的列长度可以是 1 到 2000 个字节。q VARCHAR2数据类型支持可变长度字符串q VARCHAR2数据类型存储字母数字值q VARCHAR2数据类型的大小在1至4000个字节范围内q LONG 数据类型存储可变长度字符数据q LONG 数据类型最多能存储 2GBCreate table t1( a nchar(5); 支持Create table t2( a
4、 varchar(5); 支持 ,但是oracle今后会不支持varchar,使用varchar2更好。Create table t3( a number(3,2);Insert into t3 values(2.34444);Insert into t3 values(1.23);Insert into t3 values(23.3);Select * from t3;Create table t4( a number(3);Insert into t4 values(2.34444);Insert into t4 values(561.23);Select * from t4;Oracle
5、 数据类型q数值数据类型l可以存储整数、浮点数和实数l最高精度 38 位,范围:负的10的38次方到10的38次方。 q数值数据类型的声明语法:lNUMBER ( p, s)lP表示精度,S表示小数点的位数q日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒q主要的日期时间类型有:lDATE - 存储日期和时间部分,精确到整个的秒lTIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位lSelect sysdate from dual;lSelect to_char(sysdate,yyyymmdd hh24:mi:ss) from dual;lSelect t
6、o_char(sysytimestamp,yyyymmdd hh24:mi:ssxff6) from dual;Oracle 数据类型q RAW 数据类型用于存储二进制数据 (01010)q RAW 数据类型最多能存储 2000 字节q LONG RAW 数据类型用于存储可变长度的二进制数据q LONG RAW 数据类型最多能存储 2 GBLOBq LOB 称为“大对象”数据类型,可以存储多达 128TB 的非结构化信息,例如声音剪辑和视频文件等(LOB类型的容量从原来的4G增加到了最大128T)q LOB 数据类型允许对数据进行高效、随机、分段的访问BLOBCLOBBFILECLOB 即 C
7、haracter LOB(字符型LOB),它能够存储大量字符数据BLOB 即 Binary LOB(二进制 LOB),可以存储较大的二进制对象,如图形、视频剪辑和视频文件 将数据放到列中,但数据存取慢BFILE 即 Binary File(二进制文件),列中存放指针,它用于指向将二进制数据存储在数据库外部的操作系统文件中Oracle 数据类型qOracle 中伪列就像一个表列,但是它并没有存储在表中q伪列可以从表中查询,但不能插入、更新和删除它们的值q常用的伪列有ROWID和ROWNUMROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中
8、的一行ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数数据定义语言q数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象q用于操纵表结构的数据定义语言命令有:lCREATE TABLElALTER TABLElTRUNCATE TABLElDROP TABLE q 创建表Create table student(sno number(6), sname varchar2(20),birthday date);q 更改表的结构Alter table student add tele varchar2(11);Insert tele 12334556677888
9、q 显示表结构Desc student;q 修改表的属性,扩大tele的长度Alter table student modify tele varchar(5);q Alter table student modify tele varchar(11);l 注意从大范围到小范围改变时,如果表中数据存在超过小范围的数据,表是不能改变的q 删除某列l Alter table student drop column tele;q 插入数据l Insert into student values(1,A, 11-1月-01);l Insert into student values(2,A, 11-j
10、an-01); error q 日期的转换l Alter session set nls_date_format=yyyymmddl Select sysdate from dual;l Insert into student values(2,B,20110901);l select * from student;l 如果退出系统后,quit ; 格式又恢复原来的样子q 插入空值l Insert into student values(3,null, to_date(19980311,yyyy-MM-dd); hh mm sslinsert into student(sno,birthday
11、) values(l4,to_date(19880601,yyyy-MM-dd);l select * from student;q 查询信息为空的记录l Select * from student where sname = l Select * from student where sname = null; errorl Select * from student where sname = ;errorl Select * from student where sname is null; q 根据已有表的数据创建新的表l Create table student_new1 as se
12、lect * from student;l Desc student_new1;l Select * from student_new1;q 根据已有表的数据创建新的表的结构,不要数据l Create table student_new2 as select * from student where 12;l Desc student_new2;l Select * from student_new2;q 删除表l Truncate table student ;l Truncate本身包含了commit操作,应慎用l Delete table t2;l Delete 操作会写入日志,通过回滚
13、可以恢复数据rollback;l 后面必须要有commit操作l Drop table student_new1;q更新数据lUpdate student set name=AA where sno=3;q删除数据lDelete student where sno=1;qCountlSelect count(*) from student;lSelect count(*) from student where sname is not null;lSelect * from student where sname=a; A/字符是区分大小写的lSelect * from student whe
14、re upper(sname)=A; q单引号lUpdate student set sname=AB where sno=1; qSELECT DISTINCT sname FROM student;q % -l Select * from student where sname like A%;l Select * from student where sname like A-;l Update student set sname=张三 where sno=2;l Update student set sname=张三三 where sno=3;l Select * from stude
15、nt where sname like 张_;l Select * from student where length(sname)=2;l 软件2班 88;q Order byl Select * from student order by sno desc, sname;l Select * from student order by 1 desc, 2;l 1 和 2 代表结果集的第一、二列,q 别名l Selecet sno 学号, snmae “姓名”from student ;l Selecet sno “学 号”, snmae 姓名” from student ;l /如果学号中
16、间有空格,应加双引号q 首先创建表create table 成绩(sno number, km varchar2(13), score number);Insert into 成绩 values(1,语文,60);Insert into 成绩 values(1,数学,60);Insert into 成绩 values(1,英语,60);Insert into 成绩 values(2,语文,70);Insert into 成绩 values(2,数学,70);Insert into 成绩 values(3,英语,89);commit;q 每个学生的总分l Select sno, sum(scor
17、e) from 成绩 group by sno;q /涉及到分组,按学号有3组,但是每一组中各个学生有不同的科目成绩,不能显示出来,只能显示3各组共有的信息,如总分等。q 每个课程的平均成绩l select km, avg(score) from 成绩 group by km;q 平均成绩大于60的学生的学号 和 平均成绩l select km, avg(score) from 成绩 group by km having (avg(score) 60) ;GROUP BYqselect km, avg(score) from 成绩 group by km having (avg(score)
18、70) ;数据操纵语言 q数据操纵语言用于检索、插入和修改数据q数据操纵语言是最常见的SQL命令q数据操纵语言命令包括:qSELECTqINSERTqUPDATEqDELETEDML SELECT 命令 q利用现有的表创建表q语法: CREATE TABLE AS SELECT column_names FROM ;SQL CREATE TABLE newstudent AS SELECT * FROM student;SQL CREATE TABLE newstudent1 AS SELECT sno, sname FROM student;SQL CREATE TABLE newstude
19、nt2 AS SELECT * FROM student WHERE 1 = 2;DML SELECT 命令SQL SELECT DISTINCT sname FROM student;q选择无重复的行q在SELECT子句,使用DISTINCT关键字q使用列别名q为列表达式提供不同的名称q该别名指定了列标题SQL SELECT sno 学号, 2010-extract(year from birthday) “年 龄” -中间有空格,用“” FROM student;DML INSERT 命令q插入日期类型的值q日期数据类型的默认格式为“DD-MON-RR”q使用日期的默认格式q使用TO_DA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle11g 基本 SQL 语句 函数
限制150内