国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL從入門(mén)到快速上手

這篇具有很好參考價(jià)值的文章主要介紹了MySQL從入門(mén)到快速上手。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。




MySQL從入門(mén)到快速上手


第一章 了解SQL

  • 主鍵:表中每一行都應(yīng)該有一列(或幾列)可以唯一標(biāo)識(shí)自己。
    • 主鍵可以是一列構(gòu)成,也可以是幾列共同構(gòu)成。
    • 唯一 非空 不允許修改

第二章 檢索數(shù)據(jù)

  • 關(guān)于通配符:一般而言,除非你確實(shí)需要表中的每一列,否則最好別使用 * 通配符。
  • 檢索不同的值:DISTINCT
    • 不能部分使用 DISTINCT , DISTINCT 關(guān)鍵字作用于所有的列,不僅僅是跟在其后的那一列。
    • DISTINCT 需要放到所有列名的前面,如果寫(xiě)成 SELECT salary, DISTINCT department_id
      FROM employees 會(huì)報(bào)錯(cuò)。
    • DISTINCT 其實(shí)是對(duì)后面所有列名的組合進(jìn)行去重,你能看到最后的結(jié)果是 74 條,因?yàn)檫@ 74 個(gè)部
      門(mén)id不同,都有 salary 這個(gè)屬性值。如果你想要看都有哪些不同的部門(mén)(department_id),只
      需要寫(xiě) DISTINCT department_id 即可,后面不需要再加其他的列名了。
  • 限制結(jié)果:LIMIT
    • 注意:LIMIT 2 OFFSET 3 等價(jià)于 LIMIT 3, 2
  • 空值參與運(yùn)算
    • 所有運(yùn)算符或列值遇到 null 值,運(yùn)算的結(jié)果都為null
    • 這里一定要注意,在 MySQL 里面, 空值不等于空字符串。一個(gè)空字符串的長(zhǎng)度是 0,而一個(gè)空值的 長(zhǎng)度是空。而且,在 MySQL 里面,空值是占用空間的。
  • 空運(yùn)算符 和 非空運(yùn)算符
SELECT * FROM `om_fnd_company_user` where phone IS NULL
SELECT * FROM `om_fnd_company_user` where phone IS NOT NULL

第三章 排序

  • 排序:如果想在多個(gè)列上進(jìn)行降序排序,必須對(duì) **每一列 **指定 DESC 關(guān)鍵字。

第四章 過(guò)濾數(shù)據(jù)

  • 范圍:BETWEEN 5 AND 10 表示閉區(qū)間
SELECT id, name, age FROM student WHERE id BETWEEN 5 AND 10;
  • 空值
SELECT id, name, age FROM student WHERE age IS NULL;
  • 非空值
SELECT id, name, age FROM student WHERE age IS NOT NULL;

第五章 高級(jí)數(shù)據(jù)過(guò)濾

  • 注意:任何時(shí)候具有 AND 和 OR 操作符的 WHERE 子句,都應(yīng)該使用圓括號(hào)將加以區(qū)分。

  • NOT:在 WHERE 子句中,用來(lái)否定其后條件的順序。

SELECT id, name, age FROM student WHERE NOT id = 8; 
  • IN 操作符 一般比一組 OR 執(zhí)行的更快。

  • WHERE NOT

SELECT name FROM stu WHERE NOT age < 50;
  • 不要過(guò)度使用通配符,不得已了也盡量不要讓模糊查詢位于開(kāi)始處。

  • 分組函數(shù) AVG(), MAX(), MIN(), SUM() 會(huì)忽略 NULL 值。

  • COUNT(*) 與 COUNT(字段)

    • COUNT(*) 會(huì)統(tǒng)計(jì)所有列
    • COUNT(字段) 會(huì)統(tǒng)計(jì)非 NULL

第六章 多表查詢

要避免笛卡爾積。
對(duì)于數(shù)據(jù)庫(kù)中表記錄的查詢和變更,只要涉及多個(gè)表,都需要在列名前加表的別名(或 表名)進(jìn)行限定。

內(nèi)連接(交集)

