91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SQL數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)詳細(xì)說(shuō)明

Wildesbeast ? 來(lái)源:今日頭條 ? 作者:渝木木 ? 2020-02-04 14:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

如果說(shuō)前端應(yīng)用為網(wǎng)絡(luò)世界搭建起了一座座房子,那么數(shù)據(jù)庫(kù)數(shù)據(jù)就是住進(jìn)這些房子的人。

網(wǎng)絡(luò)世界(或者編程者的世界)與人類(lèi)世界是相反的。編程世界的技術(shù)核心與真相,是在底層的。個(gè)人認(rèn)為,無(wú)論是用怎樣的架構(gòu)部署,用怎樣的語(yǔ)言編碼或者方式展示,web應(yīng)用和手機(jī)應(yīng)用的底層,就是數(shù)據(jù)庫(kù)里面的數(shù)據(jù)。在這些數(shù)據(jù)下面,有更底層的東西,值得我們?nèi)W(xué)習(xí)、去探索、去挖掘?;蛟S哪天一不小心,我們就能挖到這個(gè)世界的真相。

思維導(dǎo)圖:

1- 思維導(dǎo)圖

1、數(shù)據(jù)庫(kù)的定義

數(shù)據(jù)庫(kù)是“按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)”。是一個(gè)長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、有共享的、統(tǒng)一管理的數(shù)據(jù)集合。

1、 數(shù)據(jù)庫(kù)是一個(gè)實(shí)體,它是能夠合理保管數(shù)據(jù)的“倉(cāng)庫(kù)”,用戶(hù)在該“倉(cāng)庫(kù)”中存放要管理的事務(wù)數(shù)據(jù),“數(shù)據(jù)”和“庫(kù)”兩個(gè)概念結(jié)合成為數(shù)據(jù)庫(kù)。

2、 數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的新方法和技術(shù),它能更合適的組織數(shù)據(jù)、更方便的維護(hù)數(shù)據(jù)、更嚴(yán)密的控制數(shù)據(jù)和更有效的利用數(shù)據(jù)。

2、數(shù)據(jù)庫(kù)管理系統(tǒng)

數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System)是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱(chēng)DBMS。它對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。用戶(hù)通過(guò)DBMS訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)管理員也通過(guò)DBMS進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)工作。它可以支持多個(gè)應(yīng)用程序和用戶(hù)用不同的方法在同時(shí)或不同時(shí)刻去建立,修改和詢(xún)問(wèn)數(shù)據(jù)庫(kù)。大部分DBMS提供數(shù)據(jù)定義語(yǔ)言DDL(Data Definition Language)和數(shù)據(jù)操作語(yǔ)言DML(Data Manipulation Language),供用戶(hù)定義數(shù)據(jù)庫(kù)的模式結(jié)構(gòu)與權(quán)限約束,實(shí)現(xiàn)對(duì)數(shù)據(jù)的追加、刪除等操作。

3、數(shù)據(jù)庫(kù)類(lèi)型

3.1、關(guān)系型數(shù)據(jù)庫(kù)

關(guān)系型數(shù)據(jù)庫(kù),存儲(chǔ)的格式可以直觀地反映實(shí)體間的關(guān)系。關(guān)系型數(shù)據(jù)庫(kù)和常見(jiàn)的表格比較相似,關(guān)系型數(shù)據(jù)庫(kù)中表與表之間是有很多復(fù)雜的關(guān)聯(lián)關(guān)系的。 常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)有Mysql,SqlServer等。

雖然關(guān)系型數(shù)據(jù)庫(kù)有很多,但是大多數(shù)都遵循SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言,Structured Query Language)標(biāo)準(zhǔn)。 常見(jiàn)的操作有查詢(xún),新增,更新,刪除,求和,排序等

3.2 非關(guān)系型數(shù)據(jù)庫(kù)(NoSQL)

NoSql數(shù)據(jù)庫(kù)如MongoDB、Redis、Memcache出于簡(jiǎn)化數(shù)據(jù)庫(kù)結(jié)構(gòu)、避免冗余、影響性能的表連接、摒棄復(fù)雜分布式的目的被設(shè)計(jì)。

