ORACLE数据库教程-SQL基础知识篇.ppt
《ORACLE数据库教程-SQL基础知识篇.ppt》由会员分享,可在线阅读,更多相关《ORACLE数据库教程-SQL基础知识篇.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ORACLE数据库教程数据库教程20072007年年5 5月月SQL-001SQL-001简介简介SQLSQL(Structured Query LanguageStructured Query Language)结构化查询)结构化查询语言是语言是IBMIBM公司公司San JoseSan Jose实验室为实验室为System RSystem R而设而设计的查询语言,后被国际标准化组织(计的查询语言,后被国际标准化组织(ISOISO)批)批准作为关系数据库语言的国际标准。准作为关系数据库语言的国际标准。SQLSQL目前遵循的是目前遵循的是19921992年标准,即年标准,即SQL-92SQL-
2、92。各数据库厂家对各数据库厂家对SQL-92SQL-92标准均有扩充,扩充部标准均有扩充,扩充部分不能完全保证数据库之间的兼容性。分不能完全保证数据库之间的兼容性。简介简介SQLSQL可以分为可以分为:(基础篇只介绍前两种)(基础篇只介绍前两种)DML:DML:数据操作语言(数据操作语言(Data Manipulation LanguageData Manipulation Language):select,insert,update,delete,(select,insert,update,delete,(其他:其他:truncate)truncate)DDL:DDL:数据定义语言数据定义
3、语言 (Data Definition LanguagesData Definition Languages):create,drop,alter,(create,drop,alter,(其他:其他:rename)rename)DCLDCL数据控制语言:数据控制语言:grantgrant、revokerevoke、set role set role 事务控制:事务控制:commitcommit、rollbackrollback、savepointsavepoint(其他:(其他:lock lock tabletable、set constraint(s)set constraint(s)、se
4、t transactionset transaction)审计控制:审计控制:auditaudit、noauditnoaudit系统控制:系统控制:alter system alter system 会话控制:会话控制:alter session alter session 其他语句:其他语句:commentcomment(添加注释)、(添加注释)、explain planexplain plan、analyzeanalyze、validatevalidate、call call DDL数据定义语言数据定义语言CREATE(CREATE(建立建立)ALTER(ALTER(修改修改)DROP(D
5、ROP(删除删除)语言描述约定语言描述约定 :表示可选项:表示可选项|:表示选择项:表示选择项CREATE:粗体表示关键字或必输项:粗体表示关键字或必输项Table_name:斜体表示用户输入项:斜体表示用户输入项创建创建 :蓝色表示说明:蓝色表示说明DDL数据定义语言数据定义语言CREATE-CREATE-创建用户创建用户CREATE USER user_name IDENTIFIED BY password DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESPACE tablespace_name;创建创建user_nameuser_na
6、me用户,密码为用户,密码为passwordpassword,使用,使用tablespace_nametablespace_name表空间,如果没有指定表空间,默认表表空间,如果没有指定表空间,默认表空间为空间为systemsystem表空间。表空间。Oracle10gOracle10g有用户默认表空间设置。有用户默认表空间设置。建议在创建用户时一定要指名表空间。建议在创建用户时一定要指名表空间。DDL数据定义语言数据定义语言CREATE-CREATE-创建数据表创建数据表CREATE TABLE table_name(Column1 datatype defaultnot null prim
7、ary key,constraint key_name primary key(column_list)using index tablespace tablespace_name)tablespace tablespace_name;Datatype Datatype 是数据类型是数据类型:varchar2(x),number(x,x),date,integer:varchar2(x),number(x,x),date,integer等。等。Not nullNot null非空限制,如果不写表示可为空。非空限制,如果不写表示可为空。Primary keyPrimary key主键,可以紧跟在
8、字段后,或在最后使用主键,可以紧跟在字段后,或在最后使用constraintconstraint。未指名表空间,数据表建立在用户默认的表空间中。未指名表空间,数据表建立在用户默认的表空间中。DDL数据定义语言数据定义语言CREATE-CREATE-创建索引创建索引CREATE UNIQUE INDEX index_name ON table_name(column_list)tablespace tablespace_name;在在table_nametable_name表上按照表上按照column_listcolumn_list建立索引,索引名为建立索引,索引名为index_nameinde
9、x_name,索引保存在,索引保存在tablespace_nametablespace_name表空间中。表空间中。UNIQUE:UNIQUE:唯一性索引。唯一性索引。DDL数据定义语言数据定义语言ALTER-ALTER-修改表修改表ALTER TABLE table_name REMAME TO new_table_name;将将table_nametable_name表名修改为表名修改为new_table_namenew_table_name。ALTER TABLE table_name ADD(column1 datatype default not null,column2 datat
10、ype default not null,.);在在table_nametable_name表中增加表中增加column1,column2.column1,column2.字段,追加到字段最后。字段,追加到字段最后。ALTER TABLE table_name MODIFY(column1 datatype default not null|nullable,column2 datatype default not null|nullable,.修改修改table_nametable_name表字段属性,长度或精度不能小于原长度或精度。表字段属性,长度或精度不能小于原长度或精度。ALTER T
11、ABLE table_name DROP COLUMN column_name;删除删除table_nametable_name表中的表中的column_namecolumn_name字段。字段。ALTER TABLE table_name RENAME COLUMN old_name TO new_name;修改修改table_nametable_name表的表的old_nameold_name字段名为字段名为new_namenew_name。ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(column_list);建立建立
12、table_nametable_name表的主键,主键名表的主键,主键名pk_namepk_name,主键字段,主键字段column_listcolumn_list。ALTER TABLE table_name DROP CONSTRAINT pk_name;删除删除table_nametable_name表的表的pk_namepk_name主键。主键。一个表只能有一个主键一个表只能有一个主键DDL数据定义语言数据定义语言DROP-DROP-删除删除DROP TABLE table_name;删除删除table_nametable_name表。表。DROP INDEX index_name;删
13、除删除index_nameindex_name索引。索引。删除主键(强制限制的一种),使用删除主键(强制限制的一种),使用ALTER TABLE table_name DROP CONSTRAINT pk_name;DML小结小结从从ALTER和和CREATE及及DROP语法数量再一次证明需语法数量再一次证明需求是易变的。求是易变的。如果增加表字段,并要求字段的排列位置,可以使用如果增加表字段,并要求字段的排列位置,可以使用:1.CREATE TABLE temp_table_name AS SELECT*FROM table_name;2.DROP TABLE table_name;3.CR
14、EATE TABLE table_name(column);4.INSERT INTO table_name VALUES(column_list)(SELECT column_list1 FROM temp_table_name);5.DROP TABLE table_name;需要注意的是,删除表后,表中的索引也被删除,所以,在执行上述需要注意的是,删除表后,表中的索引也被删除,所以,在执行上述操作前要保留好表的索引脚本。操作前要保留好表的索引脚本。这里没有写这里没有写DROP DATABASE的语法,如果大家想的语法,如果大家想要尝试删除数据库的话,最好在专家的指导下进行!要尝试删除数据
15、库的话,最好在专家的指导下进行!DDL数据操作语言数据操作语言SELECT(查询查询)INSERT(插入插入)UPDATE(更新更新)DELETE(删除删除)DDL数据操作语言数据操作语言SELECT-查询查询SELECT ALL|DISTINCT ON(expression,.)*|expression AS output_name ,.INTO TEMPORARY|TEMP TABLE new_table FROM from_item,.WHERE condition GROUP BY expression,.HAVING condition,.UNION|INTERSECT|EXCEPT
16、 ALL select ORDER BY expression ASC|DESC|USING operator ,.FOR UPDATE OF class_name,.LIMIT count|ALL OFFSET|,start 后续查询范例均以后续查询范例均以oracleoracle中的中的SCOTT/TIGERSCOTT/TIGER用户表为例用户表为例DDL数据操作语言数据操作语言SCOTT/TIGER表介绍表介绍DEPTDEPT部门定义表,部门定义表,DEPTNODEPTNO是主键是主键EMPEMP职工表职工表,EMPNO,EMPNO主键,主键,DEPTNODEPTNO外键关联外键关联DE
17、PTDEPT其他表没有数据或没有关系,不在这里介绍其他表没有数据或没有关系,不在这里介绍DDL数据操作语言数据操作语言SELECT-单表查询单表查询查询表中所有字段和所有记录,查询表中所有字段和所有记录,select后跟后跟*表示所有字段表示所有字段SELECT*FROM DEPT;查询指定字段,在查询指定字段,在select后跟查询的字段名列表,字段间用后跟查询的字段名列表,字段间用,隔开隔开SELECT DEPTNO,DNAME FROM DEPT;条件查询,条件查询,FROM后面使用后面使用WHERE,在,在WHERE中可以使中可以使用用=,=,10GROUP BY DEPTNO,DNA
18、MEHAVING COUNT(*)0ORDER BY DEPTNO DESC;-ORDER BY 是对返回的结果进行排序,所以必须放在最后一句。是对返回的结果进行排序,所以必须放在最后一句。SELECT DEPTNO,DNAMEFROM SCOTT.DEPTWHERE DEPTNO 10GROUP BY DEPTNO,DNAMEHAVING COUNT(*)0ORDER BY 1 DESC;-结果同第一个查询,字段位置从结果同第一个查询,字段位置从1开始。开始。DDL数据操作语言数据操作语言SELECT-FOR UPDATE锁等待查询。当查询结果中有被锁定记录时等待解锁,当记录锁等待查询。当查
19、询结果中有被锁定记录时等待解锁,当记录被解锁后返回结果集,并锁定返回的记录。如果被解锁后返回结果集,并锁定返回的记录。如果FOR UPDATE后跟后跟NOWAIT,遇到锁后不等待,返回错误。,遇到锁后不等待,返回错误。ORACLE使用记录级锁定,当事物被提交或回滚后锁定被释放。使用记录级锁定,当事物被提交或回滚后锁定被释放。死锁问题死锁问题当两个事物以不同的顺序同时更新多个表时就会发生死锁(对当两个事物以不同的顺序同时更新多个表时就会发生死锁(对牛),解决死锁的途径是手工杀掉死锁的进程或者重新启动数牛),解决死锁的途径是手工杀掉死锁的进程或者重新启动数据库。因此,在使用事物更新多表数据时一定要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLE 数据库 教程 SQL 基础知识
限制150内