SQL语言深入
數據庫系統
數據庫系統主要有以下 3 個組成部分:
1 . 數據庫:用于存儲數據的地方。
2 . 數據庫管理系統:用于管理數據庫的軟件。
3 . 數據庫應用程序:為了提高數據庫系統的處理能力所使用的管理數據庫庫的軟件補充。
數據庫管理系統(Database Management System,DBMS)是位于操作系統與用戶之間的一種操縱和管理數據庫的軟件,按照一定的數據模型科學地組織和存儲數據,同時可以提供數據高效地獲取和維護。
數據庫管理系統的主要功能。
1 數據定義功能
DBMS 提供數據定義語言(Data Definition Language,DDL),用戶通過它可以方便地對數據庫中的數據對象進行定義。
2 數據操縱功能
DBMS 還提供數據操縱語言(Data Manipulation Language,DML),用戶可以使用 DML 操作數據,實現對數據庫的基本操作,如查詢、插入、刪除和修改等。
3 數據庫的運行管理
數據庫在建立、運用和維護時由數據庫管理系統統一管理、統一控制,以保證數據的安全性、完整性、多用戶對數據的并發使用及發生故障后的系統恢復。例如:
4 提供方便、有效地存取數據庫信息的接口和工具
編程人員可通過編程語言與數據庫之間的接口進行數據庫應用程序的開發。數據庫管理員(Database Administrator,DBA)可通過提供的工具對數據庫進行管理。
數據庫管理員是維護和管理數據庫的專門人員。
5 數據庫的建立和維護功能
數據庫功能包括數據庫初始數據的輸入、轉換功能,數據庫的轉儲、恢復功能,數據庫的重組織功能和性能監控、分析功能等。這些功能通常由一些使用程序來完成。
數據庫系統是指在計算機系統中引入數據庫后的系統。一個完整的數據庫系統(Database System,DBS)一般由數據庫、數據庫管理系統、應用開發工具、應用系統、數據庫管理員和用戶組成。完整的數據庫系統結構關系如圖所示:
SQL語言
MySQL 服務器正確安裝以后,就已經完成了一個完整的 DBMS 的搭建,可以通過命令行管理工具或者圖形化的管理工具對 MySQL 數據庫進行操作。這種對數據庫進行查詢和修改操作的語言叫做 SQL(Structured Query Language,結構化查詢語言)。SQL 語言是目前廣泛使用的關系數據庫標準語言,是各種數據庫交互方式的基礎。
SQL 是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。與其他程序設計語言(如 C語言、Java 等)不同的是,SQL 由很少的關鍵字組成,每個 SQL 語句通過一個或多個關鍵字構成。
SQL 具有如下優點。
1 . 一體化:SQL 集數據定義、數據操作和數據控制于一體,可以完成數據庫中的全部工作。
2 . 使用方式靈活:SQL 具有兩種使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C++、Fortran、COBOL、Java 等語言中使用。
3 . 非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機“做什么”,而不需要告訴它“怎么做”,存儲路徑的選擇和操作的執行由數據庫管理系統自動完成。
4 . 語言簡潔、語法簡單:該語言的語句都是由描述性很強的英語單詞組成,而且這些單詞的數目不多。
SQL 包含以下 4 部分:
1 . 數據定義語言(DDL):DROP、CREATE、ALTER 等語句。
2 . 數據操作語言(DML):INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。
3 . 數據查詢語言(DQL):SELECT 語句。
4 . 數據控制語言(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, '百度', '2', '2019-08-14');執行完該 SQL 語句之后,students 表中就會增加一行新記錄,該記錄中字段 student_id 的值為“41048101”,name 字段的值為“百度”。sex 字段值為“1”,birth 字段值為“2019-08-14”。
再使用 SELECT 查詢語句獲取剛才插入的數據,如下:
SELECT name FROM students WHERE student_id=41048101; +--------------+ | name | +--------------+ |百度| +--------------+注意:SQL 語句不區分大小寫,許多 SQL 開發人員習慣對 SQL 本身的關鍵字進行大寫,而對表或者列的名稱使用小寫,這樣可以提高代碼的可閱讀性和可維護性。
數據庫訪問接口
不同的程序設計語言會有各自不同的數據庫訪問接口,程序語言通過這些接口,執行 SQL 語句,進行數據庫管理。主要的數據庫訪問接口主要有 ODBC、JDBC、ADO.NET 和 PDO。
ODBC
ODBC(Open Database Connectivity,開放數據庫互連)為訪問不同的 SQL 數據庫提供了一個共同的接口。ODBC 使用 SQL 作為訪問數據的標準。這一接口提供了最大限度的互操作性。一個應用程序可以通過共同的一組代碼訪問不同的 SQL 數據庫管理系統。
一個基于 ODBC 的應用程序對數據庫的操作不依賴任何 DBMS,不直接與 DBMS 打交道,所有的數據庫操作由對應的 DBMS 的 ODBC 驅動程序完成。也就是說,不論是 MySQL 還是 Oracle 數據庫,均可用 ODBC API 進行訪問。由此可見,ODBC 的最大優點是能以統一的方式處理所有的數據庫。
JDBC
Java Data Base(JDBC,Java 數據庫連接)用于 Java 應用程序連接數據庫的標準方法,是一種用于執行 SQL 語句的 Java API,可以為多種關系數據庫提供統一訪問,它由一組用 Java 語言編寫的類和接口組成。
ADO.NET
ADO.NET 是微軟在 .NET 框架下開發設計的一組用于和數據源進行交互的面向對象類庫。ADO.NET 提供了對關系數據、XML 和應用程序的訪問,允許和不同類型的數據源以及數據庫進行交互。
PDO
PDO(PHP Data Object)為 PHP 訪問數據庫定義了一個輕量級的、一致性的接口,它提供了一個數據訪問抽象層,這樣,無論使用什么數據庫,都可以通過一致的函數執行查詢和獲取數據。PDO 是 PHP 5 新加入的一個重大功能。
總結
- 上一篇: MySQL 查询数据表
- 下一篇: MySQL 删除数据