非關(guān)系型數(shù)據(jù)庫(kù)的分類(lèi):

(1)鍵值對(duì)存儲(chǔ)(key-value):代表軟件Redis,它的優(yōu)點(diǎn)能夠進(jìn)行數(shù)據(jù)的快速查詢(xún),而缺點(diǎn)是需要存儲(chǔ)數(shù)據(jù)之間的關(guān)系。

(2)列存儲(chǔ):代表軟件Hbase,它的優(yōu)點(diǎn)是對(duì)數(shù)據(jù)能快速查詢(xún),數(shù)據(jù)存儲(chǔ)的擴(kuò)展性強(qiáng)。而缺點(diǎn)是數(shù)據(jù)庫(kù)的功能有局限性。

(3)文檔數(shù)據(jù)庫(kù)存儲(chǔ):代表軟件MongoDB,它的優(yōu)點(diǎn)是對(duì)數(shù)據(jù)結(jié)構(gòu)要求不特別的嚴(yán)格。而缺點(diǎn)是查詢(xún)性的性能不好,同時(shí)缺少一種統(tǒng)一查詢(xún)語(yǔ)言。

(4)圖形數(shù)據(jù)庫(kù)存儲(chǔ):代表軟件InfoGrid,它的優(yōu)點(diǎn)可以方便的利用圖結(jié)構(gòu)相關(guān)算法進(jìn)行計(jì)算。而缺點(diǎn)是要想得到結(jié)果必須進(jìn)行整個(gè)圖的計(jì)算,而且遇到不適合的數(shù)據(jù)模型時(shí),圖形數(shù)據(jù)庫(kù)很難使用。

3.3 NoSQL 與關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別

首先一般非關(guān)系型數(shù)據(jù)庫(kù)是基于CAP模型,而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)是基于ACID模型的。

其次在 數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)、可擴(kuò)展性、數(shù)據(jù)一致性上,兩者有一定的區(qū)別。

CAP定理:在理論計(jì)算機(jī)科學(xué)中,CAP定理(CAP theorem),又被稱(chēng)作布魯爾定理(Brewer's theorem),它指出對(duì)于一個(gè)分布式計(jì)算系統(tǒng)來(lái)說(shuō),不可能同時(shí)滿(mǎn)足以下三點(diǎn):

一致性(Consistency)(所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù))

可用性(Availability)(保證每個(gè)請(qǐng)求不管成功或者失敗都有響應(yīng))

分隔容忍(Partition tolerance)(系統(tǒng)中任意信息的丟失或失敗不會(huì)影響系統(tǒng)的繼續(xù)運(yùn)作)

ACID模型:ACID,是指數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)在寫(xiě)入/異動(dòng)資料的過(guò)程中,為保證交易(transaction)是正確可靠的,所必須具備的四個(gè)特性:

原子性(Atomicity,或稱(chēng)不可分割性)、

一致性(Consistency)

隔離性(Isolation,又稱(chēng)獨(dú)立性)

持久性(Durability)。

4、分布式數(shù)據(jù)庫(kù)

所謂的分布式數(shù)據(jù)庫(kù)技術(shù),就是結(jié)合了數(shù)據(jù)庫(kù)技術(shù)與分布式技術(shù)的一種結(jié)合。具體指的是把那些在地理意義上分散開(kāi)的各個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn),但在計(jì)算機(jī)系統(tǒng)邏輯上又是屬于同一個(gè)系統(tǒng)的數(shù)據(jù)結(jié)合起來(lái)的一種數(shù)據(jù)庫(kù)技術(shù)。

5、SQL定義與語(yǔ)法

5.1 什么是SQL

SQL 是用于訪(fǎng)問(wèn)和處理數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)的計(jì)算機(jī)語(yǔ)言

SQL 指結(jié)構(gòu)化查詢(xún)語(yǔ)言

SQL 使我們有能力訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)

SQL 是一種 ANSI 的標(biāo)準(zhǔn)計(jì)算機(jī)語(yǔ)言

5.2 語(yǔ)法

SQL 對(duì)大小寫(xiě)不敏感。

