SQL教學
SQL RDBMS概念
SQL簡介
SQL NOT NULL約束
SQL DEFAULT約束
SQL唯一約束
SQL主鍵
SQL外鍵
SQL CHECK約束
SQL示例數據庫
SQL索引約束
SQL NULL值
數據庫 - 第一範式(1NF)
數據庫 - 第二範式(2NF)
數據庫 - 第三範式(3NF)
SQL RDBMS數據庫
SQL語法
SQL數據類型
SQL操運算符
SQL算術運算符
SQL比較運算符
SQL邏輯運算符
SQL表達式
SQL創建數據庫(CREATE DATABASE)
SQL丟棄或刪除數據庫(DROP DATABASE)
SQL選擇數據庫(SELECT Database, USE語句)
SQL創建表(CREATE Table)
SQL從現有表創建表
SQL刪除表(DROP或DELETE Table)
SQL INSERT INTO插入查詢
SQL SELECT查詢語句
SQL WHERE子句
SQL AND和OR運算符
SQL UPDATE更新查詢
SQL DELETE刪除查詢
SQL LIKE子句
SQL TOP,LIMIT,ROWNUM子句
SQL ORDER BY排序子句
SQL GROUP BY(分組)
SQL Distinct關鍵字
SQL排序結果
SQL約束
SQL Join聯接
SQL INNER JOIN(內部連接)
SQL LEFT JOIN(左連接)
SQL RIGHT JOIN(右連接)
SQL FULL JOIN(全連接)
SQL自連接
SQL笛卡爾或交叉連接
SQL UNION子句/操作符
SQL INTERSECT子句
SQL EXCEPT子句
SQL別名語法
SQL索引
SQL ALTER TABLE(修改表)
SQL TRUNCATE TABLE(截斷表)
SQL View(視圖)
SQL Having子句
SQL事務
SQL通配符運算符
SQL日期函數
SQL ADDDATE()函數
SQL ADDTIME()函數
SQL CONVERT_TZ()函數
SQL CURDATE()函數
SQL CURRENT_DATE()函數
SQL CURTIME()函數
SQL CURRENT_TIME()函數
SQL CURRENT_TIMESTAMP()方法
SQL DATE(expr)函數
SQL DATEDIFF()方法
SQL DATE_ADD()和DATE_SUB()方法
SQL DATE_FORMAT()函數
SQL DATE_SUB()方法
SQL DAY()函數
SQL DAYNAME()函數
SQL DAYOFMONTH()函數
SQL DAYOFWEEK()函數
SQL DAYOFYEAR()函數
SQL EXTRACT()函數
SQL FROM_DAYS()函數
SQL FROM_UNIXTIME()函數
SQL HOUR()方法
SQL LAST_DAY()函數
SQL LOCALTIME和LOCALTIME()函數
SQL LOCALTIMESTAMP和LOCALTIMESTAMP()函數
SQL MAKEDATE()函數
SQL MAKETIME()函數
SQL MICROSECOND()函數
SQL MINUTE()函數
SQL MONTH()函數
SQL MONTHNAME()函數
SQL NOW()函數
SQL PERIOD_ADD()函數
SQL PERIOD_DIFF()函數
SQL QUARTER()函數
SQL SECOND()函數
SQL SEC_TO_TIME()函數
SQL STR_TO_DATE()函數
SQL SUBDATE()函數
SQL SUBTIME()函數
SQL SYSDATE()函數
SQL TIME()函數
SQL TIMEDIFF()函數
SQL TIMESTAMP()函數
SQL TIMESTAMPADD()函數
SQL TIMESTAMPDIFF()函數
SQL TIME_FORMAT()函數
SQL TIME_TO_SEC()函數
SQL TO_DAYS()函數
SQL UNIX_TIMESTAMP()函數
SQL UTC_DATE()函數
SQL UTC_TIME()函數
SQL UTC_TIMESTAMP()函數
SQL WEEK()函數
SQL WEEKDAY()函數
SQL WEEKOFYEAR()函數
SQL YEAR()函數
SQL YEARWEEK()函數
SQL臨時表
SQL克隆表
SQL子查詢
SQL使用序列(自動遞增)
SQL DISTINCT重複處理
SQL注入
SQL實用函數
SQL MAX()函數
SQL MIN()函數
SQL AVG()函數
SQL SUM()函數
SQL SQRT()函數
SQL RAND()函數
SQL CONCAT()函數
SQL數值函數
SQL ABS()函數
SQL ACOS()函數
SQL ASIN(X)函數
SQL ATAN(X)函數
SQL ATAN2()函數
SQL BIT_AND()函數
SQL BIT_COUNT()函數
SQL BIT_OR()函數
SQL CEIL()函數
SQL CONV()函數
SQL COS()函數
SQL COT()函數
SQL DEGREES()函數
SQL EXP(X)函數
SQL FLOOR(X)函數
SQL FORMAT(X,D)函數
SQL GREATEST()函數
SQL INTERVAL()函數
SQL LEAST()函數
SQL LOG()函數
SQL LOG10(X)函數
SQL MOD()函數
SQL OCT(N)函數
SQL PI()函數
SQL POW()函數
SQL RADIANS()函數
SQL ROUND()函數
SQL SIGN(X)函數
SQL SIN(X)函數
SQL SQRT(X)函數
SQL STD()函數
SQL TAN(X)函數
SQL TRUNCATE()函數
SQL字符串函數
SQL ASCII(str)函數
SQL BIN(N)函數
SQL BIT_LENGTH()函數
SQL CHAR()函數
SQL CHAR_LENGTH()函數
SQL CHARACTER_LENGTH()函數
SQL字符串CONCAT()函數
SQL CONCAT_WS()函數
SQL CONV(N,from_base,to_base)函數
SQL ELT()函數
SQL EXPORT_SET()函數
SQL FIELD()函數
SQL FIND_IN_SET()函數
SQL FORMAT()函數
SQL HEX()函數
SQL INSERT()函數
SQL INSTR()函數
SQL LCASE()函數
SQL LEFT()函數
SQL LENGTH()函數
SQL LOAD_FILE()函數
SQL LOCATE()函數
SQL LOWER()函數
SQL LPAD()函數
SQL LTRIM()函數
SQL MAKE_SET()函數
SQL MID()函數
SQL OCT()函數
SQL OCTET_LENGTH()函數
SQL ORD()函數
SQL POSITION()函數
SQL QUOTE()函數
SQL REGEXP模式
SQL REPEAT()函數
SQL REPLACE()函數
SQL REVERSE()函數
SQL RIGHT()函數
SQL RPAD()函數
SQL SOUNDEX()函數
SQL SPACE()函數
SQL STRCMP()函數
SQL SUBSTRING()函數
SQL SUBSTRING_INDEX()函數
SQL TRIM()函數
SQL UCASE()函數
SQL UNHEX()函數
SQL UPPER()函數