合并具有同一列的兩個(gè)以上的表的行, 結(jié)果集中不包含一個(gè)表與另一個(gè)表不匹配的行
image.png
基本語(yǔ)法:

SELECT table1.column, table2.column,table3.column
FROM table1
JOIN table2 ON table1 和 table2 的連接條件
JOIN table3 ON table2 和 table3 的連接條件(有疑惑)

舉例1:

SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id
FROM employees e JOIN departments d
ON (e.department_id = d.department_id);

舉例2:

SELECT employee_id, city, department_name
FROM employees e
JOIN departments d
ON d.department_id = e.department_id
JOIN locations l
ON d.location_id = l.location_id;

外連接

兩個(gè)表在連接過(guò)程中除了返回滿足連接條件的行以外還返回左(或右)表中不滿足條件的行 ,這種連接稱為左(或右) 外連接。沒(méi)有匹配的行時(shí), 結(jié)果表中相應(yīng)的列為空(NULL)。

  • 如果是左外連接,則連接條件中左邊的表也稱為 主表 ,右邊的表稱為 從表 。

image.png

SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d 	# OUTER可以省略
ON (e.department_id = d.department_id) ;
  • 如果是右外連接,則連接條件中右邊的表也稱為 主表 ,左邊的表稱為 從表 。

image.png

SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d # OUTER可以省略
ON (e.department_id = d.department_id) ;

注意:我們要 控制連接表的數(shù)量 。多表連接就相當(dāng)于嵌套 for 循環(huán)一樣,非常消耗資源,會(huì)讓 SQL 查詢性能下降得很嚴(yán)重(建議不要超過(guò) 3 個(gè)),因此不要連接不必要的表。在許多 DBMS 中,也都會(huì)有最大連接表的限制。

多表連接


UNION

UNION 操作符返回兩個(gè)查詢的結(jié)果集的并集,去除重復(fù)記錄。

SELECT * FROM user WHERE did = 2
UNION
SELECT * FROM user WHERE did = 1 

UNION 操作符返回兩個(gè)查詢的結(jié)果集的并集,去除重復(fù)記錄。

UNION ALL

UNION ALL 操作符返回兩個(gè)查詢的結(jié)果集的并集。對(duì)于兩個(gè)結(jié)果集的重復(fù)部分,不去重。


第七章 單行函數(shù)

日期和時(shí)間函數(shù)

獲取日期、時(shí)間

函數(shù) 用法
CURDATE() ,CURRENT_DATE() 返回當(dāng)前日期,只包含 年、月、日
CURTIME() , CURRENT_TIME() 返回當(dāng)前時(shí)間,只包含 時(shí)、分、秒
NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP() 返回當(dāng)前系統(tǒng)日期和時(shí)間
UTC_DATE() 返回UTC(世界標(biāo)準(zhǔn)時(shí)間)日期
UTC_TIME() 返回UTC(世界標(biāo)準(zhǔn)時(shí)間)時(shí)間

圖文并茂的舉個(gè)栗子:
image.png
image.png
image.png
image.png

日期與時(shí)間戳的轉(zhuǎn)換

函數(shù) 用法
UNIX_TIMESTAMP() 以UNIX時(shí)間戳的形式返回當(dāng)前時(shí)間。
UNIX_TIMESTAMP(date) 將時(shí)間date以UNIX時(shí)間戳的形式返回。
FROM_UNIXTIME(timestamp) 將UNIX時(shí)間戳的時(shí)間轉(zhuǎn)換為普通格式的時(shí)間

獲取月份、星期、星期數(shù)、天數(shù)等函數(shù)

函數(shù) 用法
YEAR(date) / MONTH(date) / DAY(date) 返回具體的日期值
HOUR(time) / MINUTE(time) / SECOND(time) 返回具體的時(shí)間值
MONTHNAME(date) 返回月份:January,…
DAYNAME(date) 返回星期幾:MONDAY,TUESDAY…SUNDAY
WEEKDAY(date) 返回周幾,注意,周1是0,周2是1…周日 是6
QUARTER(date) 返回日期對(duì)應(yīng)的季度,范圍為1~4
WEEK(date) , WEEKOFYEAR(date) 返回一年中的第幾周
DAYOFYEAR(date) 返回日期是一年中的第幾天
DAYOFMONTH(date) 返回日期位于所在月份的第幾天
DAYOFWEEK(date) 返回周幾,注意:周日是1,周一是2…周六 是7

