MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏
文章目錄
- 1、SQL語言的分類
- 2、SQL語言的規則與規范
- 3、基本的SELECT語句
- 4、DESCRIBE顯示表結構
- 5、WHERE過濾數據
1、SQL語言的分類
SQL語言在功能上主要分為如下3大類:
DDL(Data Definition Languages、數據定義語言),這些語句定義了不同的數據庫、表、視圖、索引等數據庫對象,還可以用來創建、刪除、修改數據庫和數據表的結構。主要的語句關鍵字包括 CREATE 、 DROP 、 ALTER 等。
DML(Data Manipulation Language、數據操作語言),用于添加、刪除、更新和查詢數據庫記錄,并檢查數據完整性。主要的語句關鍵字包括 INSERT 、DELETE 、 UPDATE 、 SELECT 等。SELECT是SQL語言的基礎,最為重要。
DCL(Data Control Language、數據控制語言),用于定義數據庫、表、字段、用戶的訪問權限和安全級別。主要的語句關鍵字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等。
因為查詢語句使用的非常的頻繁,所以很多人把查詢語句單拎出來一類:DQL(數據查詢語言)。還有單獨將 COMMIT 、 ROLLBACK 取出來稱為TCL(Transaction Control Language,事務控制語言)。
2、SQL語言的規則與規范
2.1 基本規則
①SQL可以寫在一行或多行。為了提高可讀性,各子句分行寫,必要時使用縮進。
②每條命令以 ; 或 \g 或 \G 結束。
③關鍵字不能被縮寫也不能分行。
④關于標點符號:
必須保證所有的()、單引號、雙引號是成對結束的。
必須使用英文狀態下的半角輸入方式。
字符串型和日期時間類型的數據可以使用單引號''表示。
列的別名,盡量使用雙引號" ",而且不建議省略as。
2.2 SQL大小寫規范 (建議遵守)
①MySQL 在 Windows 環境下是大小寫不敏感的。
②MySQL 在 Linux 環境下是大小寫敏感的。
③數據庫名、表名、表的別名、變量名是嚴格區分大小寫的。
④關鍵字、函數名、列名(或字段名)、列的別名(字段的別名) 是忽略大小寫的。
⑤推薦采用統一的書寫規范:
數據庫名、表名、表別名、字段名、字段別名等都小寫;SQL 關鍵字、函數名、綁定變量等都大寫。
2.3 注 釋
可以使用如下格式的注釋結構:
2.4 命名規則
①數據庫、表名不得超過30個字符,變量名限制為29個。
②必須只能包含 A–Z, a–z, 0–9, _共63個字符。
③數據庫名、表名、字段名等對象名中間不要包含空格。
④同一個MySQL軟件中,數據庫不能同名;同一個庫中,表不能重名;同一個表中,字段不能重名。
⑤必須保證字段沒有和保留字、數據庫系統或常用方法沖突。如果堅持使用,請在SQL語句中使用`(著重號)引起來。
⑥保持字段名和類型的一致性,在命名字段并為其指定數據類型的時候一定要保證一致性。假如數據類型在一個表里是整數,那在另一個表里不要變成字符型了。
2.5 數據導入指令
在命令行客戶端登錄mysql,使用source指令導入:
3、基本的SELECT語句
3.0 SELECT…
SELECT 1; #沒有任何子句 SELECT 9/2; #沒有任何子句3.1 SELECT … FROM
SELECT 標識選擇哪些列 FROM 標識從哪個表中選擇 SELECT * #選擇全部列 FROM departments;一般情況下,除非需要使用表中所有的字段數據,最好不要使用通配符‘*’。使用通配符雖然可以節省輸入查詢語句的時間,但是獲取不需要的列數據通常會降低查詢和所使用的應用程序的效率。通配符的優勢是,當不知道所需要的列的名稱時,可以通過它獲取它們。
SELECT department_id, location_id #選擇特定的列 FROM departments;3.2 列的別名
①重命名一個列,便于計算。
②緊跟列名,也可以在列名和別名之間加入關鍵字AS,別名使用雙引號,以便在別名中包含空格或特殊的字符并區分大小寫。
③AS 可以省略。
④建議別名簡短,見名知意。
舉例:
3.3 去除重復行
默認情況下,查詢會返回全部行,包括重復行。在SELECT語句中使用關鍵字DISTINCT去除重復行。
注意:
①DISTINCT 需要放到所有列名的前面,如果寫成如下會報錯。
②DISTINCT 其實是對后面所有列名的組合進行去重,你能看到最后的結果是 74 條,因為這 74 個部門id不同,都有 salary 這個屬性值。如果你想要看都有哪些不同的部門(department_id),只需要寫 DISTINCT department_id 即可,后面不需要再加其他的列名了。
3.4 空值參與運算
所有運算符或列值遇到null值,運算的結果都為null。一定要注意,在 MySQL 里面, 空值不等于空字符串。一個空字符串的長度是 0,而一個空值的長度是空。而且,在 MySQL 里面,空值是占用空間的。
3.5 著重號
我們需要保證表中的字段、表名等沒有和保留字、數據庫系統或常用方法沖突。如果真的相同,請在SQL語句中使用一對``(著重號)引起來。
4、DESCRIBE顯示表結構
使用DESCRIBE 或 DESC 命令,表示表結構。
DESCRIBE employees; 或 DESC employees;
其中,各個字段的含義分別解釋如下:
①Field:表示字段名稱。
②Type:表示字段類型,這里 barcode、goodsname 是文本型的,price 是整數類型的。
③Null:表示該列是否可以存儲NULL值。
④Key:表示該列是否已編制索引。PRI表示該列是表主鍵的一部分;UNI表示該列是UNIQUE索引的一部分;MUL表示在列中某個給定值允許出現多次。
⑤Default:表示該列是否有默認值,如果有,那么值是多少。
⑥Extra:表示可以獲取的與給定列有關的附加信息,例如AUTO_INCREMENT等。
5、WHERE過濾數據
SELECT 字段1,字段2 FROM 表名 WHERE 過濾條件 SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90; #查詢部門編號為90的使用WHERE 子句,將不滿足條件的行過濾掉,WHERE子句緊隨 FROM 子句。
總結
以上是生活随笔為你收集整理的MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10下最新MySQL8.0安装与环
- 下一篇: MySQL运算符,SQL,算术比较逻辑位