SQL

来自维基学院

SQL(Structured Query Language),结构化查询语言。SQL與資料庫兩者很大關聯,可以將資料庫比擬為電腦儲存資料的倉庫,而SQL就是倉庫物料的標籤與專業溝通名詞,也就是說SQL是應用程式與資料庫之間溝通的語言,而且SQL通常就是指某種資料庫系統。

SQL概述[编辑 | 编辑源代码]

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

舉個簡單的例子,若資料庫建里起一個名為CLIENT客戶資料表,並且有一個名為 AREA代表「地區」的欄位,如果程式需要列出所有在New York的客戶,那麼程式就要下一段 SQL 命令給資料庫:

SELECT * FROM CLIENT WHERE AREA='New York'

上述QL 送到資料庫後,經資料庫系統解譯其意義,然後取出對應的資料,傳送回下達命令的電腦端。   再舉個例子:

UPDATE CLIENT SET TEL='5'+TEL WHERE AREA LIKE '新竹%'

相信可以看出它是用來把所有新竹縣市的客戶的電話號碼前面加一個『5』字,請注意,所有程式語言的“=”與數學的“等於”是不同意義的。 看起來很簡單易懂,但是SQL是個好上手但難以精通的工具,在實際應用上,經常會碰到許多難解的問題考驗著開發人員的智力與耐力。


RDB與NoSQL[编辑 | 编辑源代码]

列(屬性Attribute)和行(值組Tuple)的形式

關聯式資料庫(Relational database,RDB),是建立在關聯模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。 表(關聯Relation)是以行(值組Tuple)和列(屬性Attribute)的形式组织起来的数据的集合。一个数据库包括一个或多个表(關聯Relation)。例如,可能有一个有关作者信息的名为authors的表(關聯Relation)。每列(屬性Attribute)都包含特定类型的信息,如作者的姓氏。每行(值組Tuple)都包含有关特定作者的所有信息:姓、名、住址等等。在关系型数据库当中一个表(關聯Relation)就是一个关系,一个关系数据库可以包含多个表(關聯Relation)。

非關聯式資料庫(NOSQL)是對不同於傳統的關聯式資料庫的資料庫管理系統的統稱。允許部分資料使用SQL系統儲存,而其他資料允許使用NOSQL系統儲存。其數據儲存可以不需要固定的表格模式以及元資料(metadata),也經常會避免使用SQL的JOIN操作,一般有水平可延伸性的特徵。

SQL指令類別[编辑 | 编辑源代码]

資料定義語言[编辑 | 编辑源代码]

SQL資料定義語言(data definition language,DDL)屬於DBMS語言的一種,為SQL語言集中負責資料結構定義與資料庫物件定義的語言,由CREATEALTERDROP三個語法所組成。


資料操縱語言[编辑 | 编辑源代码]

SQL資料操縱語言(Data Manipulation Language,DML)是用於資料庫操作,對資料庫其中的物件和資料執行存取工作的編程語句,通常是資料庫專用編程語言之中的一個子集,例如在資訊軟體產業通行標準的SQL語言中,以INSERTUPDATEDELETE三種指令為核心,分別代表插入(意指新增或創建)、更新(修改)与删除(銷毀)。

資料查詢語言[编辑 | 编辑源代码]

SQL查詢語言(Data Query Language,DQL)為資料庫或資訊系統查詢的各種程式語言。