日期的操作函數(shù)

函數(shù) 用法
EXTRACT(type FROM date) 返回指定日期中特定的部分,type指定返回的值

EXTRACT(type FROM date)函數(shù)中type的取值與含義:
image.png
舉個(gè)栗子:
image.png

時(shí)間和秒鐘的轉(zhuǎn)換函數(shù)

函數(shù) 說(shuō)明
TIME_TO_SEC(time) 將 time 轉(zhuǎn)化為秒并返回結(jié)果值。轉(zhuǎn)化的公式為: 小時(shí)*3600+分鐘 *60+秒
SEC_TO_TIME(seconds) 將 seconds 描述轉(zhuǎn)化為包含小時(shí)、分鐘和秒的時(shí)間

計(jì)算日期和時(shí)間的函數(shù)

函數(shù) 用法
DATE_ADD(datetime, INTERVAL expr type), ADDDATE(date,INTERVAL expr type) 返回與給定日期時(shí)間相差I(lǐng)NTERVAL 時(shí)間段的日期時(shí)間
DATE_SUB(date,INTERVAL expr type), SUBDATE(date,INTERVAL expr type) 返回與date相差I(lǐng)NTERVAL時(shí)間間隔 的日期

上述函數(shù)中type的取值:
image.png

函數(shù) 說(shuō)明
ADDTIME(time1,time2) 返回time1加上time2的時(shí)間。當(dāng)time2為一個(gè)數(shù)字時(shí),代表 的是 秒 ,可以為負(fù)數(shù)
SUBTIME(time1,time2) 返回time1減去time2后的時(shí)間。當(dāng)time2為一個(gè)數(shù)字時(shí),代 表的是 秒 ,可以為負(fù)數(shù)
DATEDIFF(date1,date2) 返回date1 - date2的日期間隔天數(shù)
TIMEDIFF(time1, time2) 返回time1 - time2的時(shí)間間隔
FROM_DAYS(N) 返回從0000年1月1日起,N天以后的日期
TO_DAYS(date) 返回日期date距離0000年1月1日的天數(shù)
LAST_DAY(date) 返回date所在月份的最后一天的日期
MAKEDATE(year,n) 針對(duì)給定年份與所在年份中的天數(shù)返回一個(gè)日期
MAKETIME(hour,minute,second) 將給定的小時(shí)、分鐘和秒組合成時(shí)間并返回
PERIOD_ADD(time,n) 返回time加上n后的時(shí)間

日期的格式與解析

函數(shù) 說(shuō)明
DATE_FORMAT(date,fmt) 按照字符串fmt格式化日期date值
TIME_FORMAT(time,fmt) 按照字符串fmt格式化時(shí)間time值
GET_FORMAT(date_type,format_type) 返回日期字符串的顯示格式
STR_TO_DATE(str, fmt) 按照字符串fmt對(duì)str進(jìn)行解析,解析為一個(gè)日期

上述 非GET_FORMAT 函數(shù)中fmt參數(shù)常用的格式符:
image.png
GET_FORMAT函數(shù)中date_type和format_type參數(shù)取值如下:
image.png

流程控制函數(shù)

流程處理函數(shù)可以根據(jù)不同的條件,執(zhí)行不同的處理流程,可以在SQL語(yǔ)句中實(shí)現(xiàn)不同的條件選擇。 MySQL中的流程處理函數(shù)主要包括IF()、IFNULL()和CASE()函數(shù)。

函數(shù) 說(shuō)明
IF(value,value1,value2) 如果value的值為T(mén)RUE,返回 value1,否則返回value2
IFNULL(value1, value2) 如果value1不為NULL,返回 value1,否則返回value2
CASE WHEN 條件1 THEN 結(jié)果1 WHEN 條件2 THEN 結(jié) 果2 … [ELSE resultn] END 相當(dāng)于Java的if…else if…else…
CASE expr WHEN 常量值1 THEN 值1 WHEN 常量值1 THEN 值1 … [ELSE 值n] END 相當(dāng)于Java的switch…case…

