4. SQL Cookbook

2018-02-24 15:51 更新

SQL Cookbook

查找空值

查找空值切記不能用=操作, 會返回Empty Set

mysql> select * from emp where comm is null;

空值轉(zhuǎn)換為實際值返回

改變輸入的形式, 但并不改變表中的數(shù)據(jù)

coalesce()函數(shù)有1個或者多個參數(shù), comm非空時返回comm, null時返回0, 也可以用case語句判斷實現(xiàn)

mysql> select coalesce(comm, 0) from emp;

從一個表中查找與其他表不匹配的記錄

外連接

mysql> select d.* from dept d left outer join emp e    
    -> on (d.deptno = e.deptno) where e.deptno is null;

插入更新刪除

插入技巧

從一個表向另外的表中復(fù)制行

解決方案: 在insert語句后面緊跟一個用來產(chǎn)生索要插入行的查詢

mysql> create table dept_east(
    -> deptno int,
    -> dname  varchar(30),
    -> loc varchar(30));
mysql> insert into dept_east(deptno, dname, loc)
    -> select deptno, dname, loc from dept
    -> where loc in('new york', 'boston');

賦值表定義

只復(fù)制已有表的定義, 不復(fù)制其中的記錄, 創(chuàng)建表的時候, 使用一個不返回任何行的子查詢, where的條件時鐘為false

mysql> create table dept_2
    -> as
    -> select * from dept where 1 = 0;

修改技巧

mysql> update emp set sal = sal * 1.10 where deptno = 20;

刪除技巧

刪除所有記錄

mysql> delete from dept_2;
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號