DCL DQL

*DCL(数据控制语言)  :GRANT  REVOKE
   #创建数据库用户
   CREATE USER 用户名@地址 IDENTIFIED BY '密码';
   #权限授予
   GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;
   #撤销权限
   REVOKE权限1, … , 权限n ON 数据库.* FROM 用户名;
   #查询用户权限
   SHOW GRANTS FOR 用户名;
   #修改用户密码
   UPDATE mysql.USER SET authentication_string=PASSWORD(密码) WHERE USER=账号 AND HOST=IP地址;
   FLUSH PRIVILEGES;


*DQL(数据查询语言): SELECT 
   SELECT 字段列表  FROM   表名
   [WHERE 条件语句]
   [ GROUP BY  分组字段]
   [ HAVING 分组条件 ]
   [ORDER BY 排序字段]   -DESC[降序] -ASC[升序(默认)]
   [LIMIT 偏移量,数量]

   注意: WHERE 条件语句  1.但是分组之前的条件 2.WHERE 后不能使用聚合函数
         HAVING 条件语句  1.分组后的条件   2.HAVING后面可以使用聚合函数

   聚合函数
   1.COUNT():统计
   2.SUM():求和
   3.MIN():最小值
   4.MAX():最大值
   5.AVG():平均值

   模糊查询
   LIKE:像...一样   匹配符[%:单个或者多个字符 _:单个字符]
   IN  :在...范围之内
   BETWEEN...AND...: 介于...之间

   多重IF
   SELECT `ename` '姓名',`sal` '薪水', 
   CASE 
    WHEN `sal` >= 2500 THEN '高工资'
    WHEN `sal` < 2500 AND `sal` > 1500 THEN '中等工资'
    ELSE '低工资'
   END '薪水情况'
   FROM `emp`;

  单独IF
  SELECT IF(`comm` IS NULL,0,`comm`) FROM `emp`;

*多表查询
   联合查询
   UNION:去除重复记录,例如:SELECT * FROM t1 UNION SELECT * FROM t2;
   UNION ALL:不去除重复记录,例如:SELECT * FROM t1 UNION ALL SELECT * FROM t2。

   连接查询
   -内连接
   INNER JOIN...ON...
   -外连接
     *左外连接
       LEFT [OUTER] JOIN .... ON....
     *右外连接
       RIGHT [OUTER] JOIN .... ON....


  自连接
  SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ... ;

      

你可能感兴趣的:(oracle,数据库)