欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:云計(jì)算:MySQL

柚子快報(bào)激活碼778899分享:云計(jì)算:MySQL

http://yzkb.51969.com/

第一周第一天-MySQL的SQL語句解析

數(shù)據(jù)庫的介紹

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

數(shù)據(jù)庫是存儲(chǔ)和管理數(shù)據(jù)的系統(tǒng)或集合,通常用于支持軟件系統(tǒng)的高效數(shù)據(jù)處理和查詢。它能夠以結(jié)構(gòu)化的方式組織數(shù)據(jù),使用戶可以快速存儲(chǔ)、更新、查詢和刪除數(shù)據(jù)。數(shù)據(jù)庫不僅保存數(shù)據(jù),還提供了并發(fā)性控制、數(shù)據(jù)安全、備份和恢復(fù)等重要功能。 數(shù)據(jù)庫的種類

關(guān)系型數(shù)據(jù)庫(Relational Database, RDBMS)

使用表格(表、行、列)來組織和存儲(chǔ)數(shù)據(jù),數(shù)據(jù)之間通過關(guān)系進(jìn)行關(guān)聯(lián)。采用結(jié)構(gòu)化查詢語言(SQL)來進(jìn)行操作。常見的關(guān)系型數(shù)據(jù)庫:

MySQLPostgreSQLOracleMicrosoft SQL ServerMariaDB 非關(guān)系型數(shù)據(jù)庫(NoSQL Database)

不使用傳統(tǒng)的表格結(jié)構(gòu),適合處理大規(guī)模、非結(jié)構(gòu)化數(shù)據(jù)。通常用于高并發(fā)、可擴(kuò)展的系統(tǒng)中,數(shù)據(jù)可以存儲(chǔ)為鍵值對(duì)、文檔、列族等形式。常見的非關(guān)系型數(shù)據(jù)庫:

MongoDBCassandraRedisCouchDB 內(nèi)存數(shù)據(jù)庫(In-memory Database)

數(shù)據(jù)存儲(chǔ)在內(nèi)存中,而不是磁盤上,提供極高的讀寫速度。常用于需要快速數(shù)據(jù)處理的場(chǎng)景,如緩存、實(shí)時(shí)分析等。常見的內(nèi)存數(shù)據(jù)庫:

RedisMemcached 圖數(shù)據(jù)庫(Graph Database)

專門為存儲(chǔ)和查詢圖狀數(shù)據(jù)結(jié)構(gòu)(節(jié)點(diǎn)和邊)設(shè)計(jì),適合處理社交網(wǎng)絡(luò)、推薦系統(tǒng)等關(guān)系復(fù)雜的應(yīng)用場(chǎng)景。常見的圖數(shù)據(jù)庫:

Neo4jArangoDB 時(shí)間序列數(shù)據(jù)庫(Time-series Database)

專為處理時(shí)間序列數(shù)據(jù)設(shè)計(jì),常用于物聯(lián)網(wǎng)、金融、監(jiān)控等場(chǎng)景。常見的時(shí)間序列數(shù)據(jù)庫:

InfluxDBPrometheus 生產(chǎn)環(huán)境常用的數(shù)據(jù)庫

MySQL(mariaDB的產(chǎn)生是因?yàn)閾?dān)心MySQL閉源,MySQL原作者開發(fā)的新開源項(xiàng)目)

開源且廣泛使用的關(guān)系型數(shù)據(jù)庫,適用于中小型應(yīng)用以及大型的Web服務(wù)。 PostgreSQL

功能強(qiáng)大且支持復(fù)雜查詢的開源關(guān)系型數(shù)據(jù)庫,適用于需要處理復(fù)雜數(shù)據(jù)操作的系統(tǒng)。 Oracle

商用的關(guān)系型數(shù)據(jù)庫系統(tǒng),具有極強(qiáng)的性能和可靠性,常用于大型企業(yè)級(jí)應(yīng)用。 Microsoft SQL Server

微軟的關(guān)系型數(shù)據(jù)庫,常見于Windows生態(tài)系統(tǒng)中的企業(yè)應(yīng)用。 MongoDB

典型的文檔型NoSQL數(shù)據(jù)庫,適合需要快速擴(kuò)展、處理海量數(shù)據(jù)的應(yīng)用,常見于互聯(lián)網(wǎng)公司。 Redis

高性能的內(nèi)存數(shù)據(jù)庫,常用于緩存、會(huì)話管理等需要高吞吐量的場(chǎng)景。 關(guān)系型數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫介紹

關(guān)系型數(shù)據(jù)庫(Relational Database, RDBMS)是一種通過表格形式來存儲(chǔ)和組織數(shù)據(jù)的數(shù)據(jù)庫類型。每張表由行(記錄)和列(字段)構(gòu)成,表與表之間通過關(guān)系來連接,從而實(shí)現(xiàn)對(duì)復(fù)雜數(shù)據(jù)的管理。 關(guān)系型數(shù)據(jù)庫小結(jié)

優(yōu)勢(shì):

數(shù)據(jù)一致性強(qiáng):關(guān)系型數(shù)據(jù)庫通過事務(wù)、約束等手段確保數(shù)據(jù)一致性,特別適合財(cái)務(wù)等高精度、高可靠性場(chǎng)景。復(fù)雜查詢支持:可以通過SQL進(jìn)行復(fù)雜的多表查詢、聚合和聯(lián)接,適合數(shù)據(jù)分析和復(fù)雜數(shù)據(jù)管理。數(shù)據(jù)規(guī)范化:通過表結(jié)構(gòu)設(shè)計(jì),避免數(shù)據(jù)冗余和不一致問題。 劣勢(shì):

