SQL

--索引,相当于目录 (提升查找的速度)
--insert,update用索引时反而降低效率
s_employees
--给S_EMPLOYEES表name列加上索引,在查找的时候效率变高
create index IND_A on S_EMPLOYEES (NAME);
--
SELECT * FROM s_employees WHERE name='李鸿'
----############################################----
--在sys用户下赋给qianiqna用户一个dba权限,否则因权限不够无法创建视图
grant dba to qianqian
--视图:在数据库中真实存在的虚表(虚表:只能对其进行查看不能进行修改)
--创建视图(一旦创建视图,以后要执行视图后面的代码可以直接执行视图来代替)
CREATE or replace view AA as
SELECT SE.NAME "姓名",
       SE.ID   "员工工号",
       SW.WAGE "员工工资",
       AA.D    "部门负责人",
       AA.A    "部门负责人工资",
       AA.C    "部门"
  FROM S_EMPLOYEES SE,
       S_WAGE SW,
       S_DEP SD,
       (SELECT SW1.WAGE A, SD1.DEPID B, SD1.DEPNAME C, SE1.NAME D
          FROM S_WAGE SW1, S_DEP SD1, S_EMPLOYEES SE1
         WHERE SD1.DEPMANGER = SW1.ID
           AND SE1.ID = SW1.ID) AA
 WHERE SE.ID = SW.ID
   AND SE.DEPID = SD.DEPID
   AND SW.WAGE > AA.A
   AND SD.DEPNAME IN ('销售部', '运营部')
   AND AA.B = SD.DEPID;
--视图代替代码块的执行(效果一样)
SELECT * FROM aa
----############################################----
--Sequences用法(序列)~可以稳定的存储
--必须先执行一次Nextval(自增长)
SELECT abc.Nextval FROM dual;
--记录增长到哪一个值
SELECT abc.CURRVAL FROM dual
----############################################----
--删除序列
DROP SEQUENCE abc
--删除视图
DROP VIEW AA
--删除索引
DROP INDEX IND_A 


--回闪(可恢复DELETE或UPDATE执行后的数据)
--不可恢复truncate删除的数据
--不可恢复加索引的列
--恢复仅仅是可以看到前段时间对应表里的内容
--但当前表里任然没有该内容
--总结(只要改变了表的结构就无法对该表进行回闪)
--回闪(SYSDATE的单位是天)
SELECT * FROM s_employees AS OF TIMESTAMP SYSDATE - 10/1440 WHERE name='李鸿'
SELECT * FROM s_employees WHERE name='李鸿'
DELETE FROM s_employees WHERE name='李鸿'
--
insert into s_employees SELECT * FROM s_employees AS OF TIMESTAMP SYSDATE - 10/1440 WHERE name='李鸿'
--#####################--
--DDL(数据定义语言)
CREATE TABLE LYH(name varchar2(10),age number(6,2),gender varchar(3))
SELECT * FROM LYH
ALTER table LYH add ID varchar(6)
ALTER table LYH DROP COLUMN ID
COMMENT ON table LYH IS'刘彦亨' 
COMMENT ON COLUMN LYH.name IS '姓名'
--truncate虽然是清空了表里的内容,但从结构上来看是属于DDL语言
TRUNCATE TABLE LYH
--#####################-- 
1、DCL
数据库控制语言,全称是Data Control Language
关键字类型:grant、remove
2、DDL
数据库定义语言,全称是Data Definition Language
关键字类型:Creat
3、DML
数据库操作语言,全称是Data Manipulation Language 
关键字类型:Insert、Delete、Update
4、DQL
数据库查询语言,全称是Data Query Language
关键字类型:Select
--#####################-- 
--DML(数据操作语言)
--多个语句要想同时执行必须在每个语句后面加上封号
INSERT INTO  LYH Values('张小娟',22,'女')
INSERT INTO  LYH Values('刘彦亨',22,'男')
INSERT INTO  LYH Values('刘启梦',22,'女')
INSERT INTO  LYH Values('雷江鹏',22,'男')
INSERT INTO  LYH Values('曲孟雷',22,'女')
--如果要插入结果集要不不使用values要不就使用value
Insert INTO  LYH SELECT * FROM LYH
Insert INTO  LYH value(SELECT * FROM LYH)
--使用union插入多个结果集
Insert INTO  LYH SELECT * FROM LYH
union SELECT * FROM LYH
--修改表中的数据
UPDATE LYH SET gender='男' WHERE name='曲孟雷'
--查找表中的数据
SELECT * FROM LYH WHERE name='曲孟雷'
--删除表中的数据
DELETE FROM LYH  WHERE name='曲孟雷'

--备份表
CREATE TABLE LH AS SELECT * FROM LYH
SELECT * FROM LH

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章