SQL 分為兩個(gè)部分:數(shù)據(jù)操作語(yǔ)言 (DML) 和 數(shù)據(jù)定義語(yǔ)言 (DDL)。

DML部分:

SELECT - 從數(shù)據(jù)庫(kù)表中獲取數(shù)據(jù)

UPDATE - 更新數(shù)據(jù)庫(kù)表中的數(shù)據(jù)

DELETE - 從數(shù)據(jù)庫(kù)表中刪除數(shù)據(jù)

INSERT INTO - 向數(shù)據(jù)庫(kù)表中插入數(shù)據(jù)

DDL部分:

CREATE DATABASE - 創(chuàng)建新數(shù)據(jù)庫(kù)

ALTER DATABASE - 修改數(shù)據(jù)庫(kù)

CREATE TABLE - 創(chuàng)建新表

ALTER TABLE - 變更(改變)數(shù)據(jù)庫(kù)表

DROP TABLE - 刪除表

CREATE INDEX - 創(chuàng)建索引(搜索鍵)

DROP INDEX - 刪除索引

6、SQL基本語(yǔ)句

6.1、SELECT語(yǔ)句

SELECT 列名稱(chēng) FROM 表名稱(chēng) ;SELECT * FROM 表名稱(chēng)。

SELECT 語(yǔ)句用于從表中選取數(shù)據(jù)。

結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中(稱(chēng)為結(jié)果集)。

星號(hào)(*)是選取所有列的快捷方式。

6.2、distinct語(yǔ)句

關(guān)鍵詞 DISTINCT 用于返回唯一不同的值。

SELECT DISTINCT 列名稱(chēng) FROM 表名稱(chēng)

6.3、where語(yǔ)句

WHERE 子句用于規(guī)定選擇的標(biāo)準(zhǔn)

SELECT 列名稱(chēng) FROM 表名稱(chēng) WHERE 列 運(yùn)算符 值;

運(yùn)算符:= <> > < >= <= BETWEEN LIKE AND OR

6.4、AND & OR語(yǔ)句

AND 和 OR 運(yùn)算符用于基于一個(gè)以上的條件對(duì)記錄進(jìn)行過(guò)濾。

AND 和 OR 可在 WHERE 子語(yǔ)句中把兩個(gè)或多個(gè)條件結(jié)合起來(lái)。

如果第一個(gè)條件和第二個(gè)條件都成立,則 AND 運(yùn)算符顯示一條記錄。

如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,則 OR 運(yùn)算符顯示一條記錄。

6.5、Order By語(yǔ)句

ORDER BY 語(yǔ)句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序。

ORDER BY 語(yǔ)句默認(rèn)按照升序(AES) 對(duì)記錄進(jìn)行排序。

如果您希望按照降序?qū)τ涗涍M(jìn)行排序,可以使用 DESC 關(guān)鍵字。

6.6、insert 語(yǔ)句

INSERT INTO 語(yǔ)句用于向表格中插入新的行;

INSERT INTO 表名稱(chēng) VALUES (值1, 值2,....)

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

6.7、update 語(yǔ)句

Update 語(yǔ)句用于修改表中的數(shù)據(jù)。

UPDATE 表名稱(chēng) SET 列名稱(chēng) = 新值 WHERE 列名稱(chēng) = 某值

6.7、delete語(yǔ)句

DELETE 語(yǔ)句用于刪除表中的行。

DELETE FROM 表名稱(chēng) WHERE 列名稱(chēng) = 值

6.8、Top子句

TOP 子句用于規(guī)定要返回的記錄的數(shù)目。

注釋?zhuān)翰⒎撬械臄?shù)據(jù)庫(kù)系統(tǒng)都支持 TOP 子句。

SQL Server 中:

SELECT TOP number|percent column_name(s) FROM table_name

MySql中:

SELECT column_name(s) FROM table_name LIMIT number

Oracle中:

SELECT column_name(s) FROM table_name WHERE ROWNUM <= number

6.9、通配符

在搜索數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),SQL 通配符可以替代一個(gè)或多個(gè)字符。

SQL 通配符必須與 LIKE 運(yùn)算符一起使用。