圖文并茂的舉個(gè)栗子:
//todo


第八章 聚合函數(shù)

AVG()

SUM()

MAX()

MIN()

COUNT()

問(wèn)題:用 count(*),count(1),count(列名) 誰(shuí)好呢?

其實(shí),對(duì)于 MyISAM 引擎的表是沒(méi)有區(qū)別的。這種引擎內(nèi)部有一計(jì)數(shù)器在維護(hù)著行數(shù)。
**但是 **InnoDB 引擎的表用count(*),count(1)直接讀行數(shù),復(fù)雜度是O(n),因?yàn)?InnoDB 真的要去數(shù)一遍。 但好于具體的count(列名)。

問(wèn)題:能不能使用 count(列名) 替換 count(*) ?

不要使用 count(列名)來(lái)替代 count() , count() 是 SQL92 定義的標(biāo)準(zhǔn)統(tǒng)計(jì)行數(shù)的語(yǔ)法,跟數(shù) 據(jù)庫(kù)無(wú)關(guān),跟 NULL 和非 NULL 無(wú)關(guān)。 說(shuō)明:count(*)會(huì)統(tǒng)計(jì)值為 NULL 的行,而 count(列名)不會(huì)統(tǒng)計(jì)此列為 NULL 值的行。

GROUP BY

分組

SELECT AVG(salary)
FROM employees
GROUP BY department_id ;

多列進(jìn)行分組

SELECT department_id dept_id, job_id, SUM(salary)
FROM employees
GROUP BY department_id, job_id ;

除聚合函數(shù)語(yǔ)句外,SELECT 語(yǔ)句中的每一列都必須在 GROUP BY 字句中給出。

HAVING

過(guò)濾分組

SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary) > 10000 ;

注意: 不能在 WHERE 子句中使用聚合函數(shù)。
參考

WHERE 和 HAVING 的對(duì)比

區(qū)別1:WHERE 可以直接使用表中的字段作為篩選條件,但不能使用分組中的計(jì)算函數(shù)作為篩選條 件;HAVING 必須要與 GROUP BY 配合使用,可以把分組計(jì)算的函數(shù)和分組字段作為篩選條件。
這決定了,在需要對(duì)數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì)的時(shí)候,HAVING 可以完成 WHERE 不能完成的任務(wù)。這是因?yàn)椋诓樵冋Z(yǔ)法結(jié)構(gòu)中,WHERE 在 GROUP BY 之前,所以無(wú)法對(duì)分組結(jié)果進(jìn)行篩選。HAVING 在 GROUP BY 之后,可以使用分組字段和分組中的計(jì)算函數(shù),對(duì)分組的結(jié)果集進(jìn)行篩選,這個(gè)功能是 WHERE 無(wú)法完成的。另外,WHERE 排除的記錄不再包括在分組中。
區(qū)別2:如果需要通過(guò)連接從關(guān)聯(lián)表中獲取需要的數(shù)據(jù),WHERE 是先篩選后連接,而 HAVING 是先連 接后篩選。
這一點(diǎn),就決定了在關(guān)聯(lián)查詢中,WHERE 比 HAVING 更高效。因?yàn)?WHERE 可以先篩選, 用一個(gè)篩選后的較小數(shù)據(jù)集和關(guān)聯(lián)表進(jìn)行連接,這樣占用的資源比較少,執(zhí)行效率也比較高。HAVING 則需要先把結(jié)果集準(zhǔn)備好,也就是用未被篩選的數(shù)據(jù)集進(jìn)行關(guān)聯(lián),然后對(duì)這個(gè)大的數(shù)據(jù)集進(jìn)行篩選,這 樣占用的資源就比較多,執(zhí)行效率也較低。
image.png
開(kāi)發(fā)中的選擇: WHERE 和 HAVING 也不是互相排斥的,我們可以在一個(gè)查詢里面同時(shí)使用 WHERE 和 HAVING。包含 分組統(tǒng)計(jì)函數(shù)的條件用 HAVING,普通條件用 WHERE。這樣,我們就既利用了 WHERE 條件的高效快速,又發(fā)揮了 HAVING 可以使用包含分組統(tǒng)計(jì)函數(shù)的查詢條件的優(yōu)點(diǎn)。當(dāng)數(shù)據(jù)量特別大的時(shí)候,運(yùn)行效率會(huì)有很大的差別。

