ORACLE数据库最基础教程剖析

上传人:我*** 文档编号:136541507 上传时间:2020-06-28 格式:PPT 页数:39 大小:3.67MB
返回 下载 相关 举报
ORACLE数据库最基础教程剖析_第1页
第1页 / 共39页
ORACLE数据库最基础教程剖析_第2页
第2页 / 共39页
ORACLE数据库最基础教程剖析_第3页
第3页 / 共39页
ORACLE数据库最基础教程剖析_第4页
第4页 / 共39页
ORACLE数据库最基础教程剖析_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《ORACLE数据库最基础教程剖析》由会员分享,可在线阅读,更多相关《ORACLE数据库最基础教程剖析(39页珍藏版)》请在金锄头文库上搜索。

1、ORACLE数据库教程,你可以不知道,但是绝对不能不懂,-毁人不倦语录,2007年5月,SQL基础知识篇,SQL-001,简介,SQL(Structured Query Language)结构化查询语言是IBM公司San Jose实验室为System R而设计的查询语言,后被国际标准化组织(ISO)批准作为关系数据库语言的国际标准。 SQL目前遵循的是1992年标准,即SQL-92。 各数据库厂家对SQL-92标准均有扩充,扩充部分不能完全保证数据库之间的兼容性。,我的热情会灼伤一些人,但我是无心的,-毁人不倦语录,简介,SQL可以分为: (基础篇只介绍前两种) DML:数据操作语言(Data

2、 Manipulation Language): select, insert, update, delete, (其他:truncate) DDL:数据定义语言 (Data Definition Languages): create, drop , alter,(其他:rename) DCL数据控制语言:grant、revoke、set role 事务控制:commit、rollback、savepoint(其他:lock table、set constraint(s)、set transaction) 审计控制:audit、noaudit 系统控制:alter system 会话控制:al

3、ter session 其他语句:comment(添加注释)、explain plan、analyze、validate、call,如果我的话没有错,一定是你听错了,-毁人不倦语录,DDL数据定义语言,CREATE(建立) ALTER(修改) DROP(删除),无知者无畏,无畏者不一定无知,-毁人不倦语录,语言描述约定, :表示可选项 | :表示选择项 CREATE:粗体表示关键字或必输项 Table_name:斜体表示用户输入项 创建 :蓝色表示说明,如果1+12,我相信那说的是团队的力量,-毁人不倦语录,DDL数据定义语言,CREATE-创建用户 CREATE USER user_name

4、 IDENTIFIED BY password DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESPACE tablespace_name; 创建user_name用户,密码为password,使用tablespace_name表空间,如果没有指定表空间,默认表空间为system表空间。Oracle10g有用户默认表空间设置。 建议在创建用户时一定要指名表空间。,先有鸡,还是先有蛋,这么重要的问题还是留给鸡去考证吧,-毁人不倦语录,DDL数据定义语言,CREATE-创建数据表 CREATE TABLE table_name( Column1

5、datatype defaultnot null primary key, , constraint key_name primary key(column_list) using index tablespace tablespace_name )tablespace tablespace_name; Datatype 是数据类型:varchar2(x), number(x,x), date, integer等。 Not null非空限制,如果不写表示可为空。 Primary key主键,可以紧跟在字段后,或在最后使用constraint。 未指名表空间,数据表建立在用户默认的表空间中。,笔

6、只留下了痕迹,人用笔留下了文化,-毁人不倦语录,DDL数据定义语言,CREATE-创建索引 CREATE UNIQUE INDEX index_name ON table_name(column_list)tablespace tablespace_name; 在table_name表上按照column_list建立索引,索引名为index_name,索引保存在tablespace_name表空间中。 UNIQUE:唯一性索引。,-毁人不倦语录,你可以不听,但是我一定要说,DDL数据定义语言,ALTER-修改表 ALTER TABLE table_name RENAME TO new_tabl