% 替代一個(gè)或多個(gè)字符

_ 僅替代一個(gè)字符

[charlist] 字符列中的任何單一字符

[^charlist] 或者 [!charlist] 不在字符列中的任何單一字符

6.10、IN操作符

IN 操作符允許我們?cè)?WHERE 子句中規(guī)定多個(gè)值。

SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

6.11、Aliases別名

通過(guò)使用 SQL,可以為列名稱(chēng)和表名稱(chēng)指定別名(Alias)。

SELECT column_name AS alias_name FROM table_name

7、SQL基本數(shù)據(jù)庫(kù)操作

7.1、JOIN表連接

SQL join 用于根據(jù)兩個(gè)或多個(gè)表中的列之間的關(guān)系,從這些表中查詢(xún)數(shù)據(jù)。

JOIN: 如果表中有至少一個(gè)匹配,則返回行

LEFT JOIN: 即使右表中沒(méi)有匹配,也從左表返回所有的行

RIGHT JOIN: 即使左表中沒(méi)有匹配,也從右表返回所有的行

FULL JOIN: 只要其中一個(gè)表中存在匹配,就返回行

關(guān)鍵字語(yǔ)法:

SELECT column_name(s)

FROM table_name1

JOIN(或者INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN) table_name2

ON table_name1.column_name=table_name2.column_name

7.2、UNION合并

UNION 操作符用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。

注意:UNION 內(nèi)部的 SELECT 語(yǔ)句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類(lèi)型。同時(shí),每條 SELECT 語(yǔ)句中的列的順序必須相同。

關(guān)鍵字語(yǔ)法:

SELECT column_name(s) FROM table_name1

UNION

SELECT column_name(s) FROM table_name2

注釋?zhuān)耗J(rèn)地,UNION 操作符選取不同的值。如果允許重復(fù)的值,請(qǐng)使用 UNION ALL。

7.3、表備份

SQL SELECT INTO 語(yǔ)句可用于創(chuàng)建表的備份復(fù)件。

SELECT INTO 語(yǔ)句從一個(gè)表中選取數(shù)據(jù),然后把數(shù)據(jù)插入另一個(gè)表中。

SELECT INTO 語(yǔ)句常用于創(chuàng)建表的備份復(fù)件或者用于對(duì)記錄進(jìn)行存檔。

語(yǔ)法:

SELECT * (或者指定列column_name(s))

INTO new_table_name [IN externaldatabase]

FROM old_tablename

注意:可以添加where子句,或者join連接等。

7.4、創(chuàng)建數(shù)據(jù)庫(kù)

CREATE DATABASE 用于創(chuàng)建數(shù)據(jù)庫(kù)。

語(yǔ)法:CREATE DATABASE database_name

7.5、創(chuàng)建數(shù)據(jù)庫(kù)表

CREATE TABLE 語(yǔ)句用于創(chuàng)建數(shù)據(jù)庫(kù)中的表。

語(yǔ)法:

CREATE TABLE 表名稱(chēng)

(

列名稱(chēng)1 數(shù)據(jù)類(lèi)型,

列名稱(chēng)2 數(shù)據(jù)類(lèi)型,

列名稱(chēng)3 數(shù)據(jù)類(lèi)型,

....

)

7.6、創(chuàng)建索引

CREATE INDEX 語(yǔ)句用于在表中創(chuàng)建索引。

在不讀取整個(gè)表的情況下,索引使數(shù)據(jù)庫(kù)應(yīng)用程序可以更快地查找數(shù)據(jù)。

創(chuàng)建簡(jiǎn)單索引的語(yǔ)法(允許使用重復(fù)的值):

CREATE INDEX index_name ON table_name (column_name);

在表上創(chuàng)建一個(gè)唯一的索引。唯一的索引意味著兩個(gè)行不能擁有相同的索引值。

CREATE UNIQUE INDEX index_name ON table_name (column_name);

7.7、DROP語(yǔ)句

通過(guò)使用 DROP 語(yǔ)句,可以輕松地刪除索引、表和數(shù)據(jù)庫(kù)。

DROP INDEX index_name 刪除索引,但是不同的數(shù)據(jù)庫(kù)有不同的用法:

例如MySQL:ALTER TABLE table_name DROP INDEX index_name

SQL Server:DROP INDEX table_name.index_name

DROP TABLE 表名稱(chēng) :刪除表

DROP DATABASE 數(shù)據(jù)庫(kù)名稱(chēng) :刪除數(shù)據(jù)庫(kù)

TRUNCATE TABLE 表名稱(chēng) :除去表內(nèi)的數(shù)據(jù),但并不刪除表本身

7.8 ALTER 語(yǔ)句

ALTER TABLE 語(yǔ)句用于在已有的表中添加、修改或刪除列。

例如:

ALTER TABLE table_name ADD column_name datatype

8、數(shù)據(jù)類(lèi)型

8.1、常用的數(shù)據(jù)類(lèi)型:

8-常用的數(shù)據(jù)類(lèi)型圖

8.2、Microsoft Access、MySQL 以及 SQL Server 所使用的數(shù)據(jù)類(lèi)型和范圍。

請(qǐng)參考W3school:SQL數(shù)據(jù)類(lèi)型

9、約束(Constraints)

約束用于限制加入表的數(shù)據(jù)的類(lèi)型。

可以在創(chuàng)建表時(shí)規(guī)定約束(通過(guò) CREATE TABLE 語(yǔ)句),或者在表創(chuàng)建之后也可以(通過(guò) ALTER TABLE 語(yǔ)句)。

主要約束:

NOT NULL 非空

NOT NULL 約束強(qiáng)制列不接受 NULL 值。

NOT NULL 約束強(qiáng)制字段始終包含值。這意味著,如果不向字段添加值,就無(wú)法插入新記錄或者更新記錄。

UNIQUE 唯一標(biāo)識(shí)

UNIQUE 約束唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每條記錄。

UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。

PRIMARY KEY 擁有自動(dòng)定義的 UNIQUE 約束。

請(qǐng)注意,每個(gè)表可以有多個(gè) UNIQUE 約束,但是每個(gè)表只能有一個(gè) PRIMARY KEY 約束。

PRIMARY KEY 主鍵

PRIMARY KEY 約束唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值。

每個(gè)表都應(yīng)該有一個(gè)主鍵,并且每個(gè)表只能有一個(gè)主鍵。

AUTO INCREMENT 字段

我們通常希望在每次插入新記錄時(shí),自動(dòng)地創(chuàng)建主鍵字段的值。

我們可以在表中創(chuàng)建一個(gè) auto-increment 字段。

FOREIGN KEY 外鍵

一個(gè)表中的 FOREIGN KEY 指向另一個(gè)表中的 PRIMARY KEY。

CHECK 限制值的范圍

DEFAULT 默認(rèn)值

10、視圖View

10.1、什么是視圖

在 SQL 中,視圖是基于 SQL 語(yǔ)句的結(jié)果集的可視化的表。

視圖包含行和列,就像一個(gè)真實(shí)的表。視圖中的字段就是來(lái)自一個(gè)或多個(gè)數(shù)據(jù)庫(kù)中的真實(shí)的表中的字段。我們可以向視圖添加 SQL 函數(shù)、WHERE 以及 JOIN 語(yǔ)句,我們也可以提交數(shù)據(jù),就像這些來(lái)自于某個(gè)單一的表。

注釋?zhuān)簲?shù)據(jù)庫(kù)的設(shè)計(jì)和結(jié)構(gòu)不會(huì)受到視圖中的函數(shù)、where 或 join 語(yǔ)句的影響。

10.2、語(yǔ)法

創(chuàng)建視圖

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

注釋?zhuān)阂晥D總是顯示最近的數(shù)據(jù)。每當(dāng)用戶(hù)查詢(xún)視圖時(shí),數(shù)據(jù)庫(kù)引擎通過(guò)使用 SQL 語(yǔ)句來(lái)重建數(shù)據(jù)。

更新視圖

CREATE OR REPLACE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

刪除視圖

DROP VIEW view_name

10.3、視圖的作用

視圖僅支持查詢(xún),不支持增刪改等數(shù)據(jù)操作。您可以將視圖當(dāng)作是一種臨時(shí)表。