插入(特殊)

插入檢索出來(lái)的數(shù)據(jù)

INSERT INTO stu(name, age) SELECT name, age FROM user;

復(fù)制表

CREATE TABLE user AS SELECT * FROM student;

刪除表

1.delete:刪除表的數(shù)據(jù),支持條件過(guò)濾,支持回滾。這個(gè)刪除操作會(huì)記錄在日志中,所以比較慢。
delete from table_stu;

2.truncate:刪除表的所有數(shù)據(jù),不支持條件過(guò)濾,也不支持回滾,不記錄日志,效率比delete高。
truncate table table_stu;

3.drop:刪除表的數(shù)據(jù)的同時(shí),還刪除表結(jié)構(gòu)。將表所占的空間都釋放掉。他的刪除效率最高。
drop table table_stu;

SELECT 的執(zhí)行過(guò)程

查詢的結(jié)構(gòu)

#方式1:
SELECT …,…,…
FROM …,…,…
WHERE 多表的連接條件
AND 不包含組函數(shù)的過(guò)濾條件
GROUP BY …,…
HAVING 包含組函數(shù)的過(guò)濾條件
ORDER BY … ASC/DESC
LIMIT …,…

#方式2:
SELECT …,…,…
FROM …
JOIN …
ON 多表的連接條件
JOIN …
ON …
WHERE 不包含組函數(shù)的過(guò)濾條件
AND/OR 不包含組函數(shù)的過(guò)濾條件
GROUP BY …,…
HAVING 包含組函數(shù)的過(guò)濾條件
ORDER BY … ASC/DESC
LIMIT …,…

#其中: #(1)from:從哪些表中篩選 #(2)on:關(guān)聯(lián)多表查詢時(shí),去除笛卡爾積 #(3)where:從表中篩選的條件 #(4)group by:分組依據(jù) #(5)having:在統(tǒng)計(jì)結(jié)果中再次篩選 #(6)order by:排序 #(7)limit:分頁(yè)

SELETC 執(zhí)行順序

關(guān)鍵字順序

SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY … LIMIT…

語(yǔ)句執(zhí)行順序

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT 的字段 -> DISTINCT -> ORDER BY -> LIMIT

image.png

SELECT DISTINCT player_id, player_name, count(*) as num # 順序 5
FROM player JOIN team ON player.team_id = team.team_id # 順序 1
WHERE height > 1.80 # 順序 2
GROUP BY player.team_id # 順序 3
HAVING num > 2 # 順序 4
ORDER BY num DESC # 順序 6
LIMIT 2 # 順序 7

在 SELECT 語(yǔ)句執(zhí)行這些步驟的時(shí)候,每個(gè)步驟都會(huì)產(chǎn)生一個(gè) 虛擬表 ,然后將這個(gè)虛擬表傳入下一個(gè)步 驟中作為輸入。需要注意的是,這些步驟隱含在 SQL 的執(zhí)行過(guò)程中,對(duì)于我們來(lái)說(shuō)是不可見(jiàn)的。

SQL 執(zhí)行原理

SELECT 是先執(zhí)行 FROM 這一步的。在這個(gè)階段,如果是多張表聯(lián)查,還會(huì)經(jīng)歷下面的幾個(gè)步驟:

  1. 首先先通過(guò) CROSS JOIN 求笛卡爾積,相當(dāng)于得到虛擬表 vt(virtual table)1-1;
  2. 通過(guò) ON 進(jìn)行篩選,在虛擬表 vt1-1 的基礎(chǔ)上進(jìn)行篩選,得到虛擬表 vt1-2;
  3. 添加外部行。如果我們使用的是左連接、右鏈接或者全連接,就會(huì)涉及到外部行,也就是在虛擬表
    vt1-2 的基礎(chǔ)上增加外部行,得到虛擬表 vt1-3。