擴(kuò)展性有限:在海量數(shù)據(jù)或高并發(fā)應(yīng)用中,關(guān)系型數(shù)據(jù)庫的性能和擴(kuò)展性受到約束,特別是在橫向擴(kuò)展方面。性能瓶頸:復(fù)雜的表聯(lián)接和事務(wù)處理在面對(duì)大規(guī)模數(shù)據(jù)時(shí),可能導(dǎo)致性能問題。 使用場(chǎng)景:

適用于具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)關(guān)系明確、對(duì)數(shù)據(jù)一致性要求高的場(chǎng)景,如金融、銀行、電子商務(wù)系統(tǒng)等。 非關(guān)系型數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫簡介

非關(guān)系型數(shù)據(jù)庫(NoSQL,Not Only SQL)是一類不遵循傳統(tǒng)關(guān)系型數(shù)據(jù)庫表結(jié)構(gòu)的數(shù)據(jù)庫,主要用于處理大規(guī)模、非結(jié)構(gòu)化數(shù)據(jù),特別是在互聯(lián)網(wǎng)和大數(shù)據(jù)領(lǐng)域。NoSQL數(shù)據(jù)庫能夠更好地應(yīng)對(duì)高并發(fā)、海量數(shù)據(jù)和靈活的數(shù)據(jù)模型需求。 非關(guān)系型數(shù)據(jù)庫分類

鍵值數(shù)據(jù)庫(Key-Value Database)

數(shù)據(jù)以鍵值對(duì)的形式存儲(chǔ),類似于哈希表,查詢時(shí)通過鍵快速找到對(duì)應(yīng)的值。常見數(shù)據(jù)庫:Redis、DynamoDB、Riak 文檔數(shù)據(jù)庫(Document Database)

數(shù)據(jù)以文檔的形式存儲(chǔ),通常使用JSON、BSON或XML格式,每個(gè)文檔都可以有不同的結(jié)構(gòu)。常見數(shù)據(jù)庫:MongoDB、CouchDB 列族數(shù)據(jù)庫(Column Family Database)

數(shù)據(jù)以列的形式存儲(chǔ),常用于處理稀疏數(shù)據(jù)和大規(guī)模數(shù)據(jù)的查詢優(yōu)化。常見數(shù)據(jù)庫:Cassandra、HBase 圖數(shù)據(jù)庫(Graph Database)

專門處理圖狀結(jié)構(gòu)的數(shù)據(jù)庫,節(jié)點(diǎn)和邊可以高效地表示實(shí)體及其關(guān)系,適用于社交網(wǎng)絡(luò)、推薦系統(tǒng)等場(chǎng)景。常見數(shù)據(jù)庫:Neo4j、ArangoDB 時(shí)間序列數(shù)據(jù)庫(Time-series Database)