視圖的作用:

1、 提高了sql代碼的復(fù)用性。

當(dāng)一個(gè)查詢(xún)你需要頻頻的作為子查詢(xún)使用時(shí),視圖可以簡(jiǎn)化代碼,直接調(diào)用而不是每次都去重復(fù)寫(xiě)這個(gè)東西。

2、 提高了數(shù)據(jù)的安全性。

系統(tǒng)的數(shù)據(jù)庫(kù)管理員,需要給他人提供一張表的某兩列數(shù)據(jù),而不希望他可以看到其他任何數(shù)據(jù),這時(shí)可以建一個(gè)只有這兩列數(shù)據(jù)的視圖,然后把視圖公布給他。

11、索引

索引是一種特殊的查詢(xún)表,可以被數(shù)據(jù)庫(kù)搜索引擎用來(lái)加速數(shù)據(jù)的檢索。簡(jiǎn)單說(shuō)來(lái),索引就是指向表中數(shù)據(jù)的指針。數(shù)據(jù)庫(kù)的索引同書(shū)籍后面的索引非常相像。

盡管創(chuàng)建索引的目的是提升數(shù)據(jù)庫(kù)的性能,但是還是有一些情況應(yīng)當(dāng)避免使用索引。下面幾條指導(dǎo)原則給出了何時(shí)應(yīng)當(dāng)重新考慮是否使用索引:

1、小的數(shù)據(jù)表不應(yīng)當(dāng)使用索引;

2、需要頻繁進(jìn)行大批量的更新或者插入操作的表;

3、如果列中包含大數(shù)或者 NULL 值,不宜創(chuàng)建索引;

4、頻繁操作的列不宜創(chuàng)建索引。

SQL中的索引分為兩種,一種為聚集索引和非聚集索引。

12、函數(shù)

常用的函數(shù):

AVG () : 返回?cái)?shù)值列的平均值。NULL 值不包括在計(jì)算中

COUNT() : 返回匹配指定條件的行數(shù)

MAX() : 返回一列中的最大值。NULL 值不包括在計(jì)算中

MIN() : 返回一列中的最小值。NULL 值不包括在計(jì)算中

SUM() : 返回?cái)?shù)值列的總數(shù)(總額)

不常用:

FIRST() : 返回指定的字段中第一個(gè)記錄的值

LAST() : 返回指定的字段中最后一個(gè)記錄的值。

UCASE() : 把字段的值轉(zhuǎn)換為大寫(xiě)

LCAS() : 把字段的值轉(zhuǎn)換為小寫(xiě)

MID() : 用于從文本字段中提取字符

LEN() : 返回文本字段中值的長(zhǎng)度

ROUND() : 用于把數(shù)值字段舍入為指定的小數(shù)位數(shù)

NOW() : 返回當(dāng)前的日期和時(shí)間

FORMA() : 用于對(duì)字段的顯示進(jìn)行格式化

REPLACE() : 字符串替換函數(shù)

CONCAT():將兩個(gè)字符串連接為一個(gè)字符串

GROUP BY 語(yǔ)句:

合計(jì)函數(shù) (比如 SUM) 常常需要添加 GROUP BY 語(yǔ)句。

語(yǔ)法:

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING 語(yǔ)句:

在 SQL 中增加 HAVING 子句原因是,WHERE 關(guān)鍵字無(wú)法與合計(jì)函數(shù)一起使用。

語(yǔ)法:

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

例如:

SELECT Customer,SUM(OrderPrice) FROM Orders

GROUP BY Customer

