SQL語句整理1

2022-06-17 15:24:10 字數 1893 閱讀 2534

//case 的用法,以及as 

select

case regtype when

1then'月卡

'when

0then'周卡

'when

2then

'季度卡

'when

3then'年卡

'else

'未知卡型別

'endas'

卡型別'

from sl_register_info

left join用法

left

join

關鍵字語法

select

column_name(s)

from

table_name1

left

join

table_name2

on table_name1.column_name=

table_name2.column_name

注釋:在某些資料庫中,

left

join 稱為 left

outer

join。

在使用left join時,on和where條件的區別如下:

1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時表生成好後,再對臨時表進行過濾的條件。這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

擴充套件:right join,full join,inner jion

full則具有left和right的特性的並集

inner jion沒這個特殊性(返回交集,相當於where)

關鍵原因就是left join,right join,full join的特殊性,不管on上的條件是否為真都會返回left或right表中的記錄,full則具有left和right的特性的並集。而inner jion沒這個特殊性,則條件放在on中和where中,返回的結果集是相同的。

1、sql select distinct 語句

在表中,可能會包含重複值。這並不成問題,不過,僅僅列出不同(distinct)的值。

語法:select distinct 列名稱 from 表名稱

1selectdistinctcompanyfromorders

選擇滿足條件的第一條記錄

select  english from graduate_phrase where packid=1 and levelid=1 limit 0,1

注意:不能是limit 1,1(返回第二條),也不能是limit 0,0 (什麼也不返回)

此外,還可以使用按記錄順序查詢的方法:

select  min(rowid), english from graduate_phrase where packid=1 and levelid=1

在此,rowid是系統自動新增的主關鍵字(不重複且非空),結果中自然多了第一列,再設法過濾掉即可。

選擇滿足條件的最後一條記錄

select  max(rowid), english from graduate_phrase where packid=1 and levelid=1

實在沒有發現存在相關的關鍵字能夠實現目的,於是結果中自然多出的第一列,還需要再設法過濾掉。

sql語句整理

建立表 create table teacher id int 11 not null auto increment,teaname varchar 10 not null,varchar 10 not null,course varchar 10 not null,primary key id e...

sql語句整理

mysql 命令大全 1 修改主鍵id的遞增預設值 alter table tablename auto increment 100000 2 將表重新命名 alter table oldtablename rename to newtablename 3 為表新增新的字段 alter table ...

常用sql語句整理

a 判斷資料庫是否存在 if exists select from sys.databases where name 庫名 刪除資料庫 drop database 庫名b 判斷要建立的表名是否存在 if exists select from dbo.sysobjects where id objec...