主要用于存儲(chǔ)時(shí)間序列數(shù)據(jù),適合處理物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)、金融數(shù)據(jù)等。常見數(shù)據(jù)庫:InfluxDB、Prometheus 安裝MySQL(在linux上,csdn上這么多也沒說要按照倉庫啊?。。。。?/p>

yum remove 其他數(shù)據(jù)庫添加mysql倉庫:sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm(要刷新一下yum repolist)安裝mysql:sudo yum install mysql-community-server(可能會(huì)報(bào)錯(cuò),如果是驗(yàn)證失敗就關(guān)閉驗(yàn)證)啟動(dòng)并且開機(jī)自啟動(dòng):sudo systemctl start mysqld; sudo systemctl enable mysqld獲取 MySQL 臨時(shí)密碼:sudo grep 'temporary password' /var/log/mysqld.log

運(yùn)行 MySQL 安全設(shè)置:使用臨時(shí)密碼登錄 MySQL(看看可不可以用),然后在shell中運(yùn)行安全設(shè)置程序來配置 root 密碼等安全選項(xiàng):mysql_secure_installation

我想設(shè)置簡單密碼,但是必須要完成密碼重置后才可以

登錄 MySQL:查看密碼策略設(shè)置:SHOW VARIABLES LIKE 'validate_password%';修改密碼策略(可選):

設(shè)置密碼策略為 LOW:SET GLOBAL validate_password.policy = LOW;設(shè)置最小密碼長度為 6:SET GLOBAL validate_password.length = 6;可以選擇降低對(duì)特殊字符和數(shù)字的要求:SET GLOBAL validate_password.mixed_case_count = 0; SET GLOBAL validate_password.number_count = 0; SET GLOBAL validate_password.special_char_count = 0;更改密碼:ALTER USER 'root'@'localhost' IDENTIFIED BY '簡單密碼';

使用新密碼登錄 MySQL:mysql -u root -p怎么切換版本

查看已啟用的 MySQL 倉庫:yum repolist enabled | grep mysql禁用 MySQL 8.0 倉庫:sudo yum-config-manager --disable mysql80-community啟用 MySQL 5.7 倉庫:sudo yum-config-manager --enable mysql57-community(這一步就是在配置文件內(nèi)修改enable=1/0)啟用目標(biāo)版本倉庫后,你可以通過 yum 安裝 MySQL 5.7。(步驟和mysql80一樣,要先刪除80)驗(yàn)證一下:mysql --version 結(jié)構(gòu)化查詢語言SQL(exit退出mysql)

數(shù)據(jù)定義語言ddl

-- 數(shù)據(jù)定義語言(DDL)命令

-- 1. 創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE database_name; -- 創(chuàng)建一個(gè)名為 database_name 的新數(shù)據(jù)庫

-- 用于創(chuàng)建一個(gè)新的數(shù)據(jù)庫,包含數(shù)據(jù)表和其他數(shù)據(jù)庫對(duì)象。

-- 2. 刪除數(shù)據(jù)庫

DROP DATABASE database_name; -- 刪除名為 database_name 的數(shù)據(jù)庫

-- 用于永久刪除指定的數(shù)據(jù)庫及其所有內(nèi)容,操作不可逆。

-- 3. 使用數(shù)據(jù)庫

USE database_name; -- 選擇并使用指定的數(shù)據(jù)庫

-- 在執(zhí)行后續(xù)命令時(shí),指定要操作的數(shù)據(jù)庫,確保所有操作在該數(shù)據(jù)庫中進(jìn)行。

-- 4.創(chuàng)建表命令

CREATE TABLE table_name ( -- 創(chuàng)建一個(gè)名為 table_name 的新表

column1 datatype [constraints], -- 定義第一列的名稱、數(shù)據(jù)類型及可選約束

column2 datatype [constraints], -- 定義第二列的名稱、數(shù)據(jù)類型及可選約束

... -- 可以添加更多列

PRIMARY KEY (column_name), -- 指定主鍵,唯一標(biāo)識(shí)表中的每一行

FOREIGN KEY (column_name) REFERENCES other_table(column_name), -- 定義外鍵約束,引用其他表的主鍵

UNIQUE (column_name), -- 定義唯一約束,確保該列中的值唯一

CHECK (condition), -- 定義檢查約束,確保列中的值滿足指定條件

DEFAULT default_value -- 定義默認(rèn)值,當(dāng)插入時(shí)未指定該列的值時(shí)使用

);

-- 用于定義表的結(jié)構(gòu),包括列名稱、數(shù)據(jù)類型、約束等。

-- 示例:創(chuàng)建一個(gè)名為 Employees 的表

CREATE TABLE Employees ( -- 創(chuàng)建一個(gè)名為 Employees 的表

EmployeeID INT NOT NULL AUTO_INCREMENT, -- 定義 EmployeeID 列,設(shè)置為非空且自動(dòng)增加

FirstName VARCHAR(50) NOT NULL, -- 定義員工的名字,設(shè)置為非空

LastName VARCHAR(50) NOT NULL, -- 定義員工的姓氏,設(shè)置為非空

HireDate DATE DEFAULT CURRENT_DATE, -- 定義雇用日期,默認(rèn)為當(dāng)前日期

Salary DECIMAL(10, 2), -- 定義薪資,允許兩個(gè)小數(shù)位

PRIMARY KEY (EmployeeID) -- 將 EmployeeID 列設(shè)為主鍵

);

-- 使用 AUTO_INCREMENT 生成唯一標(biāo)識(shí)符,EmployeeID 列的值在每次插入新行時(shí)自動(dòng)增加

-- 5. 刪除表

DROP TABLE table_name; -- 刪除名為 table_name 的表

-- 用于永久刪除指定的表及其所有數(shù)據(jù),操作不可逆。

-- 6. 修改表

ALTER TABLE table_name -- 修改表結(jié)構(gòu)

ADD column_name datatype; -- 添加新列

-- 例如:ALTER TABLE table_name ADD age INT; -- 添加一個(gè)名為 age 的整數(shù)列

ALTER TABLE table_name

MODIFY column_name new_datatype; -- 修改已有列的數(shù)據(jù)類型

-- 例如:ALTER TABLE table_name MODIFY age VARCHAR(3); -- 將 age 列的數(shù)據(jù)類型改為 VARCHAR(3)

ALTER TABLE table_name

DROP COLUMN column_name; -- 刪除指定的列

-- 例如:ALTER TABLE table_name DROP COLUMN age; -- 刪除名為 age 的列

-- 7. 添加約束

ALTER TABLE table_name

ADD CONSTRAINT constraint_name UNIQUE (column_name); -- 為指定列添加唯一約束

-- 用于確保在列中不允許重復(fù)的值。

ALTER TABLE table_name

ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES other_table (other_column); -- 添加外鍵約束

-- 用于定義兩張表之間的關(guān)系,確保數(shù)據(jù)的完整性。

ALTER TABLE table_name

ADD CONSTRAINT constraint_name CHECK (condition); -- 添加檢查約束

-- 用于確保列中的數(shù)據(jù)滿足特定條件。

-- 8. 刪除約束

ALTER TABLE table_name

DROP CONSTRAINT constraint_name; -- 刪除指定的約束

-- 用于刪除已存在的約束(如主鍵、外鍵或唯一約束)。

-- 9. 創(chuàng)建索引

CREATE INDEX index_name ON table_name (column_name); -- 在指定列上創(chuàng)建索引

-- 用于加速對(duì)表中數(shù)據(jù)的查詢操作,通常在經(jīng)常查詢的列上創(chuàng)建索引。

-- 10. 刪除索引

DROP INDEX index_name ON table_name; -- 刪除指定的索引

-- 用于刪除先前創(chuàng)建的索引,以釋放存儲(chǔ)空間或提高性能。

-- 11. 重命名表

ALTER TABLE old_table_name RENAME TO new_table_name; -- 將表重命名

-- 用于更改表的名稱,保持表的內(nèi)容不變。

-- 12. 重命名列

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name; -- 將列重命名

-- 用于更改表中列的名稱,保持列的數(shù)據(jù)不變。

-- 13. 創(chuàng)建視圖

CREATE VIEW view_name AS -- 創(chuàng)建一個(gè)名為 view_name 的視圖

SELECT column1, column2

FROM table_name

WHERE condition; -- 視圖可以用來簡化復(fù)雜查詢

-- 用于定義一個(gè)虛擬表,可以簡化對(duì)復(fù)雜查詢的訪問。

-- 14. 刪除視圖

DROP VIEW view_name; -- 刪除名為 view_name 的視圖

-- 用于永久刪除指定的視圖。

-- 15. 創(chuàng)建觸發(fā)器

CREATE TRIGGER trigger_name -- 創(chuàng)建一個(gè)觸發(fā)器

AFTER INSERT ON table_name -- 觸發(fā)器將在插入操作后執(zhí)行

FOR EACH ROW

BEGIN

-- 觸發(fā)器執(zhí)行的操作,例如:

INSERT INTO log_table (log_message) VALUES ('Record inserted');

END;

-- 用于在特定事件發(fā)生時(shí)自動(dòng)執(zhí)行一段 SQL 代碼。

-- 16. 刪除觸發(fā)器

DROP TRIGGER trigger_name; -- 刪除名為 trigger_name 的觸發(fā)器

-- 用于永久刪除指定的觸發(fā)器。

-- 17. 創(chuàng)建存儲(chǔ)過程

CREATE PROCEDURE procedure_name (parameter1 datatype, parameter2 datatype) -- 創(chuàng)建一個(gè)存儲(chǔ)過程

BEGIN

-- 存儲(chǔ)過程的 SQL 語句

END;

-- 用于封裝一組 SQL 語句,可以多次調(diào)用,支持參數(shù)傳遞。

-- 18. 刪除存儲(chǔ)過程

DROP PROCEDURE procedure_name; -- 刪除名為 procedure_name 的存儲(chǔ)過程

-- 用于永久刪除指定的存儲(chǔ)過程。

-- 19. 創(chuàng)建函數(shù)

CREATE FUNCTION function_name (parameter1 datatype) RETURNS return_datatype -- 創(chuàng)建一個(gè)函數(shù)

BEGIN

-- 函數(shù)的 SQL 語句

RETURN value; -- 返回計(jì)算結(jié)果

END;

-- 用于封裝一組 SQL 語句,并返回單個(gè)值,可以在查詢中使用。

-- 20. 刪除函數(shù)

DROP FUNCTION function_name; -- 刪除名為 function_name 的函數(shù)

-- 用于永久刪除指定的函數(shù)。

-- 21. 描述表的結(jié)構(gòu)

DESC table_name; -- 顯示名為 table_name 的表的結(jié)構(gòu)

-- 或

DESCRIBE table_name; -- 也可以使用 DESCRIBE 關(guān)鍵字

-- 用于查看表中各列的詳細(xì)信息,幫助理解表的設(shè)計(jì)。

數(shù)據(jù)操縱語言dml

數(shù)據(jù)操縱語言用于對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,包括插入、更新和刪除數(shù)據(jù)。 -- 數(shù)據(jù)操縱語言(DML)命令

-- 插入單條數(shù)據(jù)

INSERT INTO table_name (column1, column2, ...) -- 指定要插入數(shù)據(jù)的表名和列名

VALUES (value1, value2, ...); -- 指定要插入的值,與列名一一對(duì)應(yīng)

-- 插入多條數(shù)據(jù)

INSERT INTO table_name (column1, column2, ...) -- 指定要插入數(shù)據(jù)的表名和列名

VALUES

(value1_1, value2_1, ...), -- 第一條記錄的值

(value1_2, value2_2, ...); -- 第二條記錄的值

-- 可以繼續(xù)添加更多記錄,以逗號(hào)分隔

-- 更新數(shù)據(jù)

UPDATE table_name -- 指定要更新數(shù)據(jù)的表名

SET column1 = value1, column2 = value2, ... -- 指定要更新的列及其對(duì)應(yīng)的新值

WHERE condition; -- 指定更新的條件,只有滿足條件的記錄會(huì)被更新

-- 如果未指定 WHERE 子句,將更新表中所有記錄

-- 更新所有記錄

UPDATE table_name SET column1 = value1; -- 更新表中所有記錄的指定列為新值

-- 刪除數(shù)據(jù)

DELETE FROM table_name -- 指定要?jiǎng)h除數(shù)據(jù)的表名

