對數據庫進行查詢和修改操作的語言叫做SQL(Structured Query Language,結構化查詢語言)。SQL 語言是目前廣泛使用的關系數據庫標準語言,是各種數據庫交互方式的基礎。
> 著名的大型商用數據庫 Oracle、DB2、Sybase、SQL Server,開源的數據庫 PostgreSQL、MySQL,甚至一些小型的數據庫 Access 等都支持 SQL。近些年蓬勃發展的 NoSQL 系統最初是宣稱不再需要 SQL 的,后來也不得不修正為 Not Only SQL,來擁抱 SQL。
SQL 是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。與其他程序設計語言(如 C語言、Java 等)不同的是,SQL 由很少的關鍵字組成,每個 SQL 語句通過一個或多個關鍵字構成。
SQL 具有如下優點。
1. 一體化:SQL 集數據定義、數據操作和數據控制于一體,可以完成數據庫中的全部工作。
2. 使用方式靈活:SQL 具有兩種使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C++、Fortran、COBOL、Java 等語言中使用。
3. 非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機“做什么”,而不需要告訴它“怎么做”,存儲路徑的選擇和操作的執行由數據庫管理系統自動完成。
4. 語言簡潔、語法簡單:該語言的語句都是由描述性很強的英語單詞組成,而且這些單詞的數目不多。
SQL 包含以下 4 部分:
#### 1)數據定義語言(Data Definition Language,DDL)
用來創建或刪除數據庫以及表等對象,主要包含以下幾種命令:
* DROP:刪除數據庫和表等對象
* CREATE:創建數據庫和表等對象
* ALTER:修改數據庫和表等對象的結構
#### 2)數據操作語言(Data Manipulation Language,DML)
用來變更表中的記錄,主要包含以下幾種命令:
* SELECT:查詢表中的數據
* INSERT:向表中插入新數據
* UPDATE:更新表中的數據
* DELETE:刪除表中的數據
#### 3)數據查詢語言(Data Query Language,DQL)
用來查詢表中的記錄,主要包含 SELECT 命令,來查詢表中的數據。
#### 4)數據控制語言(Data Control Language,DCL)
用來確認或者取消對數據庫中的數據進行的變更。除此之外,還可以對數據庫中的用戶設定權限。主要包含以下幾種命令:
* GRANT:賦予用戶操作權限
* REVOKE:取消用戶的操作權限
* COMMIT:確認對數據庫中的數據進行的變更
* ROLLBACK:取消對數據庫中的數據進行的變更
下面是一條 SQL 語句的例子,該語句聲明創建一個名叫 students 的表:
~~~
CREATE TABLE students (
student_id INT UNSIGNED,
name VARCHAR(30) ,
sex CHAR(1),
birth DATE,
PRIMARY KEY(student_id)
);
~~~
該表包含 4 個字段,分別為 student\_id、name、sex、birth,其中 student\_id 定義為表的主鍵。
現在只是定義了一張表格,但并沒有任何數據,接下來這條 SQL 聲明語句,將在 students 表中插入一條數據記錄:
~~~
INSERT INTO students (student_id, name, sex, birth)
VALUES (41048101, 'MySQL教程', '1', '2022-02-14');
~~~
執行完該 SQL 語句之后,students 表中就會增加一行新記錄,該記錄中字段 student\_id 的值為“41048101”,name 字段的值為“MySQL教程”。sex 字段值為“1”,birth 字段值為“2022-02-14”。
再使用 SELECT 查詢語句獲取剛才插入的數據,如下:
~~~
SELECT name FROM students WHERE student_id=41048101;
+--------------+
| name |
+--------------+
|MySQL教程 |
+--------------+
~~~
上面簡單列舉了常用的數據庫操作語句,在這里留下一個印象即可,后面我們會詳細介紹這些知識。
> 注意:SQL 語句不區分大小寫,許多 SQL 開發人員習慣對 SQL 本身的關鍵字進行大寫,而對表或者列的名稱使用小寫,這樣可以提高代碼的可閱讀性和可維護性。本教程也按照這種方式組織 SQL 語句。大多數數據庫都支持通用的 SQL 語句,同時不同的數據庫具有各自特有的 SQL 語言特性。
#### 拓展
標準 SQL 是指符合國際標準的 SQL,而非某個數據庫廠商的 SQL 語法(如:Microsoft SQL Server 的 T-SQL,Oracle 的 PL/SQL,MySQL)。
標準 SQL?可以在任何數據庫中使用,而數據庫廠商的 SQL 只適合它們對應的數據庫,如 T-SQL 只適合?Microsoft SQL Server。
本教程講解的 SQL 是專門針對 MySQL 的,雖然多數語法也適用于其它 DBMS,但不是所有 SQL 語法都是完全可移植的。
- 數據庫入門
- 1.常用的數據庫
- 2.數據管理技術的3個發展階段
- 3.數據庫是什么?關系型數據庫和非關系型數據庫又是什么?
- 4.為什么要使用數據庫?
- 5.數據庫系統是什么?它由哪幾部分組成?
- 6.常用數據庫訪問接口簡介
- 7.數據庫的種類有哪些?
- 8.幾種常用的數據庫
- 9.MySQL是什么
- 10.MySQL適用于哪些場景?
- 11.學MySQL前,需要了解這些數據庫專業術語
- 12.MySQL客戶端和服務器架構(C/S架構)
- 13.明白了MySQL內部結構才能成為高手!
- 14.如何學習數據庫(新手必看)?
- 15.小白學習MySQL需要多長時間,能從事哪方面的工作?
- 16.當前市場對數據庫程序員的需求如何?待遇如何?
- 17.DBA到底要做什么,成為一名DBA需要具備什么能力?
- 一、數據庫的概念和常用工具
- 二、MySQL規范、配置及登錄退出操作
- 三、MySQL中的數據類型
- 四、數據庫增查改刪等操作
- 五、數據表增查改刪操作
- 六、MySQL數據增查改刪操作
- 七、MySQL存儲引擎
- 八、MySQL常用函數
- MySQL的安裝和配置
- 1.MySQL 5.7的新特性(新功能)
- 2.MySQL下載步驟詳解
- 3.MySQL安裝配置教程(Windows系統)
- 4.MySQL免安裝版配置教程
- 5.MySQL配置環境變量
- 6.安裝MySQL后,如何判斷是否已安裝成功
- 7.啟動MySQL服務的兩種方式(圖解)
- 8.登錄MySQL數據庫
- 9.對Linux MySQL軟件包的一些說明
- 10.Linux CentOS卸載MySQL(Linux安裝MySQL前的準備)
- 11.Linux安裝配置MySQL詳細步驟
- 12.MySQL my.cnf配置文件詳解
- 13.MySQL常用圖形化管理工具
- 14.MySQL安裝后的目錄結構介紹
- 15.MySQL數據庫文件存放目錄結構詳解
- 16.MySQL配置文件(my.ini)詳解
- 17.與其它數據庫不同,MySQL可以在不同的SQL模式下運行
- 18.MySql Command Line Client閃退原因及解決方案
- MySQL數據庫的基本操作
- 1.SQL是什么?它能做什么?
- 2.SQL的基本書寫規則
- 3.MySQL查看或顯示數據庫(SHOW DATABASES語句)
- 4.MySQL創建數據庫(CREATE DATABASE語句)
- 5.MySQL修改數據庫:ALTER DATABASE用法簡介
- 6.MySQL刪除數據庫(DROP DATABASE語句)
- 7.MySQL選擇數據庫(MySQL USE語句)
- 8.MySQL注釋:單行注釋和多行注釋
- 9.MySQL中SQL語句的大小寫規則
- 10.如何查看MySQL系統幫助?
- 11.看懂SQL錯誤代碼,提高學習效率!
- 數據庫高級
- 一、視圖的操作
- 二、觸發器的操作
- 三、事務的操作
- 四、索引的操作
- 五、存儲過程的操作
- 六、數據庫的優化方案
- 1.分庫、分表和索引
- 2.讀寫分離和查詢優化
- 3.join代替子查詢
- 4.盡量使用短小的事務
- 5.常用小技巧
- MySQL使用注意事項
- 1.字符亂碼及連接驅動