zoukankan      html  css  js  c++  java
  • 常用经典SQL

    1.查询语句

      主要由 select 关键字完成

    2.DML语句(数据操作语言)

      主要由 insert、update、delete 三个关键字完成

      主要操作 表

      

    3.DDL语句(数据定义语言)

      主要由 creat、alter、drop、truncate 四个关键字完成

      操作数据库对象的语句

      数据库对象:表、数据字典、约束、视图、索引、函数、存储过程、触发器

    4.DCL语句(数据控制语言)

      主要由 grant、revoke 完成

    5.事物控制语句

      主要由 commit、rollback、savepoint 三个关键字完成

    ---------------------------------DDL----------------------------------

    1.创建表

    1.1 创建一张新表

      CREATE TABLE 表名 (

        字段名  字符类型(大小),

        字段名  字符类型(大小)

      )

    1.2 利用子查询复制表

      CREATE TABLE hehe

      AS

      SELECT * FROM user_if;

    2.修改表结构

      2.1 增加定义列

        ALTER TABLE hehe ADD

          hehe_id INT,

          hehe_name VARCHAR2(255)

        )

      2.2 修改定义列

        ALTER TABLE hehe MODIFY  hehe_id VARCHAR2(225) ;

      2.3 删除列

        ALTER TABLE hehe DROP hehe_name ;

      2.4 重命名列

        alert table  表名   rename  cloumn  旧名  to   新名

    3.删除表

      DROP TABLE 表名;

    4.清空表数据

      TRUNCATE  table   表名;

    ---------------------------------数据库约束----------------------------------

    1. 非空约束

     NOT NULL  确保指定列不允许为空

     hehe_id INT   NOT NULL  ( 为 hehe_id 字段 添加 非空约束)

     hehe_id   INT   NULL     ( 取消 非空约束 )

    2. 唯一约束  

     UNIQUE  保证指定列 或 指定列组合 不允许出现重复值(但可以出现多个null,因为在数据库中 null 不等于 null)

     2.1 建表时创建唯一约束

     CONSTRAINT  test_uniique  UNIQUE( hehe_id , hehe_name ) ;  ( 为 hehe_id , hehe_name 组合创建唯一约束)

       2.2 修改表示时 增加唯一约束

     ALTER TABLE hehe

     ADD UNIQUE ( hehe_id , hehe_name );

     2.3 修改时添加唯一约束(列级)

     ALTER TABLE hehe

     MODIFY  hehe_id  INT UNIQUE;

     2.4 删除约束

     ALTER TABLE hehe

     DROP  CONSTRAINT  hehe_id ;

     

    3. 主键

       PRIMARY KEY  主键相当于 非空约束 和 唯一约束

     3.1 列级创建 

     CREATE TABLE hehe

     hehe_id  INT  PRIMARY KEY;

     3.2 表级创建

     CREATE TABLE hehe

     CONSTRAINT test_primary_key PRIMARY  KEY ( hehe_id );

     3.3 组合主键

     CREATE TABLE hehe

     PRIMARY KEY ( hehe_id , hehe_name );

     3.4 删除主键约束

     ALTER TABLE hehe

     DROP PRIMARY KEY;

     3.5 表级 增加主键约束

     ALTER TABLE hehe

     ADD PRIMARY KEY ( hehe_id , hehe_name );

     3.6 列级 增加主键约束

     ALTER TABLE hehe

     MODIFY PRIMARY KEY  hehe_id INT PRIMARY KEY ;

    4. 外键

       FOREIGN KEY

     4.1列级外键约束

     CREATE  TABLE  teacher_table

     PRIMARY KEY ( teacher_id);

      

     ***

     CREATE  TABLE  student_table

     java_teacher INT REFERENCE teacher_table ( teacher_id );

    5. 检查

       CKECK

     CREATE  TABLE  check_test

     emp_salary INT

     CHECK (emp_salary > 0 )

    6. 单列约束

    7. 多列约束

    8. 建表的同时为相应的数据列指定约束

    9. 建表后创建,以修改表的方式来增加约束

    ---------------------------------索引----------------------------------

     CREATE INDEX emp_last_name_idx ON  表名 (列名[,列名])

    --创建唯一索引
    create UNIQUE index SEQUENCE_DEPTNO on CCCC_WORK(deptno)

    --自增长的序列索引

    CREATE SEQUENCE  "SEQUENCE_ENTER"   
    MINVALUE 1                   
    MAXVALUE 10000000
    INCREMENT BY 1
    START WITH 561
    CACHE 20
    NOORDER  NOCYCLE ;

    ---------------------------------注释----------------------------------

    comment on column 表名.字段名 is '注释';

    comment on column CCCC_WORK.uname is '姓名';

    ---------------------------------视图----------------------------------

    1. 创建视图

      CREATE OR REPLACE VIEW 视图名

      AS

      SELECT * FROM hehe

    2. 删除视图

      DROP  VIEW   视图名

    ---------------------------------DML----------------------------------

    1.增

      INSERT INTO teacher_table (teacher_name) VALUES ( '张三' );

      INSERT INTO teacher_table VALUES ( NULL,18 );

    2.改

      UPDATE  teacher_table  SET   teacher_name = '小花';

    3.删

      DELET  FROM  teacher_table  ;  ( 删除表中的所有数据 )

      DELET  FROM  teacher_table  WHERE  teacher_name = '小花'  ;  ( 按条件删除 )

     ---------------------------------函数----------------------------------

    1. 平均值

      AVG()

    2. 最大值

      MAX()

    3. 最小值

      MIN()

    4.求和

      SUM()

    5.计数

      COUNT()

    6.分组

      GROUP  BY

      GROUP BY ----HAVING---

    7.排序

      ORDER  BY

      7.1 升序(默认) exc

      7.2 降序  desc

     ---------------------------------多表链接查询----------------------------------

    1. 交叉连接

    2. 自然连接

    3. 左、右、全外连接

    4. 子查询

      IN

      NOT IN

      =

      =ANY

      ALL

    时间:

    从当前时间减去年龄,计算出生日期

    SELECT  to_char(add_months(SYSDATE, -12 * 34), 'yyyy') FROM dual;

    从当前时间减去出生日期计算年龄

    SELECT * FROM tblstudent WHERE stuage = to_char(add_months(SYSDATE,-1 * 1981 * 12),'yy')

  • 相关阅读:
    docker--docker介绍
    docker--虚拟化
    高级运维工程师的打怪升级之路
    mysql常用函数
    CentOS 7 下使用 Firewall
    51nod 1094 和为k的连续区间(map+前缀和)
    51nod 1092 回文字符串(dp)
    51nod 1062 序列中最大的数(打表预处理)
    51nod 1284 2 3 5 7的倍数(容斥原理+反面思考)
    51nod 1347 旋转字符串(思维好题)
  • 原文地址:https://www.cnblogs.com/cfb513142804/p/4224816.html
Copyright © 2011-2022 走看看