當(dāng)然如果我們操作的是兩張以上的表,還會(huì)重復(fù)上面的步驟,直到所有表都被處理完為止。這個(gè)過(guò)程得到是我們的原始數(shù)據(jù)。

  1. 當(dāng)我們拿到了查詢數(shù)據(jù)表的原始數(shù)據(jù),也就是最終的虛擬表 vt1 ,就可以在此基礎(chǔ)上再進(jìn)行 WHERE 階 段 。在這個(gè)階段中,會(huì)根據(jù) vt1 表的結(jié)果進(jìn)行篩選過(guò)濾,得到虛擬表 vt2 。
  2. 然后進(jìn)入第三步和第四步,也就是 GROUP 和 HAVING 階段 。在這個(gè)階段中,實(shí)際上是在虛擬表 vt2 的 基礎(chǔ)上進(jìn)行分組和分組過(guò)濾,得到中間的虛擬表 vt3 和 vt4 。
  3. 當(dāng)我們完成了條件篩選部分之后,就可以篩選表中提取的字段,也就是進(jìn)入到 SELECT 和 DISTINCT 階段 。 首先在 SELECT 階段會(huì)提取想要的字段,然后在 DISTINCT 階段過(guò)濾掉重復(fù)的行,分別得到中間的虛擬 表 vt5-1 和 vt5-2 。
  4. 當(dāng)我們提取了想要的字段數(shù)據(jù)之后,就可以按照指定的字段進(jìn)行排序,也就是 ORDER BY 階段 ,得到虛擬表 vt6 。 最后在 vt6 的基礎(chǔ)上,取出指定行的記錄,也就是 LIMIT 階段 ,得到最終的結(jié)果,對(duì)應(yīng)的是虛擬表 vt7 。

當(dāng)然我們?cè)趯?xiě) SELECT 語(yǔ)句的時(shí)候,不一定存在所有的關(guān)鍵字,相應(yīng)的階段就會(huì)省略。
同時(shí)因?yàn)?SQL 是一門(mén)類似英語(yǔ)的結(jié)構(gòu)化查詢語(yǔ)言,所以我們?cè)趯?xiě) SELECT 語(yǔ)句的時(shí)候,還要注意相應(yīng)的 關(guān)鍵字順序,所謂底層運(yùn)行的原理,就是我們剛才講到的執(zhí)行順序。


第九章 子查詢

自連接 效率 高于 子查詢


第十章 修改表結(jié)構(gòu)

追加一個(gè)列

ALTER TABLE sys_log ADD `before_params` varchar(2000) 
	DEFAULT NULL COMMENT '請(qǐng)求前的參數(shù)' AFTER `class_method`;  

修改一個(gè)列

ALTER TABLE sys_log MODIFY `before_params` varchar(2000) 
	DEFAULT NULL COMMENT '請(qǐng)求前的參數(shù)' AFTER `class_method`;  

重命名一個(gè)列名

ALTER TABLE uesr CHANGE department_name dept_name varchar(15);

刪除一個(gè)列

ALTER TABLE sys_log DROP 字段名

使用經(jīng)驗(yàn)

創(chuàng)建時(shí)間獲取當(dāng)前時(shí)間

create_time	datetime DEFAULT CURRENT_TIMESTAMP() COMMENT '創(chuàng)建時(shí)間'

create_time	datetime DEFAULT CURRENT_DATE() COMMENT '創(chuàng)建日期'

image.png

更新時(shí)間獲取當(dāng)前時(shí)間

update_time datetime DEFAULT CURRENT_TIMESTAMP() 
	ON UPDATE CURRENT_TIMESTAMP() COMMENT '更新時(shí)間' 

SELECT 出現(xiàn)在其他位置

  • 出現(xiàn)在 FROM 后 (可以將子查詢的結(jié)果當(dāng)成是一個(gè)臨時(shí)表)