WHERE condition; -- 指定刪除的條件,只有滿足條件的記錄會(huì)被刪除

-- 如果未指定 WHERE 子句,將刪除表中所有記錄

-- 刪除所有記錄

DELETE FROM table_name; -- 刪除表中所有記錄,但保留表的結(jié)構(gòu)和定義

-- 查詢數(shù)據(jù)

SELECT column1, column2, ... -- 指定要查詢的列名,多個(gè)列用逗號(hào)分隔

FROM table_name -- 指定要查詢的表名

WHERE condition; -- 指定查詢的條件,只有滿足條件的記錄會(huì)被返回

-- 查詢所有數(shù)據(jù)

SELECT * FROM table_name; -- 查詢表中所有列的所有記錄,* 表示所有列

-- 使用聚合函數(shù)統(tǒng)計(jì)記錄

SELECT COUNT(*) FROM table_name; -- 統(tǒng)計(jì)表中的記錄總數(shù),返回滿足條件的記錄數(shù)量

-- 使用分組統(tǒng)計(jì)

SELECT column1, COUNT(*) -- 查詢指定列及其記錄計(jì)數(shù)

FROM table_name

GROUP BY column1; -- 按 column1 分組,將相同值的記錄合并,計(jì)算每組的數(shù)量

-- 使用排序