7、e_name; 将table_name表名修改为new_table_name。 ALTER TABLE table_name ADD(column1 datatype default not null,column2 datatype default not null, . ); 在table_name表中增加column1,column2.字段,追加到字段最后。 ALTER TABLE table_name MODIFY(column1 datatype default not null|nullable,column2 datatype default not null|nullable,

8、 . 修改table_name表字段属性,长度或精度不能小于原长度或精度。 ALTER TABLE table_name DROP COLUMN column_name; 删除table_name表中的column_name字段。 ALTER TABLE table_name RENAME COLUMN old_name TO new_name; 修改table_name表的old_name字段名为new_name。 ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(column_list); 建立table_name表的主键,

9、主键名pk_name,主键字段column_list。 ALTER TABLE table_name DROP CONSTRAINT pk_name; 删除table_name表的pk_name主键。一个表只能有一个主键,-毁人不倦语录,不说了,再说就该吐了。补充一点:站着进,扶着出也许是侃爷的最高境界吧,DDL数据定义语言,DROP -删除 DROP TABLE table_name; 删除table_name表。 DROP INDEX index_name; 删除index_name索引。 删除主键(强制限制的一种),使用ALTER TABLE table_name DROP CONSTR

10、AINT pk_name;,-毁人不倦猜想,数据库和水库之间不可能没有区别,DML小结,从ALTER和CREATE及DROP语法数量再一次证明需求是易变的。 如果增加表字段,并要求字段的排列位置,可以使用: CREATE TABLE temp_table_name AS SELECT * FROM table_name; DROP TABLE table_name; CREATE TABLE table_name(column); INSERT INTO table_name VALUES(column_list) (SELECT column_list1 FROM temp_table_na

11、me); DROP TABLE table_name; 需要注意的是,删除表后,表中的索引也被删除,所以,在执行上述操作前要保留好表的索引脚本。 这里没有写DROP DATABASE的语法,如果大家想要尝试删除数据库的话,最好在专家的指导下进行!,人间本无对错,因为计算机才有了对与错,-毁人不倦语录,DDL数据操作语言,SELECT(查询) INSERT(插入) UPDATE(更新) DELETE(删除),如果老天能再给我一次机会,我一定做甲方,-毁人不倦语录,DDL数据操作语言,SELECT-查询 SELECT ALL | DISTINCT ON ( expression , . ) * |

12、 expression AS output_name , . INTO TEMPORARY | TEMP TABLE new_table FROM from_item , . WHERE condition GROUP BY expression , . HAVING condition , . UNION | INTERSECT | EXCEPT ALL select ORDER BY expression ASC | DESC | USING operator , . FOR UPDATE OF class_name , . LIMIT count | ALL OFFSET | , sta

13、rt 后续查询范例均以oracle中的SCOTT/TIGER用户表为例,如果失眠了,就看看上面的语法吧,-毁人不倦语录,DDL数据操作语言,SCOTT/TIGER表介绍 DEPT部门定义表,DEPTNO是主键 EMP职工表,EMPNO主键,DEPTNO外键关联DEPT 其他表没有数据或没有关系,不在这里介绍,将复杂问题简单化是修养,将简单问题复杂化是艺术,综合起来叫艺术修养,-毁人不倦语录,DDL数据操作语言,SELECT-单表查询 查询表中所有字段和所有记录,select后跟* 表示所有字段 SELECT * FROM DEPT; 查询指定字段,在select后跟查询的字段名列表,字段间用,

14、隔开 SELECT DEPTNO, DNAME FROM DEPT; 条件查询,FROM后面使用WHERE,在WHERE中可以使用=, , ,=, 10 GROUP BY DEPTNO, DNAME HAVING COUNT(*) 0 ORDER BY DEPTNO DESC; -ORDER BY 是对返回的结果进行排序,所以必须放在最后一句。 SELECT DEPTNO, DNAME FROM SCOTT.DEPT WHERE DEPTNO 10 GROUP BY DEPTNO, DNAME HAVING COUNT(*) 0 ORDER BY 1 DESC; -结果同第一个查询,字段位置从

15、1开始。,我是来做项目的,不是来创造奇迹的,-毁人不倦语录,DDL数据操作语言,SELECT-FOR UPDATE 锁等待查询。当查询结果中有被锁定记录时等待解锁,当记录被解锁后返回结果集,并锁定返回的记录。如果FOR UPDATE后跟NOWAIT,遇到锁后不等待,返回错误。 ORACLE使用记录级锁定,当事物被提交或回滚后锁定被释放。 死锁问题 当两个事物以不同的顺序同时更新多个表时就会发生死锁(对牛),解决死锁的途径是手工杀掉死锁的进程或者重新启动数据库。因此,在使用事物更新多表数据时一定要小心,使用面向对象的方法封装数据操作可以在很大程度上解决死锁问题。,没有经过严格测试的软件开发进度报告不看也罢,-毁人不倦语录,DDL数据操作语言,SELECT-子查询 查询语句可以嵌套,任何产生数值的地方都可以使用子查询。 在查询条件中使用子查询时,当子查询返回多个结果时只能使用IN。 查询顺序是先执行被依赖的底层查询,然后一层层向上查。 子查询只被执行一次。 查询平均工资最低的部门情况 SELECT DEPTNO, AVG(SAL) FROM SCOTT.EMP GROUP BY DEPTNO HAVING AVG(SAL) = (SELECT MIN(AVG(SAL) FROM SCOTT.EMP GROUP BY DEPTNO); -子查询先查

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号