SELECT e.ename 
FROM EMP e
JOIN (SELECT MAX(sal) AS msal, deptno FROM emp GROUP BY deptno) s
ON e.deptno = s.deptno AND e.sal = s.msal;
  • 出現(xiàn)在 SELECT 后
    • 顯示用戶姓名和其部門(mén)名稱
SELECT e.ename, (SELECT dname FROM dept WHERE deptno = e.deptno) FROM  emp e;

— 分隔線 —


Other

SQL語(yǔ)言在功能上主要分為如下3大類:

  • 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 等。

  • DML(Data Manipulation Language、數(shù)據(jù)操作語(yǔ)言),用于添加、刪除、更新和查詢數(shù)據(jù)庫(kù) 記錄,并檢查數(shù)據(jù)完整性。

主要語(yǔ)句關(guān)鍵字包括 INSERT 、 DELETE 、 UPDATE 、 SELECT 等。SELECT是SQL的基礎(chǔ),最為重要。

  • DCL(Data Control Language、數(shù)據(jù)控制語(yǔ)言),用于定義數(shù)據(jù)庫(kù)、表、字段、用戶的訪問(wèn)權(quán) 限和安全級(jí)別。

主要語(yǔ)句關(guān)鍵字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等。

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

在命令行客戶端登錄mysql,使用source指令導(dǎo)入
mysql> source d:\mysqldb.sql



MySQL從入門(mén)到快速上手文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-473238.html