SELECT column1, column2, ... -- 查詢指定列

FROM table_name

ORDER BY column1 ASC|DESC; -- 按照指定列進(jìn)行排序,ASC 表示升序,DESC 表示降序

-- 使用分組與排序結(jié)合

SELECT column1, COUNT(*) -- 查詢指定列及其記錄計(jì)數(shù)

FROM table_name

GROUP BY column1 -- 按 column1 分組

ORDER BY COUNT(*) DESC; -- 按計(jì)數(shù)結(jié)果降序排序

-- 使用條件限制返回結(jié)果

SELECT column1, column2, ... -- 查詢指定列

FROM table_name

WHERE condition -- 指定查詢的條件

LIMIT number; -- 限制返回結(jié)果的數(shù)量,number 是返回的最大行數(shù)

-- 使用 DISTINCT 關(guān)鍵字避免重復(fù)值

SELECT DISTINCT column1, column2 -- 查詢唯一的列值,避免重復(fù)記錄

FROM table_name; -- 指定要查詢的表

-- 使用 LIKE 進(jìn)行模糊查詢

SELECT column1, column2 -- 查詢指定列

FROM table_name

WHERE column1 LIKE 'pattern'; -- 指定模糊查詢的模式,使用 % 通配符表示任意字符

-- 使用 IN 進(jìn)行多值匹配

SELECT column1, column2 -- 查詢指定列

FROM table_name

WHERE column1 IN (value1, value2, ...); -- 指定匹配多個(gè)值的條件,只有列值在指定列表中的記錄會(huì)被返回

-- 使用 JOIN 連接多個(gè)表

SELECT a.column1, b.column2 -- 查詢多個(gè)表中的指定列

FROM table_a a -- 第一個(gè)表,a 是表的別名

JOIN table_b b ON a.common_column = b.common_column; -- 通過公共列連接表,b 是第二個(gè)表的別名

-- 使用 UNION 合并多個(gè)查詢結(jié)果

SELECT column1 FROM table_name_1 -- 從第一個(gè)表查詢指定列

UNION -- 合并結(jié)果,去除重復(fù)

SELECT column1 FROM table_name_2; -- 從第二個(gè)表查詢指定列

-- UNION ALL 可用于包括重復(fù)值

-- 使用 HAVING 進(jìn)行分組后條件限制

SELECT column1, COUNT(*) -- 查詢指定列及其記錄計(jì)數(shù)

FROM table_name

GROUP BY column1 -- 按 column1 分組

HAVING COUNT(*) > 1; -- 限制只返回記錄計(jì)數(shù)大于 1 的分組

事物控制語言tcl

事務(wù)控制語言用于管理數(shù)據(jù)庫事務(wù),確保數(shù)據(jù)的一致性和完整性。 -- 事務(wù)控制語言(TCL)命令

-- 開始事務(wù)

BEGIN; -- 開始一個(gè)新的事務(wù),后續(xù)的操作將在該事務(wù)中進(jìn)行

-- 該命令表示后續(xù)所有的數(shù)據(jù)庫操作將被視為一個(gè)整體,只有在提交時(shí)才會(huì)生效。

-- 提交事務(wù)

COMMIT; -- 提交當(dāng)前事務(wù),將所有在該事務(wù)中的操作永久保存到數(shù)據(jù)庫中

-- 一旦提交,所有更改將不可逆,其他用戶可以看到這些更改。

-- 回滾事務(wù)

ROLLBACK; -- 回滾當(dāng)前事務(wù),撤銷自事務(wù)開始以來所做的所有操作

-- 此命令用于恢復(fù)到事務(wù)開始之前的狀態(tài),所有未提交的更改將被撤銷。

-- 設(shè)置保存點(diǎn)

SAVEPOINT savepoint_name; -- 創(chuàng)建一個(gè)保存點(diǎn),允許在后續(xù)的回滾中返回到該保存點(diǎn)

-- 保存點(diǎn)是在事務(wù)中定義的,允許將事務(wù)分割為多個(gè)可恢復(fù)的部分。

-- 回滾到保存點(diǎn)

ROLLBACK TO savepoint_name; -- 將事務(wù)回滾到指定的保存點(diǎn),撤銷保存點(diǎn)之后的所有操作

-- 這使得開發(fā)者可以在事務(wù)中選擇性地撤回某些操作,而不是全部撤回。

-- 使用示例

BEGIN; -- 開始事務(wù)

-- 執(zhí)行多個(gè) SQL 操作

INSERT INTO table_name (column1, column2) VALUES (value1, value2); -- 插入數(shù)據(jù)

UPDATE table_name SET column1 = new_value WHERE condition; -- 更新數(shù)據(jù)

