【宋红康 MySQL数据库】【03】SQL概述_常见的数据库对象
持續(xù)學習&持續(xù)更新中…
學習態(tài)度:守破離
【宋紅康 MySQL數(shù)據(jù)庫】【03】SQL概述_常見的數(shù)據(jù)庫對象
- SQL概述
- 什么是SQL
- SQL背景知識
- SQL分類
- DDL(Data Definition Languages、數(shù)據(jù)定義語言)
- DML(Data Manipulation Language、數(shù)據(jù)操作語言)
- DCL(Data Control Language、數(shù)據(jù)控制語言)
- SQL語言的規(guī)則與規(guī)范
- 基本規(guī)則
- 大小寫規(guī)范
- 注釋
- 命名規(guī)則
- 常見的數(shù)據(jù)庫對象
- 參考
SQL概述
什么是SQL
- SQL 指結(jié)構(gòu)化查詢語言
- SQL 使我們有能力訪問數(shù)據(jù)庫
- SQL 是一種 ANSI 的標準計算機語言
SQL背景知識
-
1974 年,IBM 研究員發(fā)布了一篇揭開數(shù)據(jù)庫技術的論文《SEQUEL:一門結(jié)構(gòu)化的英語查詢語言》,直到今天這門結(jié)構(gòu)化的查詢語言并沒有太大的變化,相比于其他語言,SQL 的半衰期可以說是非常長了。
-
SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)是使用關系模型的數(shù)據(jù)庫應用語言,與數(shù)據(jù)直接打交道,由IBM上世紀70年代開發(fā)出來。后由美國國家標準局(ANSI)開始著手制定SQL標準,先后有SQL-86,SQL-89,SQL-92,SQL-99等標準。
-
SQL 有兩個重要的標準,分別是 SQL92 和 SQL99,它們分別代表了 92 年和 99 年頒布的 SQL 標準,我們今天使用的 SQL 語言依然遵循這些標準。
-
不同的數(shù)據(jù)庫生產(chǎn)廠商都支持SQL語句,但都有特有內(nèi)容。
SQL分類
DDL(Data Definition Languages、數(shù)據(jù)定義語言)
-
這些語句定義了不同的數(shù)據(jù)庫、表、視圖、索引等數(shù)據(jù)庫對象,還可以用來創(chuàng)建、刪除、修改數(shù)據(jù)庫和數(shù)據(jù)表的結(jié)構(gòu)。
-
主要的語句關鍵字包括CREATE、DROP、ALTER、RENAME、TRUNCATE等。
DML(Data Manipulation Language、數(shù)據(jù)操作語言)
- 用于添加、刪除、更新和查詢數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性。
- 主要的語句關鍵字包括INSERT、DELETE、UPDATE、SELECT等。
- SELECT是SQL語言的基礎,最為重要。
因為查詢語句使用的非常的頻繁,所以很多人把查詢語句單拎出來一類:DQL(數(shù)據(jù)查詢語言)。
DCL(Data Control Language、數(shù)據(jù)控制語言)
- 用于定義數(shù)據(jù)庫、表、字段、用戶的訪問權(quán)限和安全級別。
- 主要的語句關鍵字包括GRANT、REVOKE、COMMIT、ROLLBACK、SAVEPOINT等。
還有單獨將COMMIT、ROLLBACK 取出來稱為TCL (Transaction Control Language,事務控制語言)。
SQL語言的規(guī)則與規(guī)范
基本規(guī)則
- SQL 可以寫在一行或者多行。為了提高可讀性,各子句分行寫,必要時使用縮進
- 每條命令以 ; 或 \g 或 \G 結(jié)束
- 關鍵字不能被縮寫也不能分行
- 關于標點符號
- 必須保證所有的()、單引號、雙引號是成對結(jié)束的
- 必須使用英文狀態(tài)下的半角輸入方式
- 字符串型和日期時間類型的數(shù)據(jù)可以使用單引號表示
- 列的別名,盡量使用雙引號,而且不建議省略as
大小寫規(guī)范
- MySQL 在 Windows 環(huán)境下是大小寫不敏感的
- MySQL 在 Linux 環(huán)境下是大小寫敏感的
- 數(shù)據(jù)庫名、表名、表的別名、變量名是嚴格區(qū)分大小寫的
- 關鍵字、函數(shù)名、列名(或字段名)、列的別名(字段的別名) 是忽略大小寫的。
- 推薦采用統(tǒng)一的書寫規(guī)范:
- 數(shù)據(jù)庫名、表名、表別名、字段名、字段別名等都小寫
- SQL 關鍵字、函數(shù)名、綁定變量等都大寫
注釋
可以使用如下格式的注釋結(jié)構(gòu)
單行注釋:#注釋文字(MySQL特有的方式) 單行注釋:-- 注釋文字(--后面必須包含一個空格。) 多行注釋:/* 注釋文字 */命名規(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)關鍵字或系統(tǒng)函數(shù)名等預定義標識符重名了 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; #錯誤,如果字段別名中有空格,那么不能省略""常見的數(shù)據(jù)庫對象
| 表(TABLE) | 表是存儲數(shù)據(jù)的邏輯單元,以行和列的形式存在,列就是字段,行就是記錄 |
| 數(shù)據(jù)字典 | 就是系統(tǒng)表,存放數(shù)據(jù)庫相關信息的表。系統(tǒng)表的數(shù)據(jù)通常由數(shù)據(jù)庫系統(tǒng)維護,程序員通常不應該修改,只可查看 |
| 約束(CONSTRAINT) | 執(zhí)行數(shù)據(jù)校驗的規(guī)則,用于保證數(shù)據(jù)完整性的規(guī)則 |
| 視圖(VIEW) | 一個或者多個數(shù)據(jù)表里的數(shù)據(jù)的邏輯顯示,視圖并不存儲數(shù)據(jù) |
| 索引(INDEX) | 用于提高查詢性能,相當于書的目錄 |
| 存儲過程(PROCEDURE) | 用于完成一次完整的業(yè)務處理,沒有返回值,但可通過傳出參數(shù)將多個值傳給調(diào)用環(huán)境 |
| 存儲函數(shù)(FUNCTION) | 用于完成一次特定的計算,具有一個返回值 |
| 觸發(fā)器(TRIGGER) | 相當于一個事件監(jiān)聽器,當數(shù)據(jù)庫發(fā)生特定事件后,觸發(fā)器被觸發(fā),完成相應的處理 |
參考
尚硅谷宋紅康: MySQL數(shù)據(jù)庫(入門到高級,菜鳥到大牛).
本文完,感謝您的關注支持!
總結(jié)
以上是生活随笔為你收集整理的【宋红康 MySQL数据库】【03】SQL概述_常见的数据库对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Clickhouse求时间差
- 下一篇: 【宋红康 MySQL数据库 】【高级篇】