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