DELETE FROM table_name WHERE condition; -- 刪除數(shù)據(jù)

-- 根據(jù)條件決定是否提交或回滾

IF some_condition THEN

COMMIT; -- 如果條件滿足,提交事務(wù)

ELSE

ROLLBACK; -- 否則,回滾事務(wù)

END IF;

-- 示例中的條件邏輯可以根據(jù)業(yè)務(wù)需求進(jìn)行修改,例如根據(jù)插入、更新或刪除的結(jié)果決定是否提交事務(wù)。

數(shù)據(jù)查詢語言dql

數(shù)據(jù)查詢語言用于從數(shù)據(jù)庫中查詢數(shù)據(jù)。它通常使用 SELECT 語句來檢索數(shù)據(jù)。 -- 數(shù)據(jù)查詢語言(DQL)命令

-- 1. 基本查詢

SELECT column1 as '別名', column2, ... -- 指定要查詢的列名,多個(gè)列用逗號(hào)分隔

FROM table_name; -- 指定要查詢數(shù)據(jù)的表名

-- 該命令用于從指定的表中查詢數(shù)據(jù)。如果需要查詢所有列,可以使用 `SELECT *`。

-- 2. 使用條件查詢

SELECT column1, column2, ...

FROM table_name

WHERE condition; -- 使用 WHERE 子句指定查詢條件,返回滿足條件的記錄

-- WHERE 子句可以用于過濾數(shù)據(jù),例如根據(jù)特定的列值或表達(dá)式篩選記錄。

-- 3. 使用 DISTINCT 去重

SELECT DISTINCT column1 -- 查詢唯一的列值,避免返回重復(fù)的記錄

FROM table_name;

-- DISTINCT 用于確保查詢結(jié)果中的值都是唯一的,避免重復(fù)值的出現(xiàn)。

-- 4. 使用 ORDER BY 排序

SELECT column1, column2, ...

FROM table_name

ORDER BY column1 ASC|DESC; -- 按照指定列進(jìn)行排序,ASC 為升序,DESC 為降序

-- 通過 ORDER BY 子句,可以按一個(gè)或多個(gè)列進(jìn)行排序,方便用戶對(duì)結(jié)果進(jìn)行排列。

-- 5. 使用 LIMIT 限制返回記錄數(shù)

SELECT column1, column2, ...

FROM table_name

LIMIT number; -- 限制返回的記錄數(shù)量,number 表示最大行數(shù)

-- 該命令通常用于控制返回結(jié)果的行數(shù),特別是在返回大量數(shù)據(jù)時(shí)用于分頁或性能優(yōu)化。

-- 6. 使用 LIKE 進(jìn)行模糊查詢

SELECT column1, column2, ...

FROM table_name

WHERE column1 LIKE 'pattern'; -- 使用 LIKE 進(jìn)行模式匹配,% 表示任意多個(gè)字符

-- LIKE 通常用于進(jìn)行模糊匹配查詢,支持通配符 `%` 和 `_`。

-- 7. 使用聚合函數(shù)進(jìn)行統(tǒng)計(jì)

SELECT COUNT(*), SUM(column1), AVG(column1), MAX(column1), MIN(column1)

FROM table_name; -- 使用聚合函數(shù)進(jìn)行統(tǒng)計(jì)操作

-- 聚合函數(shù)用于對(duì)查詢結(jié)果進(jìn)行匯總操作,如計(jì)數(shù)、求和、平均值、最大值和最小值。

-- 8. 使用 GROUP BY 分組查詢

SELECT column1, COUNT(*)

FROM table_name

GROUP BY column1; -- 按指定列進(jìn)行分組,統(tǒng)計(jì)每個(gè)組的記錄數(shù)

-- GROUP BY 用于將結(jié)果集按一個(gè)或多個(gè)列分組,可以結(jié)合聚合函數(shù)對(duì)每組數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。

-- 9. 使用 HAVING 對(duì)分組結(jié)果進(jìn)行過濾

SELECT column1, COUNT(*)

FROM table_name

GROUP BY column1

HAVING COUNT(*) > 1; -- 使用 HAVING 對(duì)分組后的結(jié)果進(jìn)行過濾

-- HAVING 通常與 GROUP BY 一起使用,用于對(duì)分組后的結(jié)果進(jìn)行進(jìn)一步過濾。

-- 10. 使用 JOIN 進(jìn)行多表查詢

SELECT a.column1, b.column2

FROM table_a a

JOIN table_b b ON a.common_column = b.common_column; -- 使用 JOIN 連接多個(gè)表

-- JOIN 用于在多張表之間根據(jù)公共列進(jìn)行關(guān)聯(lián)查詢,可以通過 INNER JOIN、LEFT JOIN、RIGHT JOIN 等類型連接表。

-- 11. 使用 UNION 合并查詢結(jié)果

SELECT column1 FROM table_name_1

UNION

SELECT column1 FROM table_name_2; -- 合并兩個(gè)查詢結(jié)果,去除重復(fù)值

-- UNION 用于將多個(gè)查詢的結(jié)果合并在一起,并自動(dòng)去重。

-- 12. 使用 SUBQUERY 進(jìn)行子查詢

SELECT column1

FROM table_name

WHERE column2 IN (SELECT column2 FROM other_table WHERE condition); -- 使用子查詢

-- 子查詢可以在主查詢中作為條件,允許在查詢中嵌套其他查詢。

-- 13. WITH 子句(公用表表達(dá)式,CTE)

