1、select(查詢) select簡單的查詢分為兩種 註:欄位也就是表結構中的列的名稱 第一種: select 欄位名 from 表名 此種查詢只列出你所需要查詢的欄位,要查詢多個欄位以“,”隔開 第二種: select * from 表名 * 的意思是查詢出此表的所有欄位 額外的內容:dist ...
以下案列以此表舉例
1、select(查詢)
select簡單的查詢分為兩種
註:欄位也就是表結構中的列的名稱
第一種:
select 欄位名 from 表名
此種查詢只列出你所需要查詢的欄位,要查詢多個欄位以“,”隔開
第二種:
select * from 表名
* 的意思是查詢出此表的所有欄位
額外的內容:distinct關鍵字
select distinct 欄位名 from 表名
給查詢的結果去重
2、insert(插入)
insert插入數據行(記錄)的兩種簡單實現方式
第一種:
insert into 表名 values(值1,值2...)
這種插入數據行的的值必須與表的欄位名一一對應,否則數據會插入失敗給出錯誤提示:
錯誤提示:Column count doesn't match value count at row 1
第二種:
insert into 表名(欄位名,欄位名...) values(值1,值2...)
顯而易見,這是指定欄位名來插入數據
3、update(更新(修改))
語法:
update 表名 set 欄位名 = 新值 where 欄位名 = 舊值
where 後面接條件,條件有多種多樣,後面我會一一說明。在這裡where的意思就是我要修改這個欄位名下的這個舊值,新值寫在set後面
4、delete(刪除)
語法:
delete from 表名 where 欄位名 = 值
根據欄位名找到值的這一行記錄就被刪除了
where(重點,條件語句)
如果你的語句中有條件,則在語句末尾加上where,再跟上你的條件。例如:
select * from 表名 where 欄位名 = 值
delete from 表名 where 欄位名 = 值
=, >, <, >=, <=, <>(不等於)都適用於where
where用法極其豐富,後面我會一一講解,這裡暫時給點簡單的例子
and 和 or(運算符)
and類似於java(不僅僅java)運算符的 &(與), or類似於 | (或) 。
AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來
and例子:
select * from 表名 where 條件1 and 條件2
查詢列出滿足條件1和條件2的結果
or例子:
select * from 表名 where 條件1 or 條件2
查詢列出滿足條件1或者條件2的結果(滿足其中一的都列出來)
order by(排序)
對結果進行排序
order by 寫在語句最後面,給結果集排序。
order by 列子:
select 欄位1,欄位2 from 表名 order by 欄位1 desc, 欄位2 asc
order by asc 升序 查詢出的結果升序
可以沒有order by 後面的關鍵字,那樣就預設asc(升序)
order by desc 降序 結果降序
用法大同小異,多種結果也可以多種排序,用","隔開
limit(規定返回的數目)
註意:mySQL使用的是limit來規定返回的數目,Oracle的語法是不一樣的
在你的select語句後面加上它,可以指定你查詢結果的記錄的條數
列子1:
select * from 表名 limit 2
查詢列出這張表的前2行的記錄
like與通配符
首先我們要知道什麼是通配符,以下就是sql中使用的通配符,但必須和like一起使用
% 替代一個或多個字元
_ 只代替一個字元
[charlist] 在字元列中的任何單一字元
[^charlist]
等價於
[!charlist] 不在字元列中的任何單一字元
%通配符:
select * from 表名 where 欄位名 like 'xx%'
查詢列出此欄位以xx開頭的記錄
select * from 表名 where 欄位名 like '%xx%'
查詢列出此欄位包含xx的記錄
_:
select * from 表名 where 欄位名 like '_xx'
查詢列出此欄位先以一個任意字元開頭,後面為xx的記錄
select * from 表名 where 欄位名 like '_x_x_'
查詢列出此欄位先以一個任意字元開頭,後面為x,又接一個任意字元,又接一個x,再接一個任意字元的記錄
[charlist]:
select * from 表名 where 欄位名 regexp '[abc]%'
查詢列出此欄位以a或b或c開頭的記錄,這裡沒用到 like 關鍵字,是因為mysql的語法用regexp(正則表達式)代替了
[!charlist]:
select * from 表名 where 欄位名 like '[!abc]%'
查詢列出此欄位不以a或b或c開頭的記錄
in
前面我們可以根據具體的欄位來查詢記錄比如:
where 欄位名 in 值
where 欄位名 in (值1,值2,值3....)
有了in我們可以規定多個值
between
BETWEEN ... AND 會選取介於兩個值之間的數據範圍。這些值可以是數值、文本或者日期
select * from 表名 where 欄位名 between 左範圍 and 右範圍
這裡提個醒,mysql的between語法的查詢結果會包含左範圍和右範圍,也就是>=和<=,其他的資料庫可能會有別的變動,在這裡我只用mysql舉例