到了這里,關(guān)于MySQL從入門(mén)到快速上手的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 從淺入深了解.NET Core MVC 2.x全面教程【第一章】

    從淺入深了解.NET Core MVC 2.x全面教程【第一章】

    章節(jié) 第一章:https://www.cnblogs.com/kimiliucn/p/17611047.html 第二章:https://www.cnblogs.com/kimiliucn/p/17616708.html 1.默認(rèn)配置 使用Kestrel Web Server ASP.NET Core內(nèi)置——跨平臺(tái) IIS集成 UseIIS() UseIISIntergration() Log IConfiguration接口 2.IConfiguration配置信息的來(lái)源 appsettings.json User Serets 環(huán)境變量 命令行參

    2024年02月13日
    瀏覽(21)
  • Flask 快速上手教程 — 了解與基本使用

    Flask 快速上手教程 — 了解與基本使用

    這篇博客是我剛接觸 flask,研究文檔時(shí)的一些記錄與體會(huì),希望對(duì)各位剛接觸 flask 的朋友有所幫助。 且在此篇后,我還會(huì)另寫(xiě)一篇關(guān)于純后端的 flask 教程,介紹一下如何使用 flask 創(chuàng)建一個(gè)較為完善的純后端的服務(wù)。 在閱讀下面的內(nèi)容前,讀者應(yīng)該具有基礎(chǔ)的python知識(shí),且

    2024年02月09日
    瀏覽(35)
  • ElasticSearch第一章(入門(mén)介紹)

    ElasticSearch第一章(入門(mén)介紹)

    ElasticSearch(彈性搜索),簡(jiǎn)稱ES。 ES是一個(gè)分布式,RESTFul風(fēng)格的搜索和數(shù)據(jù)分析引擎 ,能夠解決不斷涌現(xiàn)出的各種用例。作為 Elastic Stack(Elastic技術(shù)棧簡(jiǎn)稱ELK) 的核心,Elasticsearch 會(huì)集中存儲(chǔ)您的數(shù)據(jù),讓您飛快完成搜索,微調(diào)相關(guān)性,進(jìn)行強(qiáng)大的分析,并輕松縮放規(guī)模。 我

    2024年02月22日
    瀏覽(25)
  • 第一章 MATLAB入門(mén)

    MATLAB(矩陣實(shí)驗(yàn)室的簡(jiǎn)稱)是一種專業(yè)的計(jì)算機(jī)程序,用于工程科學(xué)的矩陣數(shù)學(xué)運(yùn)算。但 在以后的幾年內(nèi),它逐漸發(fā)展為一種極其靈活的計(jì)算體系,用于解決各種重要的技術(shù)問(wèn)題。 Matlab程序執(zhí)行MATLAB語(yǔ)言,并提供了一個(gè)極其廣泛的預(yù)定義函數(shù)庫(kù),這樣就使得技術(shù)工作 變得簡(jiǎn)

    2024年02月05日
    瀏覽(19)
  • 第一章:SpringBoot基礎(chǔ)入門(mén)

    第一章:SpringBoot基礎(chǔ)入門(mén)

    Spring 能做什么 Spring 的能力 Spring 的生態(tài) 網(wǎng)址: https://spring.io/projects/spring-boot 覆蓋了: Web 開(kāi)發(fā)、數(shù)據(jù)訪問(wèn)、安全控制、分布式、消息服務(wù)、移動(dòng)開(kāi)發(fā)、批處理等。 Spring5 重大升級(jí) 響應(yīng)式編程 內(nèi)部源碼設(shè)計(jì) 基于 Java8 的一些新特性。 為什么用 SpringBoot ? Spring Boot makes it eas

    2024年02月12日
    瀏覽(28)
  • 第一章 小程序入門(mén)

    第一章 小程序入門(mén)

    小程序的基本結(jié)構(gòu) 小程序的頁(yè)面組成部分 JSON 配置文件的作用 app.json 配置文件 project.config.json 配置文件 sitemap.json 配置文件 頁(yè)面 .json 配置文件 什么是 wxml wxml 和 html 的區(qū)別 什么是 wxss wxss 和 css 的區(qū)別 通信模型 小程序的啟動(dòng)過(guò)程 頁(yè)面渲染過(guò)程 button 按鈕的基本使用 img 組件

    2024年02月08日
    瀏覽(28)
  • ChatGPT入門(mén)到高級(jí)【第一章】

    第一章:Chatgpt的起源和發(fā)展 1.1 人工智能和Chatbot的概念 1.2 Chatbot的歷史發(fā)展 1.3 機(jī)器學(xué)習(xí)技術(shù)在Chatbot中的應(yīng)用 1.4 Chatgpt的誕生和發(fā)展 第二章:Chatgpt的技術(shù)原理 2.1 自然語(yǔ)言處理技術(shù) 2.2 深度學(xué)習(xí)技術(shù) 2.3 Transformer模型 2.4 GPT模型 第三章:Chatgpt的應(yīng)用場(chǎng)景 3.1 智能客服 3.2 智能問(wèn)

    2024年02月04日
    瀏覽(20)
  • MySQL——第一章 MySQL基礎(chǔ)1

    net start mysql80 net stop mysql80 mysql -u root -p MySQL下載及安裝 MySQL社區(qū)版

    2024年01月22日
    瀏覽(16)
  • 第一章 Web自動(dòng)化入門(mén)

    第一章 Web自動(dòng)化入門(mén)

    1、概念 由機(jī)器設(shè)備代替人工自動(dòng)完成指定目標(biāo)的過(guò)程 2、優(yōu)點(diǎn) 減少人工勞動(dòng)力 提高工作效率 產(chǎn)品規(guī)格統(tǒng)一標(biāo)準(zhǔn) 規(guī)格化(批量生產(chǎn)) 概念:讓程序代替人工去驗(yàn)證系統(tǒng)功能的過(guò)程 解決-回歸測(cè)試(重點(diǎn)) 解決-壓力測(cè)試 解決-兼容性測(cè)試(瀏覽器、分辨率、操作系統(tǒng)) 提高測(cè)

    2024年02月07日
    瀏覽(22)
  • 【Matlab入門(mén)】 第一章 Matlab基礎(chǔ)

    【Matlab入門(mén)】 第一章 Matlab基礎(chǔ)

    你好!歡迎查看此系列筆記。為何說(shuō)是筆記而不是教程呢,是因?yàn)檫@就是真真切切的我自己學(xué)習(xí)的記錄,從R2022a版本到R2024a,這意味著該系列筆記可能會(huì)一直更新下去,倘若有重大更迭,我也會(huì)及時(shí)更新。觀看者遇到問(wèn)題,可以在評(píng)論區(qū)反饋,我爭(zhēng)取及時(shí)交流修改。初始筆記

    2024年02月20日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包