SQL可以分為兩部分
1.DDL數(shù)據(jù)定義語言 DDL= Data Definition Language
SQL中常用的DDL語句:
create database - 創(chuàng)建新的數(shù)據(jù)庫
create table - 創(chuàng)建新的數(shù)據(jù)庫表
alter table - 變更(改變)數(shù)據(jù)庫表
drop table - 刪除表
2.DML數(shù)據(jù)操作語言 DML = Data Manipulation Language
SQL中常用的DML指令:
insert into - 向數(shù)據(jù)庫表中插入數(shù)據(jù)
insert into 表名稱 values (值1,值2,...)
select - 從數(shù)據(jù)庫表中獲取數(shù)據(jù)
select * from 表名 where 指定條件
update - 更新數(shù)據(jù)庫表中的數(shù)據(jù)
update 表名稱 set 列名稱 =新值 where 指定條件
delete - 從數(shù)據(jù)庫表中刪除數(shù)據(jù)
delete? from? 表名? where 指定條件
Alias 簡稱 as 別名
?
?
SQL約束(constraints)
約束用于在插入數(shù)據(jù)到表中時的規(guī)則,可以在創(chuàng)建表時就規(guī)定約束(通過 create table語句)
not null 約束強制列不接受null值
unique(唯一的)約束唯一標識數(shù)據(jù)庫表中的每條記錄
primary key (主鍵)擁有自動定義的unique約束
?
聚集函數(shù)
函數(shù) |
說明 |
avg() |
返回某列的平均值 |
count() |
返回某列的行數(shù) |
max() |
返回某列的最大值 |
min() |
返回某列的最小值 |
sum() |
返回某列之和 |
操作符 |
說明 |
= |
等于 |
<> |
不等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
between... and ... |
介于兩者之間 |
in |
在給定的值之內(nèi) |
like |
模糊匹配 |
運算符Between...and
在where子句中使用,選取介于兩個值之間的數(shù)據(jù)范圍。
like 模糊匹配
SELECT Brand FROM Perfume?WHERE Brand LIKE '%Lg%‘ 中間包含Lg的都會被找出來
SELECT Brand FROM Perfume?WHERE Brand LIKE 'Lg%‘ 前面包含Lg的都會被找出來
? ? ? ?SELECT Brand FROM Perfume?WHERE Brand LIKE '%Lg‘ 后面包含Lg的都會被找出來
?
in?:表示在給定條件范圍內(nèi)的結(jié)果;
or: 表示或者關系,在多個條件從句只要符合其中的1個條件即可。
And 并且操作符:可以給where 子句添加多個條件進行過濾。
Not 表示相反:可以在where子句 條件前邊添加 Not
?關鍵字,表示相反
Distinct:去重
Order by:根據(jù)指定的列對結(jié)果集排序,可以接desc降序排列
Limit:用于規(guī)定要返回的數(shù)目
SELECT Brand, Series, _50ML_雙11價 FROM Perfume ORDER BY _50ML_雙11價 DESC LIMIT 3;
Ifnull: 函數(shù)用于規(guī)定如何處理 NULL 值
SELECT 姓名, (測試理論得分 + IFNULL(SQL得分, 0) + QTP得分 + Selenium得分) AS 各科考試總分 FROM 軟件測試考試分數(shù)表_重制版1 WHERE 姓名 = '李四';
Group by:分組
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
Having:只能和GROUP BY綁定使用
SELECT 商場專柜, SUM(銷售價格) AS 香水總銷售額 FROM 商場專柜銷售情況表 GROUP BY 商場專柜 HAVING SUM(銷售價格) > 500 ORDER BY 香水總銷售額 DESC;
Case:?
case 條件 When [val1] then [result1 when [val2] then [result2] else [default] end 如果符合條件1(val1)結(jié)果為(result1) 如果符合條件2(val2)結(jié)果為(result2) .... 如果以上條件都不符合,則執(zhí)行else 中的語句。
-- 統(tǒng)計 不及格,良,優(yōu) 各有多少人 -- 臨時表 可以將其它查詢的結(jié)果作為一個表來使用,數(shù)據(jù)庫中并沒有這個表。 SELECT score_level, count(score_level) FROM -- 創(chuàng)建臨時表 (SELECT CASE WHEN score< 60 THEN '不及格' WHEN score< 80 THEN '良' WHEN score<=100 THEN '優(yōu)' ELSE '不合法' END AS score_level from scores1100 ) as templevel -- 臨時表結(jié)束 -- 分組 GROUP BY templevel.score_level;
?
檢查空值
使用 is null
?來檢查空值。
SELECT name,python_score FROM score -- 過濾Python成績?yōu)?空的信息 WHERE python_score is NULL;
同樣使用 is not null
? 來過濾非空;
SELECT name,python_score FROM score WHERE python_score is NOT NULL;
?
?
本文摘自 :https://www.cnblogs.com/