SQL回忆录

SQL分类: 
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) 
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) 
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)


数据控制语句(DML) 

1.插入数据

         INSERT INTO 表名(字段1,字段2) VALUES(值1,值2)

         复制表和内容:

          INSERT INTO 表名(字段1,字段2) SELECT(字段1,字段2) FROM 另外的表名

        只复制表结构:

         INSERT INTO 表名(字段1,字段2) SELECT(字段1,字段2) FROM 另外的表名 WHERE 1<>1

         日期字段的值可以用当前数据库的系统时间SYSDATE,精确到秒或者用字符串转换成日期型函数TO_DATE('2013-11-12','YYYY-MM-DD')    YYYY-MM-DD HH24:MI:SS

          字符串类型必须用单引号括起来,最大的可操作长度小于或等于4000个单字节。如果要插入更长的字符串,请考虑字段用的CLOB类型。

          INSERT时如果要用到1形始自动增长的序列号,应该先建立一个序列号。

          CREATE SEQUENCE 序列号名称 INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE.INSERT 语句插入时,这个字段的值为: 序列号名称.NEXTVAL

2.DELETE

     DELETE FROM 表名 WHERE 条件

     删除记录并不能释放ORACLE里被占用的数据块空间,它只把那些被删除的数据块标成UNUSED.如果一定要删除一个大表里面的全部记录,可以用:TRUNCATE 表名

     删除重复记录

     DELETE FROM 表名 WHERE 主键 NOT IN (SELECT MAX(ID) FROM 表名 GROUP BY 字段1,字段2....)


3.UPDATE

     UPDATE 表名 SET 字段名 字段1=值1 WHERE 条件。

数据定义(DDL)

1.CREATE

    创建数据库

      CREATE DATABASE 数据库名

    删除数据库

      DROP DATABASE 数据库名

    创建表

     CREATE TABLE 表名(

     字段名,类型, 约束

     字段名,类型,约束

      )

    删除表

    DROP TABLE 表名


2.ALTER

       改变表的名称

       ALTER TABLE 表名1 TO 表名2

       在表的后面加一个字段

      ALTER TABLE 表名 ADD 字段名 字段名描述

      修改一个字段

     ALTER TABLE 表名 MODIFY 字段名 字段名描述

      在表的一个字段上加一个约束条件

      ALTER TABLE 表名 ADD CONSTRAINT 约束名字 PRIMARY KEY(字段名)

      ALTER TABLE 表名 ADD CONSTRAINT 约束名字 UNIQUE(字段名)

       把表放在内存空间

      ALTER TABLE 表名 CACHE;

      ALTER TABLE 表名 NOCACHE;

      创建主键

      ALTER TABLE 表名 ADD PRIMARYKEY(字段名)

      删除主键

      ALTER TABLE 表名 DROP PRIMARYKEY(字段名)

3. DROP

      删除表和它所有的约束条件

      DROP TABLE 表名 CASCADE CONSTRAINTS;

4. TRUNCATE 清空表的记录并保留结构

     TRUNCATE 表名。

三 查询

     SELECT 字段1,字段2 FROM 表1,表2 WHERE 条件

     字段可以带入函数。 count(*), MIN(字段名),AVG(字段名),DISTINCT(字段名),TO_CHAR(DATA字段名,'YYYY-MM-DD HH24:MI:SS')

 字查询

    SELECT 字段1,字段2 FROM 表名 WHERE 字段 IN (SELECT 字段 FROM 表名)

    SELECT 字段1,字段2 FROM 表名 WHERE 字段 IN(1,2,3)

嵌套查询

     SELECT 字段1,字段2 FROM 表1,表2

    查询从10到15的记录

     SELECT TOP 5 * FROM (SELECT TOP 15 * FROM 表名 ORDER BY 主键 ASC ) 表别名 ORDER BY 主键 DESC.


 集合操作

    并集 UNION(去掉重复记录),UNION ALL(不去掉重复记录),差集团MINUS,交集 INTERSECT

分组查询

     SELECT 字段名,字段名2 FROM 表名 GROUP BY 字段名1 HAVING 条件

连接

    JOIN:如果表中有至少一个匹配,则反回行。

    LEFT JOIN:即使表中没有匹配,也从左表返回所有的行。

     RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行。

     FULL JOIN:只要其中一个表中存在匹配。


四   常用数据对象

索引

      CREATE INDEX 索引名 ON 表名(字段1,字段2.)

       ALTER INDEX 索引名 REBUILD;

       一个表的索引最好不要超过三个,最好用单字段索引.

视图

      CREATE VIEW 视图名 AS SELECT ... FROM ...

      ALTER VIEW 视图名 COMPILE;

同义词

       CREATE SYNONYM 同义词名 FOR 表名 

       CREATE SYNONYM  同义词名 FOR 表名@数据库链接名。

      


 

     



      


转载于:https://my.oschina.net/zookeeper/blog/184228

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值