日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏

發(fā)布時間:2023/12/2 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL基本的SELECT语句,SQL语言概述,基础和重要不冲突,完整详细可收藏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 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):

單行注釋:#注釋文字(MySQL特有的方式) 單行注釋:-- 注釋文字(--后面必須包含一個空格。) 多行注釋:/* 注釋文字 */

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ù),那在另一個表里不要變成字符型了。

#以下兩句是一樣的,不區(qū)分大小寫 show databases; SHOW DATABASES; #創(chuàng)建表格 #create table student info(...); #表名錯誤,因為表名有空格 create table student_info(...); #其中order使用``飄號,因為order和系統(tǒng)關(guān)鍵字或系統(tǒng)函數(shù)名等預(yù)定義標識符重名了 CREATE TABLE `order`( id INT, lname VARCHAR(20) ); select id as "編號", `name` as "姓名" from t_stu; #起別名時,as都可以省略 select id as 編號, `name` as 姓名 from t_stu; #如果字段別名中沒有空格,那么可以省略"" select id as 編 號, `name` as 姓 名 from t_stu; #錯誤,如果字段別名中有空格,那么不能省略""

2.5 數(shù)據(jù)導(dǎo)入指令
在命令行客戶端登錄mysql,使用source指令導(dǎo)入:

mysql> source d:\mysqldb.sql

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 可以省略。
④建議別名簡短,見名知意。
舉例:

SELECT last_name AS name, commission_pct comm FROM employees; SELECT last_name "Name", salary*12 "Annual Salary" FROM employees;

3.3 去除重復(fù)行
默認情況下,查詢會返回全部行,包括重復(fù)行。在SELECT語句中使用關(guān)鍵字DISTINCT去除重復(fù)行。

SELECT DISTINCT department_id FROM employees;

注意:
①DISTINCT 需要放到所有列名的前面,如果寫成如下會報錯。

SELECT salary, DISTINCT department_id FROM employees

②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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。