WITH cte_name AS (

SELECT column1, column2

FROM table_name

WHERE condition

)

SELECT *

FROM cte_name; -- 使用公用表表達(dá)式(CTE)進(jìn)行更復(fù)雜的查詢

-- CTE 使查詢更具可讀性,尤其是在嵌套查詢較多時(shí)。

-- 14. CASE 語句

SELECT column1,

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

ELSE default_result

END AS alias_name

FROM table_name; -- 根據(jù)條件返回不同的結(jié)果

-- 用于條件邏輯,允許在查詢中返回不同的值。

-- 15. EXISTS 關(guān)鍵字

SELECT column1

FROM table_name

WHERE EXISTS (SELECT 1 FROM other_table WHERE condition); -- 檢查子查詢的結(jié)果是否存在

-- 用于檢查某個(gè)條件是否至少返回一條記錄。

-- 16. GROUP_CONCAT 函數(shù)

SELECT column1, GROUP_CONCAT(column2)

FROM table_name

GROUP BY column1; -- 將多個(gè)行合并為一個(gè)字符串

-- 在分組結(jié)果中將多行數(shù)據(jù)合并為一個(gè)字符串。

-- 17. LIMIT 和 OFFSET 結(jié)合使用

SELECT column1, column2

FROM table_name

LIMIT number OFFSET offset_value; -- 用于分頁查詢

-- 限制查詢結(jié)果的數(shù)量,同時(shí)指定從哪一行開始返回記錄。

-- 18. FULL OUTER JOIN

SELECT a.column1, b.column2

FROM table_a a

FULL OUTER JOIN table_b b ON a.common_column = b.common_column; -- 返回兩個(gè)表中的所有記錄

-- 返回左表和右表的所有記錄,即使在其中一個(gè)表中沒有匹配的記錄。

-- 19. INTERSECT

SELECT column1 FROM table_name_1

INTERSECT

SELECT column1 FROM table_name_2; -- 返回兩個(gè)查詢的交集

-- 獲取兩個(gè)查詢結(jié)果的共同記錄。

-- 20. ROLLUP 和 CUBE

SELECT column1, SUM(column2)

FROM table_name

GROUP BY column1 WITH ROLLUP; -- 生成分組的匯總數(shù)據(jù)

-- ROLLUP 和 CUBE 用于生成多維匯總數(shù)據(jù)。

-- 21. UNNEST(適用于支持?jǐn)?shù)組的數(shù)據(jù)庫)

SELECT UNNEST(array_column) FROM table_name; -- 將數(shù)組列展開為多行

-- 將數(shù)組或集合類型的數(shù)據(jù)展開成多個(gè)行。

數(shù)據(jù)控制語言dcl

數(shù)據(jù)控制語言用于控制對(duì)數(shù)據(jù)的訪問權(quán)限,管理用戶的權(quán)限。 -- 數(shù)據(jù)控制語言(DCL)命令

-- 1. 授予權(quán)限

GRANT privilege_type ON object_type object_name TO user_name; -- 授予指定用戶權(quán)限

-- privilege_type:可以是 SELECT(查詢)、INSERT(插入)、UPDATE(更新)、DELETE(刪除)、ALL PRIVILEGES(所有權(quán)限)等。

-- object_type:可以是 TABLE(表)、DATABASE(數(shù)據(jù)庫)、PROCEDURE(存儲(chǔ)過程)等。

-- object_name:指定權(quán)限授予的對(duì)象名稱,例如:my_database.my_table。

-- user_name:需要授予權(quán)限的用戶名或角色,通常以 'username'@'host' 的形式指定。

-- 例:

-- GRANT SELECT ON my_database.my_table TO 'username'@'localhost'; -- 授予指定用戶在指定表上的 SELECT 權(quán)限

-- 2. 撤銷權(quán)限

REVOKE privilege_type ON object_type object_name FROM user_name; -- 撤銷指定用戶的權(quán)限

-- privilege_type、object_type、object_name 和 user_name 的含義與 GRANT 命令相同。

-- 例:

-- REVOKE SELECT ON my_database.my_table FROM 'username'@'localhost'; -- 撤銷指定用戶在指定表上的 SELECT 權(quán)限

-- 3. 顯示用戶權(quán)限

SHOW GRANTS FOR user_name; -- 顯示指定用戶的權(quán)限

-- 用于查看特定用戶在數(shù)據(jù)庫中的所有權(quán)限,以便確認(rèn)其訪問權(quán)限。

-- 例:

-- SHOW GRANTS FOR 'username'@'localhost'; -- 顯示指定用戶的所有權(quán)限信息

-- 4. 創(chuàng)建角色

CREATE ROLE role_name; -- 創(chuàng)建一個(gè)新的角色

-- 用于定義一組權(quán)限,這些權(quán)限可以集中管理并分配給多個(gè)用戶。

-- 例:

-- CREATE ROLE 'my_role'; -- 創(chuàng)建一個(gè)名為 my_role 的角色

-- 5. 授予角色權(quán)限

GRANT privilege_type ON object_type object_name TO role_name; -- 將權(quán)限授予角色

-- 角色可以集成多個(gè)權(quán)限,方便管理和分配。

-- 例:

-- GRANT SELECT, INSERT ON my_database.my_table TO 'my_role'; -- 授予角色在指定表上的 SELECT 和 INSERT 權(quán)限

-- 6. 授予角色給用戶

