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