SQL簡介

SQL是一種操作數據庫的語言; 它包括數據庫創建,刪除,獲取行,修改行等。SQL是ANSI(美國國家標準協會)標準語言,但有許多不同版本的SQL語言。

SQL只是一種查詢語言,它不是數據庫。 要執行SQL查詢,您需要安裝任何數據庫,例如Oracle,MySQL,MongoDB,PostGre SQL,SQL Server,DB2等。

1. SQL是什麼?

SQL是結構化查詢語言,它是一種用於存儲,操作和檢索存儲在關係數據庫中的數據的計算機語言。

SQL是關係數據庫系統的標準語言。所有關係數據庫管理系統(RDMS)如:MySQL,MS Access,Oracle,Sybase,Informix,Postgres和SQL Server都使用SQL作爲其標準數據庫語言。

此外,關係數據庫管理系統使用不同的方言,如 -

  • MS SQL Server使用T-SQL,
  • Oracle使用PL/SQL,
  • MS Access的SQL版本稱爲JET SQL(本機格式)等。

2. 爲什麼要使用SQL?

SQL廣受歡迎,因爲它具有以下優點 -

  • 允許用戶訪問關係數據庫管理系統中的數據。
  • 允許用戶描述數據。
  • 允許用戶定義數據庫中的數據並操縱這些數據。
  • 允許使用SQL模塊,庫和預編譯器嵌入其他語言。
  • 允許用戶創建和刪除數據庫和表。
  • 允許用戶在數據庫中創建視圖,存儲過程和函數。
  • 允許用戶設置表,過程和視圖的權限。

3. SQL簡史

  • 1986年 - IBM開發了第一個關係數據庫原型並由ANSI標準化,第一個關係數據庫由Relational Software發佈,後來被稱爲:Oracle。
  • 1978年 - IBM致力於開發Codd的想法,併發布了一款名爲System/R的產品。
  • 1974年 - 出現了結構化查詢語言。
  • 1970年 - IBM的Dr. Edgar F. 「Ted」 Codd 博士是關係數據庫的之父,他第一個描述了數據庫的關係模型。

4. SQL處理

當RDBMS執行SQL命令時,系統會確定執行請求的最佳方式,而SQL引擎會確定如何解析任務。

此過程中包含各種組件。這些組件是 -

  • 查詢調度程序
  • 優化引擎
  • 經典查詢引擎
  • SQL查詢引擎等

經典查詢引擎處理所有非SQL查詢,但SQL查詢引擎不處理邏輯文件。

以下是SQL體系結構的圖示 -

SQL簡介

5. SQL命令

與關係數據庫交互的標準SQL命令是:CREATESELECTINSERTUPDATEDELETEDROP。 這些命令可根據其性質分爲以下幾組:

5.1. DDL - 數據定義語言

序號

命令

描述

1

CREATE

用於在數據庫中創建新表,表視圖或其他對象。

2

ALTER

用於修改現有數據庫對象,例如:表。

3

DROP

用於刪除整個表,數據庫中的表或其他對象的視圖。

5.2. DML - 數據操縱語言

序號

命令

描述

1

SELECT

從一個或多個表中檢索某些記錄。

2

INSERT

創建一條記錄。

3

UPDATE

用於修改(更新)記錄。

4

DELETE

刪除記錄。

5.3. DCL - 數據控制語言

序號

命令

描述

1

GRANT

爲用戶提供權限。

2

REVOKE

撤銷用戶授予的權限。