柚子快報(bào)激活碼778899分享:MySQL學(xué)習(xí)筆記—基礎(chǔ)篇
柚子快報(bào)激活碼778899分享:MySQL學(xué)習(xí)筆記—基礎(chǔ)篇
MySQL數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)
概念:建立在關(guān)系模型基礎(chǔ)上,由多張相互連接的二維表組成的數(shù)據(jù)庫(kù)
特點(diǎn):
使用表存儲(chǔ),格式統(tǒng)一,便于維護(hù)使用SQL語(yǔ)言操作,標(biāo)準(zhǔn)統(tǒng)一,使用方便
數(shù)據(jù)模型
安裝好MySQL數(shù)據(jù)庫(kù)之后,計(jì)算機(jī)就成了數(shù)據(jù)庫(kù)的服務(wù)器通過(guò)客戶端連接MySQL管理系統(tǒng)(DBMS)使用SQL語(yǔ)句通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng),創(chuàng)建數(shù)據(jù)庫(kù)也可以通過(guò)SQL語(yǔ)句,通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng),指定某一個(gè)數(shù)據(jù)庫(kù),來(lái)創(chuàng)建表在一個(gè)數(shù)據(jù)庫(kù)服務(wù)器當(dāng)中是可以創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)的在一個(gè)數(shù)據(jù)庫(kù)當(dāng)中又可以創(chuàng)建多張表
SQL語(yǔ)句
SQL通用語(yǔ)法
SQL語(yǔ)句可以單行或者多行書寫,以分號(hào)結(jié)尾SQL語(yǔ)句可以使用空格縮進(jìn)來(lái)增強(qiáng)語(yǔ)句的可讀性MySQL數(shù)據(jù)庫(kù)的SQL語(yǔ)句不區(qū)分大小寫,關(guān)鍵字建議使用大寫注釋:
單行注釋:-- 注釋內(nèi)容 或者 # 注釋內(nèi)容多行注釋:/* 注釋內(nèi)容 */
SQL分類
分類說(shuō)明DDL (Data Definition Language)數(shù)據(jù)定義語(yǔ)言,用來(lái)定義數(shù)據(jù)庫(kù)對(duì)象(數(shù)據(jù)庫(kù),表,字段)DML (Data Manipulation Language)數(shù)據(jù)操作語(yǔ)言,用來(lái)對(duì)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行增刪改DQL (Data Query Language)數(shù)據(jù)查詢語(yǔ)言,用來(lái)查詢數(shù)據(jù)庫(kù)表中的記錄DCL (Data Control Language)數(shù)據(jù)控制語(yǔ)言,用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)用戶,控制數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限
DDL
數(shù)據(jù)庫(kù)操作
-- 查詢所有數(shù)據(jù)庫(kù)
SHOW DATABASES;
-- 查詢當(dāng)前數(shù)據(jù)庫(kù)
SELECT DATABASE();
-- 創(chuàng)建數(shù)據(jù)庫(kù),[ ]里面的內(nèi)容是可選的,可以寫也可以不寫
CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名 [DEFAULT CHARSET 字符集] [COLLATE 排序規(guī)則];
-- [IF NOT EXISTS]:如果數(shù)據(jù)庫(kù)名稱不存在則創(chuàng)建,如果存在不執(zhí)行任何操作
-- [DEFAULT CHARSET 字符集]:指定當(dāng)前數(shù)據(jù)庫(kù)的字符編碼
-- [COLLATE 排序規(guī)則]:指定對(duì)應(yīng)的排序規(guī)則
-- 刪除數(shù)據(jù)庫(kù)
DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫(kù)名;
-- [IF EXISTS]:如果存在就刪除,不存在,不執(zhí)行任何操作
-- 使用數(shù)據(jù)庫(kù)
USE 數(shù)據(jù)庫(kù)名;
表操作 - 查詢
-- 查詢當(dāng)前數(shù)據(jù)庫(kù)所有表
SHOW TABLES;
-- 查詢表結(jié)構(gòu)
DESC 表名;
-- 查詢指定表的建表語(yǔ)句
SHOW CREATE TABLE 表名;
表操作 - 創(chuàng)建
CREATE TABLE 表名(
字段1 字段類型 [COMMENT 字段注釋],
字段2 字段類型 [COMMENT 字段注釋],
...
字段n 字段類型 [COMMENT 字段注釋]
)[COMMENT 表注釋];
表操作 - 修改
-- 給表結(jié)構(gòu)添加字段
ALTER TABLE 表名 ADD 字段名 類型(長(zhǎng)度) [COMMENT 注釋] [約束];
-- 修改數(shù)據(jù)類型
ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類型(長(zhǎng)度);
-- 修改字段名和字段類型
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型(長(zhǎng)度) [COMMENT 注釋] [約束];
-- 刪除字段
ALTER TABLE 表名 DROP 字段名;
-- 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
-- 刪除表
DROP TABLE [IF EXISTS] 表名;
-- 刪除指定表,并重新創(chuàng)建該表
TRUNCATE TABLE 表名;
DML
對(duì)數(shù)據(jù)進(jìn)行增刪改操作
-- 給指定字段添加數(shù)據(jù)
INSERT INTO 表名(字段1,字段2,...) VALUES (值1,值2,...);
-- 給全部字段添加數(shù)據(jù)
INSERT INTO 表名 VALUES (值1,值2,...);
-- 批量添加數(shù)據(jù)
INSERT INTO 表名(字段1,字段2,...) VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
-- 修改數(shù)據(jù)
UPDATE 表名 SET 字段1=值1,字段2=值2,... [WHERE 條件];
-- 刪除數(shù)據(jù)
DELETE FROM 表名 [WHERE 條件];
注意:
字符串和日期類型數(shù)據(jù)使用引號(hào)包裹起來(lái)插入數(shù)據(jù)的大小,應(yīng)該在字段的規(guī)定范圍內(nèi)修改語(yǔ)句的條件可以有,也可以沒有,如果沒有條件,則會(huì)修改整張表所有數(shù)據(jù)刪除語(yǔ)句如果沒有設(shè)置條件。則會(huì)刪除整張表的數(shù)據(jù)如果要?jiǎng)h除某一個(gè)字段的值,可以使用update,把那個(gè)值置空
DQL
對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行查詢
基礎(chǔ)查詢
-- 查詢返回多個(gè)字段
SELECT 字段1,字段2,... FROM 表名;
-- 查詢返回所有字段
SELECT * FROM 表名;
-- 設(shè)置別名查詢
SELECT 字段1[AS 別名1],字段2[AS 別名2]... FROM 表名;
-- 去除重復(fù)記錄
SELECT DISTINCT 字段列表 FROM 表名;
條件查詢
SELECT 字段列表 FROM 表名 WHERE 條件列表;
比較運(yùn)算符功能>大于<小于>=大于等于<=小于等于=等于<> 或 !=不等于BETWEEN…AND…在某個(gè)范圍之內(nèi)(含最小,最大值)IN(…)在in之后的列表中的值,多選一LIKE 占位符模糊匹配 ( _匹配單個(gè)字符,%匹配任意個(gè)字符 )IS NULL是null邏輯運(yùn)算符AND 或 &&并且,(多個(gè)條件同時(shí)成立)OR 或 ||或者,(多個(gè)條件任意一個(gè)成立)NOT 或 !非,不是
聚合函數(shù):將一列數(shù)據(jù)作為一個(gè)整體,進(jìn)行縱向計(jì)算
SELECT 聚合函數(shù)(字段列表) FROM 表名;
函數(shù)功能count統(tǒng)計(jì)數(shù)量max最大值min最小值avg平均值sum求和
注意:所有null不參與計(jì)算
分組查詢
SELECT 字段列表 FROM 表名 [WHERE 條件] GROUP BY 分組字段名 [HAVING 分組后過(guò)濾條件];
注意:where 與 having區(qū)別
執(zhí)行時(shí)機(jī)不同:where是分組前進(jìn)行過(guò)濾,不滿足where條件,不參與分組,having是分組之后對(duì)結(jié)果進(jìn)行過(guò)濾判斷條件不同:where不能對(duì)聚合函數(shù)進(jìn)行判斷,而having可以執(zhí)行順序:where > 聚合函數(shù) > having分組之后,查詢的字段一般為聚合函數(shù)和分組字段,查詢其他字段無(wú)任何意義
排序查詢
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式,字段2 排序方式2,...;
注意:
排序方式
ASC:升序(默認(rèn)值)DESC:降序 如果是多字段排序,當(dāng)?shù)匾粋€(gè)字段值相同時(shí),才會(huì)根據(jù)第二個(gè)字段進(jìn)行排序
分頁(yè)查詢
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查詢記錄數(shù);
注意:
起始索引從0開始,起始索引 = (查詢頁(yè)碼 - 1) 每頁(yè)顯示記錄數(shù)*分頁(yè)查詢是數(shù)據(jù)庫(kù)的方言,不同的數(shù)據(jù)庫(kù)有不同的表現(xiàn),MySQL 中是 LIMIT如果查詢的是第一頁(yè)數(shù)據(jù),起始索引可以省略,直接簡(jiǎn)寫為 LIMIT 10
DCL
用戶管理
-- 查詢用戶
USE mysql;
SELECT * FROM user;
-- 創(chuàng)建用戶
CREATE USER '用戶名'@'主機(jī)名' IDENTIFIED BY '密碼';
-- 修改用戶密碼
ALTER USER '用戶名'@'主機(jī)名' IDENTIFIED WHIT mysql_native_password BY '新密碼';
-- 刪除用戶
DROP USER '用戶名'@'主機(jī)名';
注意:
主機(jī)名可以使用 % 通配這類SQL開發(fā)人員操作的比較少,主要是DBA(數(shù)據(jù)庫(kù)管理員)使用
權(quán)限控制
-- 查詢權(quán)限
SHOW GRANTS FOR '用戶名'@'主機(jī)名';
-- 授予權(quán)限
GRANT 權(quán)限列表 NO 數(shù)據(jù)庫(kù)名.表名 TO '用戶名'@'主機(jī)名';
-- 撤銷權(quán)限
REVOKE 權(quán)限列表 NO 數(shù)據(jù)庫(kù)名.表名 FROM '用戶名'@'主機(jī)名';
權(quán)限說(shuō)明ALL , ALL PRIVILEGES所有權(quán)限SELECT查詢數(shù)據(jù)INSERT插入數(shù)據(jù)UPDATE修改數(shù)據(jù)DELETE刪除數(shù)據(jù)ALTER修改表DROP刪除數(shù)據(jù)庫(kù) / 表 / 視圖CREATE創(chuàng)建數(shù)據(jù)庫(kù) / 表
注意:
多個(gè)權(quán)限之間,使用逗號(hào)分隔授權(quán)時(shí),數(shù)據(jù)庫(kù)名和表名可以使用 * 進(jìn)行通配,代表所有
函數(shù)
字符串函數(shù)
-- 函數(shù)演示
SELECT 函數(shù)(參數(shù));
-- 字符串拼接:concat
select concat('Hello','MySQL');
-- 字符串轉(zhuǎn)換為小寫:lower
select lower('ABCDEFG');
-- 字符串轉(zhuǎn)換為大寫:upper
select upper('abcdefg');
-- 左填充:lpad
select lpad('01',5,'-');
-- 右填充:rpad
select rpad('01',5,'-');
-- 去掉頭部和尾部空格:trim
select trim(' Hello Word ');
-- 從字符串的起始位置(start)開始截取,截取len個(gè)字符的長(zhǎng)度:substring
select substring('Hello Word',1,5);
函數(shù)功能CONCAT(S1,S2,…Sn)字符串拼接LOWER(str)將字符串全部轉(zhuǎn)換為小寫UPPER(str)將字符串全部轉(zhuǎn)換為大寫LPAD(str, n, pad)左填充,使用pad對(duì)字符串左邊進(jìn)行填充n個(gè)字符串長(zhǎng)度RPAD(str, n, pad)右填充,使用pad對(duì)字符串右邊進(jìn)行填充n個(gè)字符串長(zhǎng)度TRIM(str)去掉字符串頭部和尾部的空格SUBSTRING(str, start, len)從字符串的起始位置(start)開始截取,截取len個(gè)字符的長(zhǎng)度,返回結(jié)果
數(shù)值函數(shù)
-- 演示數(shù)值函數(shù)
-- 向上取整:ceil
select ceil(2.1);
-- 向下取整:floor
select floor(5.9);
-- 返回x/y的模:mod
select mod(2,3);
-- 返回0-1內(nèi)的隨機(jī)數(shù):rand
select rand();
-- 求參數(shù)x四舍五入的值,保留y位小數(shù):round
select round(3.15926,2);
-- 通過(guò)數(shù)據(jù)庫(kù)的函數(shù)生成一個(gè)6位數(shù)的隨機(jī)驗(yàn)證碼
select round(rand()*1000000,0) as '驗(yàn)證碼';
函數(shù)功能CEIL(x)向上取整FLOOR(x)向下取整MOD(x,y)返回x/y的模RAND()返回0-1內(nèi)的隨機(jī)數(shù)ROUND(x,y)求參數(shù)x四舍五入的值,保留y位小數(shù)
日期函數(shù)
-- 日期函數(shù)演示
-- 返回當(dāng)前 日期,時(shí)間,日期和時(shí) / curdate,curtime,now
select curdate();
select curtime();
select now();
-- 獲取指定的 年份,月份,日期 / year,month,day
select year (now());
select month (now());
select day (now());
-- 返回一個(gè)日期,指定的時(shí)間(date)加上間隔的時(shí)間(expr)后的時(shí)間值:date_add
select datE_add(now(), interval 96 DAY);
-- 返回起始時(shí)間和結(jié)束時(shí)間之間的天數(shù):datediff
select datediff('2001-6-5',now());
-- 查詢所有入職員工的入職天數(shù),并根據(jù)入職天數(shù)倒序排序
select name '姓名', datediff(curdate(), entrydate)as 'entr' from emp order by entr desc;
函數(shù)功能CURDATE()返回當(dāng)前日期CURTIME()返回當(dāng)前時(shí)間NOW()返回當(dāng)前日期和時(shí)間YEAR(date)獲取指定date的年份MONTH(date)獲取指定date的月份DAY(date)獲取指定date的日期DATE_ADD(date, INTERVAL expr type)返回一個(gè)日期/時(shí)間值加上一個(gè)時(shí)間間隔expr后的時(shí)間值DATEDIFF(date1,date2)返回起始時(shí)間和結(jié)束時(shí)間之間的天數(shù)
流程控制函數(shù)
-- 流程函數(shù)演示
-- if
select if (true,'Hello','Word');
-- ifnull
select ifnull(null ,'default');
-- 查詢員工表的員工姓名和員工地址,北京/上海---線城市,其他---二線城市
select
name,
(case workaddress when '北京' then '一線城市' when '上海' then '一線城市' else '二線城市' end) as '工作地址'
from emp;
函數(shù)功能IF(value,t,f)如果value為true,則返回t,否則返回fIFNULL(value1,value2)如果value不為空,返回value1,否則返回value2CASE [value] when [res] …ELSE [default] END如果value為true,返回res,…否則返回默認(rèn)值
約束
概念:約束是作用于表中字段上的規(guī)則,用于限制存儲(chǔ)在表中的數(shù)據(jù)
目的:保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確,有效性和完整性
分類:
約束說(shuō)明關(guān)鍵字非空約束限制該字段的數(shù)據(jù)不能為nullNOT NULL唯一約束保證該字段的所有數(shù)據(jù)都是唯一,不重復(fù)的UNIQUE主鍵約束主鍵是一行數(shù)據(jù)的唯一標(biāo)識(shí),要求非空且唯一PRIMARY KEY默認(rèn)約束保持?jǐn)?shù)據(jù)時(shí),如果未指定該字段的值,則采用默認(rèn)值DEFAULT檢查約束保證字段值滿足某一個(gè)條件CHECK外鍵約束用來(lái)讓兩張表的數(shù)據(jù)之間建立連接,保證數(shù)據(jù)的一致性和完整性FOREIGN KEY
注意:
約束是作用于表中字段上的,可以在創(chuàng)建表/修改表的時(shí)候添加約束auto_increment 關(guān)鍵字:自動(dòng)增長(zhǎng)
-- 約束演示
create table user(
id int primary key auto_increment comment '主鍵',
name varchar(10) not null unique comment '姓名',
age int check(age > 0 and age <= 120) comment '年齡',
gender char(1) comment '性別'
)comment '用戶表';
-- 添加外鍵
CREATE TABLE 表名(
字段名 數(shù)據(jù)類型,
...
[CONSTRAINT][外鍵名稱]FOREIGN KEY(外鍵字段名) REFERENCES 主表(主表列名)
);
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY(外鍵字段名) REFERENCES 主表(主表列名);
-- 刪除外鍵
ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱;
-- 外鍵約束行為
ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY(外鍵字段名) REFERENCES 主表(主表列名) NO UPDATE 行為 NO DELETE 行為;
外鍵約束:刪除 / 更新行為
行為說(shuō)明NO ACTION對(duì)父表進(jìn)行刪除或更新操作時(shí),如果有對(duì)應(yīng)外鍵,則不允許刪除或更新RESTRICT對(duì)父表進(jìn)行刪除或更新操作時(shí),如果有對(duì)應(yīng)外鍵,則不允許刪除或更新CASCADE對(duì)父表進(jìn)行刪除或更新操作時(shí),如果有對(duì)應(yīng)外鍵,則也刪除或更新子表中的記錄SET NULL對(duì)父表進(jìn)行刪除操作時(shí),如果有對(duì)應(yīng)外鍵,則設(shè)置子表中該外鍵值為null(這里要求該外鍵允許取null)SET DEFAULT父表有變更時(shí),子表將外鍵設(shè)置成一個(gè)默認(rèn)的值
多表查詢
多表關(guān)系
一對(duì)多:在多的一方建立外鍵,指向一的一方的主鍵多對(duì)多:建立第三張中間表,中間表至少包含兩個(gè)外鍵,分別關(guān)聯(lián)兩方主鍵一對(duì)一:在任意的一方加入外鍵,關(guān)聯(lián)另外一方的主鍵,并且設(shè)置外鍵唯一的(NUIQUE)
多表查詢概念
指從多張表中查詢數(shù)據(jù)笛卡爾積:是指在數(shù)學(xué)中,兩個(gè)集合A和集合B的所有組合情況,在多表查詢時(shí)需要消除無(wú)效的笛卡爾積
多表查詢分類
連接查詢
內(nèi)連接:相當(dāng)于A,B交集部分的數(shù)據(jù)外連接
左外連接:查詢左表所有數(shù)據(jù),以及兩張表交集部分?jǐn)?shù)據(jù)右外連接:查詢右表所有數(shù)據(jù),以及兩張表交集部分?jǐn)?shù)據(jù) 自連接:當(dāng)前表與自身的連接查詢,自連接必須使用表別名,可以是內(nèi)連接也可以是外連接 子查詢:sql 語(yǔ)句中嵌套 SELECT 語(yǔ)句,稱之為嵌套,又稱為子查詢
標(biāo)量子查詢:子查詢結(jié)果為單個(gè)值
常用操作符:=,<>,>,>=,<,<= 列子查詢:子查詢結(jié)果為一列(可以是多行)
常用操作符:IN,NOT IN,ANY,SOME,ALL
操作符說(shuō)明IN在指定的集合范圍內(nèi),多選一NOT IN不在指定的集合范圍內(nèi)ANY子查詢返回列表中,有任意一個(gè)滿足即可SOME與ANY等同,使用SOME的地方都可以使用ANYALL子查詢返回列表的所有值必須滿足
行子查詢:子查詢結(jié)果為一行(可以是多列)表子查詢:子查詢結(jié)果為多行多列
內(nèi)連接
-- 隱式內(nèi)連接
SELECT 字段列表 FROM 表1,表2 WHERE 條件...;
-- 顯式內(nèi)連接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 連接條件...;
外連接
-- 左外連接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 條件...;
-- 右外連接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 條件...;
自連接
SELECT 字段列表 FROM 表A 別名A JOIN 表B ON 條件
聯(lián)合查詢
-- 聯(lián)合查詢:就是把多次查詢的結(jié)果合并起來(lái),形成一個(gè)新的查詢結(jié)果集
SELECT 字段列表 FROM 表A...
UNION [ALL]
SELECT 字段列表 FROM 表B...;
-- UNION ALL:直接對(duì)查詢結(jié)果進(jìn)行合并
-- UNION:對(duì)查詢結(jié)果進(jìn)行合并之后并去重
-- 聯(lián)合查詢:多張表的列數(shù)必須保持一致,字段類型也必須保持一致
事務(wù)
概念:
事務(wù)是一組操作的集合,它會(huì)把所有操作作為一個(gè)整體向系統(tǒng)提交或撤銷操作,這些操作要么同時(shí)成功要么同時(shí)失敗MySQL的事務(wù)是默認(rèn)提交的,當(dāng)執(zhí)行一條DML語(yǔ)句,MySQL會(huì)立即隱式的提交事務(wù)
-- 查看事務(wù)的提交方式
select @@autocommit;
-- 設(shè)置手動(dòng)提交
set @@autocommit = 0;
-- 開啟事務(wù)
start transaction;
-- 操作語(yǔ)句...
-- 提交事務(wù)
commit;
-- 回滾事務(wù)
rollback;
事物的四大特性:
原子性:(Atomicity) 事務(wù)是不可分割的最小操作單元,要么全部成功,要么全部失敗一致性:(Consistency) 事務(wù)完成,必須使所有的數(shù)據(jù)都保持一致狀態(tài)隔離性:(Isolation) 數(shù)據(jù)庫(kù)系統(tǒng)提供的隔離機(jī)制,保證事務(wù)在不受外部并發(fā)操作影響的獨(dú)立環(huán)境下運(yùn)行持久性:(Durability) 事務(wù)一旦提交或回滾,它對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的改變就是永久的
并發(fā)事務(wù)問(wèn)題
問(wèn)題描述臟讀一個(gè)事務(wù)讀到另外一個(gè)事務(wù)還沒提交的數(shù)據(jù)不可重復(fù)讀一個(gè)事務(wù)先后讀取同一條記錄,但兩次讀取的數(shù)據(jù)不同幻讀一個(gè)事務(wù)按照條件查詢數(shù)據(jù)時(shí),沒有對(duì)應(yīng)的數(shù)據(jù)行,但是再插入數(shù)據(jù)時(shí),又發(fā)現(xiàn)這行數(shù)據(jù)已存在
事務(wù)的隔離級(jí)別
隔離級(jí)別臟讀不可重復(fù)讀幻讀Read uncommitted√√√Read committed×√√Repeatable Read(默認(rèn))××√Serializable×××
-- 查看事務(wù)隔離級(jí)別
SELECT @@TRANSACTION_ISOLATION;
-- 設(shè)置事務(wù)隔離級(jí)別
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {事務(wù)隔離級(jí)別};
注意:事務(wù)隔離級(jí)別越高,數(shù)據(jù)越安全,但是性能越低
柚子快報(bào)激活碼778899分享:MySQL學(xué)習(xí)筆記—基礎(chǔ)篇
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。