GRANT role_name TO user_name; -- 將角色授予指定用戶

-- 通過角色管理權(quán)限的分配,提高權(quán)限管理的靈活性。

-- 例:

-- GRANT 'my_role' TO 'username'@'localhost'; -- 將名為 my_role 的角色授予指定用戶

-- 7. 撤銷角色

REVOKE role_name FROM user_name; -- 從指定用戶撤銷角色

-- 撤銷用戶對(duì)角色的訪問權(quán)限,從而限制其權(quán)限。

-- 例:

-- REVOKE 'my_role' FROM 'username'@'localhost'; -- 從指定用戶撤銷角色

-- 8. 刪除角色

DROP ROLE role_name; -- 刪除指定的角色

-- 刪除不再需要的角色及其權(quán)限定義。

-- 例:

-- DROP ROLE 'my_role'; -- 刪除名為 my_role 的角色

-- 9. 設(shè)定默認(rèn)角色

SET DEFAULT ROLE role_name TO user_name; -- 為用戶設(shè)定默認(rèn)角色

-- 在用戶登錄時(shí)自動(dòng)使用該角色的權(quán)限。

-- 例:

-- SET DEFAULT ROLE 'my_role' TO 'username'@'localhost'; -- 將 my_role 設(shè)為指定用戶的默認(rèn)角色

-- 10. 角色權(quán)限檢查

SET ROLE role_name; -- 切換到指定角色

-- 允許用戶在登錄會(huì)話中使用角色的權(quán)限。

-- 例:

-- SET ROLE 'my_role'; -- 切換到名為 my_role 的角色

-- 11. 顯示當(dāng)前用戶

SELECT CURRENT_USER(); -- 顯示當(dāng)前連接的用戶

-- 用于確認(rèn)當(dāng)前連接的用戶身份,特別是在多用戶環(huán)境下。

-- 例:

-- SELECT CURRENT_USER(); -- 查詢當(dāng)前用戶信息

-- 12. 顯示當(dāng)前數(shù)據(jù)庫

SELECT DATABASE(); -- 顯示當(dāng)前使用的數(shù)據(jù)庫

-- 用于確認(rèn)當(dāng)前連接操作的是哪個(gè)數(shù)據(jù)庫。

-- 例:

-- SELECT DATABASE(); -- 查詢當(dāng)前數(shù)據(jù)庫信息

MySQL數(shù)據(jù)庫導(dǎo)入導(dǎo)出

-- 1. 導(dǎo)出整個(gè)數(shù)據(jù)庫

-- 使用 mysqldump 命令導(dǎo)出名為 database_name 的數(shù)據(jù)庫到一個(gè) SQL 文件中

-- 該命令在命令行中執(zhí)行,而非 SQL 中

-- 示例:mysqldump -u username -p database_name > database_dump.sql

-- 2. 導(dǎo)出特定表

-- 導(dǎo)出名為 table_name 的特定表到一個(gè) SQL 文件中

-- 該命令在命令行中執(zhí)行

-- 示例:mysqldump -u username -p database_name table_name > table_dump.sql

-- 3. 導(dǎo)出數(shù)據(jù)結(jié)構(gòu)而不導(dǎo)出數(shù)據(jù)

-- 僅導(dǎo)出名為 database_name 的數(shù)據(jù)庫結(jié)構(gòu),不包括數(shù)據(jù)

-- 該命令在命令行中執(zhí)行

-- 示例:mysqldump -u username -p -d database_name > database_structure.sql

-- 4. 導(dǎo)出所有數(shù)據(jù)庫

-- 導(dǎo)出所有數(shù)據(jù)庫到一個(gè) SQL 文件中

-- 該命令在命令行中執(zhí)行

-- 示例:mysqldump -u username -p --all-databases > all_databases_dump.sql

-- 5. 導(dǎo)入數(shù)據(jù)庫

-- 使用 mysql 命令將名為 database_dump.sql 的 SQL 文件導(dǎo)入到名為 database_name 的數(shù)據(jù)庫中

-- 示例:mysql -u username -p database_name < database_dump.sql

-- 6. 導(dǎo)入特定表

-- 將名為 table_dump.sql 的 SQL 文件導(dǎo)入到已存在的目標(biāo)數(shù)據(jù)庫中

-- 示例:mysql -u username -p database_name < table_dump.sql

-- 注意事項(xiàng)

-- - 在導(dǎo)入操作前,建議備份目標(biāo)數(shù)據(jù)庫,以防數(shù)據(jù)丟失

-- - 確保在執(zhí)行導(dǎo)入和導(dǎo)出操作的用戶具有足夠的權(quán)限

-- - 在導(dǎo)出或?qū)氪髷?shù)據(jù)集時(shí),可以考慮使用事務(wù)以確保數(shù)據(jù)一致性

-- - 設(shè)置適當(dāng)?shù)淖址ㄈ?UTF-8)以避免字符編碼問題

-- 7. 使用圖形界面工具

-- 對(duì)于不熟悉命令行的用戶,可以使用 phpMyAdmin、MySQL Workbench、Navicat 等圖形界面工具進(jìn)行簡單易用的導(dǎo)入和導(dǎo)出操作

柚子快報(bào)激活碼778899分享:云計(jì)算:MySQL

http://yzkb.51969.com/

參考鏈接

評(píng)論可見,查看隱藏內(nèi)容
大家都在看:

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19520404.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