HAVING SUM(OrderPrice)<2000

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    791

    瀏覽量

    46729
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    4022

    瀏覽量

    68378
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    恒訊科技解析:如何安裝MySQL并創(chuàng)建數(shù)據(jù)庫(kù)

    管理系統(tǒng)(RDBMS),使用結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)高效地組織和管理數(shù)據(jù)。它是全球最受歡迎的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)之一,廣泛應(yīng)用于網(wǎng)頁(yè)開(kāi)發(fā)、電子商務(wù)和商業(yè)應(yīng)用。 常見(jiàn)用例? MySQL 是多種應(yīng)用的可靠選擇,包括: 網(wǎng)絡(luò)應(yīng)用:管理用戶(hù)認(rèn)
    的頭像 發(fā)表于 01-14 14:25 ?185次閱讀

    不用編程不用聯(lián)網(wǎng),實(shí)現(xiàn)倍福(BECKHOFF)PLC對(duì)接SQL數(shù)據(jù)庫(kù),上報(bào)和查詢(xún)數(shù)據(jù)的案例

    ?IGT-DSER智能網(wǎng)關(guān)模塊,支持各種PLC、智能儀表、遠(yuǎn)程IO與數(shù)據(jù)庫(kù)之間雙向通訊,既可以讀取設(shè)備的數(shù)據(jù)上報(bào)到SQL數(shù)據(jù)庫(kù),也可以從數(shù)據(jù)庫(kù)
    發(fā)表于 10-10 11:14

    mysql數(shù)據(jù)恢復(fù)—mysql數(shù)據(jù)庫(kù)表被truncate的數(shù)據(jù)恢復(fù)案例

    某云ECS網(wǎng)站服務(wù)器,linux操作系統(tǒng),部署了mysql數(shù)據(jù)庫(kù)。工作人員在執(zhí)行數(shù)據(jù)庫(kù)版本更新測(cè)試時(shí),錯(cuò)誤地將本應(yīng)在測(cè)試庫(kù)執(zhí)行的sql腳本在生產(chǎn)庫(kù)
    的頭像 發(fā)表于 09-11 09:28 ?885次閱讀
    mysql<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—mysql<b class='flag-5'>數(shù)據(jù)庫(kù)</b>表被truncate的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)慢查詢(xún)分析與SQL優(yōu)化實(shí)戰(zhàn)技巧

    今天,我將分享我在處理數(shù)千次數(shù)據(jù)庫(kù)性能問(wèn)題中積累的實(shí)戰(zhàn)經(jīng)驗(yàn),幫助你系統(tǒng)掌握慢查詢(xún)分析與SQL優(yōu)化的核心技巧。無(wú)論你是剛?cè)腴T(mén)的運(yùn)維新手,還是有一定經(jīng)驗(yàn)的工程師,這篇文章都將為你提供實(shí)用的解決方案。
    的頭像 發(fā)表于 09-08 09:34 ?1021次閱讀

    數(shù)據(jù)庫(kù)性能優(yōu)化指南

    作為一名在大廠摸爬滾打多年的運(yùn)維老兵,我見(jiàn)過(guò)太多因?yàn)?b class='flag-5'>數(shù)據(jù)庫(kù)性能問(wèn)題導(dǎo)致的生產(chǎn)事故。今天分享一套完整的數(shù)據(jù)庫(kù)優(yōu)化方法論,從SQL層面到硬件配置,幫你徹底解決性能瓶頸!
    的頭像 發(fā)表于 08-18 11:21 ?761次閱讀

    不用編程序無(wú)需聯(lián)外網(wǎng),將Rockwell羅克韋爾(AB)PLC的標(biāo)簽數(shù)據(jù)存入SQL數(shù)據(jù)庫(kù)

    的編程軟件從PLC導(dǎo)出CSV文件,然后復(fù)制到配置表,如下圖: 再打開(kāi)Navicat查看數(shù)據(jù)庫(kù)中的數(shù)據(jù),如下圖: 網(wǎng)關(guān)支持西門(mén)子、三菱、歐姆龍、施耐德等幾乎所有的PLC品牌,通過(guò)以上參數(shù)軟件自行切換即可;關(guān)于網(wǎng)關(guān)模塊的詳細(xì)介紹可查
    發(fā)表于 07-31 10:33

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle數(shù)據(jù)庫(kù)故障的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫(kù)故障: 某公司一臺(tái)服務(wù)器上部署Oracle數(shù)據(jù)庫(kù)。服務(wù)器意外斷電導(dǎo)致數(shù)據(jù)庫(kù)報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容為“system01.dbf需要更多的恢復(fù)來(lái)保持一致性”。該Oracle數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 07-24 11:12 ?664次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>故障的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫(kù)文件丟失的數(shù)據(jù)恢復(fù)案例

    MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)操作系統(tǒng)為Windows Server的虛擬機(jī)上部署MongoDB數(shù)據(jù)庫(kù)。 MongoDB數(shù)據(jù)庫(kù)故障: 工作人員在MongoDB服務(wù)仍
    的頭像 發(fā)表于 07-01 11:13 ?655次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server數(shù)據(jù)庫(kù)被加密,無(wú)法使用。 數(shù)據(jù)庫(kù)MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?696次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>SQL</b> Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b>被加密如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解
    的頭像 發(fā)表于 06-17 15:12 ?7230次閱讀
    達(dá)夢(mèng)<b class='flag-5'>數(shù)據(jù)庫(kù)</b>常用管理<b class='flag-5'>SQL</b>命令詳解

    大促數(shù)據(jù)庫(kù)壓力激增,如何一眼定位 SQL 執(zhí)行來(lái)源?

    你是否曾經(jīng)遇到過(guò)這樣的情況:在大促活動(dòng)期間,用戶(hù)訪(fǎng)問(wèn)量驟增,數(shù)據(jù)庫(kù)的壓力陡然加大,導(dǎo)致響應(yīng)變慢甚至服務(wù)中斷?更讓人頭疼的是,當(dāng)你試圖快速定位問(wèn)題所在時(shí),卻發(fā)現(xiàn)難以確定究竟是哪個(gè)業(yè)務(wù)邏輯中的 SQL
    的頭像 發(fā)表于 06-10 11:32 ?573次閱讀
    大促<b class='flag-5'>數(shù)據(jù)庫(kù)</b>壓力激增,如何一眼定位 <b class='flag-5'>SQL</b> 執(zhí)行來(lái)源?

    SQLSERVER數(shù)據(jù)庫(kù)是什么

    SQL Server 是由微軟公司開(kāi)發(fā)的一款 關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS) ,用于存儲(chǔ)、管理和檢索結(jié)構(gòu)化數(shù)據(jù)。它是企業(yè)級(jí)應(yīng)用中廣泛使用的數(shù)據(jù)庫(kù)解決方案之一,尤其適用于Window
    的頭像 發(fā)表于 05-26 09:19 ?1185次閱讀

    MySQL數(shù)據(jù)庫(kù)是什么

    開(kāi)發(fā)、企業(yè)應(yīng)用和大數(shù)據(jù)場(chǎng)景。以下是其核心特性和應(yīng)用場(chǎng)景的詳細(xì)說(shuō)明: 核心特性 關(guān)系型數(shù)據(jù)庫(kù)模型 數(shù)據(jù)以 表(Table) 形式組織,表由行(記錄)和列(字段)構(gòu)成。 通過(guò) 主鍵、外鍵
    的頭像 發(fā)表于 05-23 09:18 ?1239次閱讀

    不用編程不用聯(lián)網(wǎng),PLC和儀表直接對(duì)SQL數(shù)據(jù)庫(kù),有異常時(shí)還可先將數(shù)據(jù)緩存

    不用PLC編程也不用聯(lián)網(wǎng),還不用電腦,采用IGT-DSER智能網(wǎng)關(guān)實(shí)現(xiàn)PLC和儀表直接對(duì)SQL數(shù)據(jù)庫(kù)。 跟服務(wù)端通訊有異常時(shí)還可以先將數(shù)據(jù)暫存,待故障解除后自動(dòng)重新上報(bào)到數(shù)據(jù)庫(kù);也可
    發(fā)表于 04-12 10:47

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫(kù)文件拷貝后服務(wù)無(wú)法啟動(dòng)的數(shù)據(jù)恢復(fù)

    MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)Windows Server操作系統(tǒng)虛擬機(jī)上部署MongoDB數(shù)據(jù)庫(kù)。 MongoDB數(shù)據(jù)庫(kù)故障: 管理員在未關(guān)閉MongoDB服務(wù)的
    的頭像 發(fā)表于 04-09 11:34 ?882次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)——MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件拷貝后服務(wù)無(wú)法啟動(dòng)的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)