SQL的分類 DDL:數據定義語言 CREATE\ALTER\RENAME(重命名)\DROP\TRUNCATE(清空表) DML:數據操作語言 INSERT\DELETE\UPDATE\SELECT(增刪改查) DCL:數據控制語言 COMMIT(提交)\ROLLBACK(回滾)\SAVEPOIN ...
SQL的分類
- DDL:數據定義語言
CREATE\ALTER\RENAME(重命名)\DROP\TRUNCATE(清空表)
- DML:數據操作語言
INSERT\DELETE\UPDATE\SELECT(增刪改查)
- DCL:數據控制語言
COMMIT(提交)\ROLLBACK(回滾)\SAVEPOINT(把事物分的更細一點,回滾到哪一個點上)\GRANT(授予許可權)\REVOKE(回收許可權)
導入現有數據表的方式
方式一:再終端m採用命令行方式,輸入命令:source 現有文件名的全路徑;
方式二:基於具體的圖形化界面工具可以導入數據
基本的select語句
# 1.基本的select查詢:select 欄位名1,欄位名2... from 表名;
SELECT 1+1,2*3; # 像這種不需要從表中獲取的可以省略from 表名 或者from 偽表
SELECT 1+1,2*3 FROM DUAL; # DUAL是一個偽表
SELECT * FROM employees; # 查詢所有的列
SELECT salary FROM employees;
# 2.列的別名
# 別名可以加雙引號(不要用單引號),也可以不加
# 別名可以前可以加個as,也可以不加
SELECT employee_id '員工id' FROM employees;
SELECT employee_id as '員工id' FROM employees;
# 3.去除重覆行:DISTINCT關鍵字
SELECT DISTINCT department_id FROM employees;
# 4.空值參與運算
# 空值null
# null不等同於0,"","null"
SELECT employee_id,salary "月工資",salary*(1+commission_pct)*12 "年工資",commission_pct
FROM employees;
# 解決方案:引入ifnull函數
SELECT employee_id,salary "月工資",salary*(1+IFNULL(commission_pct,0))*12 "年工資",commission_pct
FROM employees;
# 5.著重號:如果出現欄位名或者表名和sql中的關鍵字重名了,就需要加著重號區分。
SELECT * FROM `order`;
# 6.查詢常數
# 大學不存在表中,我們可以添加常量表示。
SELECT "大學",last_name FROM employees;
# 7.顯示表結構
DESCRIBE employees;
DESC employees;
過濾數據語法
使用where關鍵字
SELECT * FROM employees
WHERE department_id=90;
sql運算符
- 算術運算符: + - * / %
在SQL中,+號沒有連接的作用,就表示加法運算,與字元串進行相加減時會將字元串轉為數值進行計算(隱式計算)
SELECT 100 + '1' FROM DUAL;
當字元串無法轉為數值時,會轉換為0計算
SELECT 100 + 'a' FROM DUAL;
null值參與運算,結果為null
SELECT 100 + NULL FROM DUAL;
- 比較運算符:= != > < >= <= <=>
<=>意思是安全等於,主要是針對null值進行判斷,兩邊都為null返回1,否則為0
like:模糊查詢
%:代表不確定個數的字元(0個、1個、無數個)
:代表一個不確定的字元
:代表轉義字元,_這時_就不代表一個不確定的字元了,就表示
正則表達式運算:詳見mysql資料
-
邏輯運算符:not and or xor(邏輯異或)
-
位運算符:暫略
-
運算符的優先順序:()=> not => and => or