【SQL】SQL(基础查询)、SQL(关联查询)
原文鏈接:https://blog.csdn.net/kuangzhixuan/article/details/74299047?utm_source=blogxgwz2
1.1. 基本查詢語句
1.1.1. FROM子句
SQL查詢語句的語法如下:
copytextpop-up
SELECT <, column [alias], …> FROM table;
SELECT <, column [alias], …> FROM table;
其中:SELECT用于指定要查詢的列,FROM指定要從哪個(gè)表中查詢。如果要查詢所有列,可以在SELECT后面使用*號,如果只查詢特定的列,可以直接在SELECT后面指定列名,列名之間用逗號隔開。例句如下,查詢dept表中的所有記錄:
copytextpop-up
SELECT * FROM dept;
SELECT * FROM dept;
1.1.2. 使用別名
在SQL語句中可以通過使用列的別名改變標(biāo)題的顯示樣式,或者表示計(jì)算結(jié)果的含義,使用語法是列的別名跟在列名后,中間可以加或不加一個(gè)“AS”關(guān)鍵字。例如:
copytextpop-up
SELECT empno AS id ,ename “Name”, sal * 12 “Annual Salary” FROM emp;
SELECT empno AS id ,ename “Name”, sal * 12 “Annual Salary” FROM emp;
別名可以直接寫,不必用雙引號引起來。但是如果希望別名中區(qū)分大小寫字符,或者別名中包含字符或空格,則必須用雙引號引起來。
1.1.3. WHERE子句
在SELECT語句中,可以在WHERE子句中使用比較操作符限制查詢結(jié)果,是可選的。
當(dāng)查詢條件中和數(shù)字比較,可以使用單引號引起,也可以不用,當(dāng)和字符及日期類型的數(shù)據(jù)比較,則必須用單引號引起。例如查詢部門10下的員工信息:
copytextpop-up
SELECT * FROM empWHERE deptno = 10;
SELECT * FROM empWHERE deptno = 10;
查詢職員表中職位是’SALESMAN’的職員:
copytextpop-up
SELECT ename, sal, job FROM emp WHERE job = ‘SALESMAN’;
SELECT ename, sal, job FROM emp WHERE job = ‘SALESMAN’;
圖-1 用where子句定義查詢條件
1.1.4. SELECT子句
如果只查詢表的部分列,需要在SELECT后指定列名,例如:
copytextpop-up
SELECT empno, ename, sal, job FROM emp;
SELECT empno, ename, sal, job FROM emp;
圖-2查詢指定的列
1.2. 查詢條件
1.2.1. 使用>, <, >=, <=, !=, <>, =
在WHERE子句中的查詢條件,可以使用比較運(yùn)算符來做查詢。比如:查詢職員表中薪水低于2000元的職員信息:
copytextpop-up
SELECT ename, sal FROM emp WHERE sal< 2000;
SELECT ename, sal FROM emp WHERE sal< 2000;
查詢職員表中不屬于部門10的員工信息(!=等價(jià)于<>):
copytextpop-up
SELECT ename, sal, job FROM emp WHERE deptno != 10;
SELECT ename, sal, job FROM emp WHERE deptno != 10;
查詢職員表中在2002年1月1號以后入職的職員信息,比較日期類型數(shù)據(jù):
copytextpop-up
SELECT ename, sal, hiredate FROM emp
WHERE hiredate>to_date(‘2002-1-1’,‘YYYY-MM-DD’);
SELECT ename, sal, hiredate FROM emp
WHERE hiredate>to_date(‘2002-1-1’,‘YYYY-MM-DD’);
1.2.2. 使用AND,OR關(guān)鍵字
在SQL操作中,如果希望返回的結(jié)果必須滿足多個(gè)條件,應(yīng)該使用AND邏輯操作符連接這些條件,如果希望返回的結(jié)果滿足多個(gè)條件之一即可,應(yīng)該使用OR邏輯操作符連接這些條件。例如:查詢薪水大于1000并且職位是’CLERK’的職員信息:
copytextpop-up
SELECT ename, sal, job FROM emp
WHERE sal> 1000 AND job = ‘CLERK’;
SELECT ename, sal, job FROM emp
WHERE sal> 1000 AND job = ‘CLERK’;
查詢薪水大于1000或者職位是’CLERK’的職員信息:
copytextpop-up
SELECT ename, sal, job FROM emp
WHERE sal> 1000 OR job = ‘CLERK’;
SELECT ename, sal, job FROM emp
WHERE sal> 1000 OR job = ‘CLERK’;
1.2.3. 使用LIKE條件(模糊查詢)
當(dāng)用戶在執(zhí)行查詢時(shí),不能完全確定某些信息的查詢條件,或者只知道信息的一部分,可以借助LIKE來實(shí)現(xiàn)模糊查詢。LIKE需要借助兩個(gè)通配符:
%:表示0到多個(gè)字符
_:標(biāo)識單個(gè)字符
這兩個(gè)通配符可以配合使用,構(gòu)造靈活的匹配條件。例如查詢職員姓名中第二個(gè)字符是‘A’的員工信息:
copytextpop-up
SELECT ename, job FROM emp WHERE ename LIKE ‘_A%’;
SELECT ename, job FROM emp WHERE ename LIKE ‘_A%’;
圖-3 模糊查詢的結(jié)果
1.2.4. 使用IN和NOT IN
在WHERE子句中可以用比較操作符IN(list)來取出符合列表范圍中的數(shù)據(jù)。其中的參數(shù)list表示值列表,當(dāng)列或表達(dá)式匹配于列表中的任何一個(gè)值時(shí),條件為TRUE,該條記錄則被顯示出來。
IN頁可以理解為一個(gè)范圍比較操作符,只不過這個(gè)范圍是一個(gè)指定的值列表,NOT IN(list) 取出不符合此列表中的數(shù)據(jù)記錄。例如查詢職位是MANAGER或者CLERK的員工:
copytextpop-up
SELECT ename, job FROM emp WHERE job IN (‘MANAGER’, ‘CLERK’);
SELECT ename, job FROM emp WHERE job IN (‘MANAGER’, ‘CLERK’);
查詢不是部門10或20的員工:
copytextpop-up
SELECT ename, job FROM emp WHERE deptno NOT IN (10, 20);
SELECT ename, job FROM emp WHERE deptno NOT IN (10, 20);
1.2.5. BETWEEN…AND…
BETWEEN…AND…操作符用來查詢符合某個(gè)值域范圍條件的數(shù)據(jù),最常見的是使用在數(shù)字類型的數(shù)據(jù)范圍上,但對字符類型和日期類型數(shù)據(jù)也同樣適用。例如查詢薪水在1500-3000之間的職員信息:
copytextpop-up
SELECT ename, sal FROM emp
WHERE sal BETWEEN 1500 AND 3000;
SELECT ename, sal FROM emp
WHERE sal BETWEEN 1500 AND 3000;
1.2.6. 使用IS NULL和IS NOT NULL
空值NULL是一個(gè)特殊的值,比較的時(shí)候不能使用”=”號,必須使用IS NULL,否則不能得到正確的結(jié)果。例如查詢哪些職員的獎(jiǎng)金數(shù)據(jù)為NULL:
copytextpop-up
SELECT ename, sal, comm FROM emp
WHERE comm IS NULL;
SELECT ename, sal, comm FROM emp
WHERE comm IS NULL;
1.2.7. 使用ANY和ALL條件
在比較運(yùn)算符中,可以出現(xiàn)ALL和ANY,表示“全部”和“任一”,但是ALL和ANY不能單獨(dú)使用,需要配合單行比較操作符>、>=、<、<=一起使用。其中:
ANY : 大于最小
< ANY:小于最大
ALL:大于最大
< ALL:小于最小
例如,查詢薪水比職位是“SALESMAN”的人高的員工信息,比任意一個(gè)SALESMAN高都行:
copytextpop-up
SELECT empno, ename, job, sal, deptno
FROM emp
WHERE sal> ANY (
SELECT sal FROM emp WHERE job = ‘SALESMAN’);
SELECT empno, ename, job, sal, deptno
FROM emp
WHERE sal> ANY (
SELECT sal FROM emp WHERE job = ‘SALESMAN’);
1.2.8. 查詢條件中使用表達(dá)式和函數(shù)
當(dāng)查詢需要對選出的字段進(jìn)行進(jìn)一步計(jì)算,可以在數(shù)字列上使用算術(shù)表達(dá)式(+、-、*、/)。表達(dá)式符合四則運(yùn)算的默認(rèn)優(yōu)先級,如果要改變優(yōu)先級可以使用括號。
算術(shù)運(yùn)算主要是針對數(shù)字類型的數(shù)據(jù),對日期類型的數(shù)據(jù)可以做加減操作,表示在一個(gè)日期值上加或減一個(gè)天數(shù)。
查詢條件中使用字符串函數(shù)UPPER,將條件中的字符串變大寫后再參與比較:
copytextpop-up
SELECT ename, sal, job FROMempWHERE ename = UPPER(‘rose’);
SELECT ename, sal, job FROMempWHERE ename = UPPER(‘rose’);
查詢條件中使用算數(shù)表達(dá)式,查詢年薪大于10w元的員工記錄:
copytextpop-up
SELECT ename, sal, job FROM empWHERE sal * 12 >100000;
SELECT ename, sal, job FROM empWHERE sal * 12 >100000;
1.2.9. 使用DISTINCT過濾重復(fù)
數(shù)據(jù)表中有可能存儲(chǔ)相同數(shù)據(jù)的行,當(dāng)執(zhí)行查詢操作時(shí),默認(rèn)情況會(huì)顯示所有行,不管查詢結(jié)果是否有重復(fù)的數(shù)據(jù)。當(dāng)重復(fù)數(shù)據(jù)沒有實(shí)際意義,經(jīng)常會(huì)需要去掉重復(fù)值,使用DISTINCT實(shí)現(xiàn)。例如查詢員工的部門編碼,包含所有重復(fù)值:
copytextpop-up
SELECT deptno FROM emp;
SELECT deptno FROM emp;
查詢員工的部門編碼,去掉重復(fù)值:
copytextpop-up
SELECT DISTINCT deptno FROM emp;
SELECT DISTINCT deptno FROM emp;
DISTINCT后面的列可以組合查詢,下例查詢每個(gè)部門的職位,去掉重復(fù)值。注意是deptno和job聯(lián)合起來不重復(fù):
copytextpop-up
SELECT DISTINCT deptno, job FROM emp;
SELECT DISTINCT deptno, job FROM emp;
圖-4用distinct去掉重復(fù)的列
1.3. 排序
1.3.1. 使用ORDER BY字句
對查詢出的數(shù)據(jù)按一定規(guī)則進(jìn)行排序操作,使用ORDER BY子句。語法如下:
copytextpop-up
SELECT <, column [alias], …>
FROM table
[WHERE condition(s)]
[ORDER BY column [ASC | DESC]] ;
SELECT <, column [alias], …>
FROM table
[WHERE condition(s)]
[ORDER BY column [ASC | DESC]] ;
注意,ORDER BY必須出現(xiàn)在SELECT中的最后一個(gè)子句。下例對職員表按薪水排序:
copytextpop-up
SELECT ename, sal
FROM emp
ORDER BY sal;
SELECT ename, sal
FROM emp
ORDER BY sal;
圖-5用ORDER BY將查詢結(jié)果排序
1.3.2. ASC和DESC
排序時(shí)默認(rèn)按升序排列,即由小及大,ASC用來指定升序排序,DESC用來指定降序排序。
因?yàn)镹ULL值視作最大,則升序排列時(shí),排在最后,降序排列時(shí),排在最前。如果不寫ASC或DESC,默認(rèn)是ASC,升序排列。例如,按員工的經(jīng)理升序排序:
copytextpop-up
SELECT empno, ename, mgr FROM emp
WHERE deptno = 10 ORDER BY mgr;
SELECT empno, ename, mgr FROM emp
WHERE deptno = 10 ORDER BY mgr;
降序排列,必須指明,按員工的薪水倒序排序:
copytextpop-up
SELECT ename, sal FROM emp
ORDER BY sal DESC;
SELECT ename, sal FROM emp
ORDER BY sal DESC;
1.3.3. 多個(gè)列排序
當(dāng)以多列作為排序標(biāo)準(zhǔn)時(shí),首先按照第一列進(jìn)行排序,如果第一列數(shù)據(jù)相同,再以第二列排序,以此類推。多列排序時(shí),不管正序還是倒序,每個(gè)列需要單獨(dú)設(shè)置排序方式。
下例對職員表中的職員排序,先按照部門編碼正序排列,再按照薪水降序排列:
copytextpop-up
SELECT ename, deptno, sal FROM emp
ORDER BY deptno ASC, sal DESC;
SELECT ename, deptno, sal FROM emp
ORDER BY deptno ASC, sal DESC;
1.4. 聚合函數(shù)
1.4.1. 什么是聚合函數(shù)
查詢時(shí)需要做一些數(shù)據(jù)統(tǒng)計(jì),比如:查詢職員表中各部門職員的平均薪水,各部門的員工人數(shù)。當(dāng)需要統(tǒng)計(jì)的數(shù)據(jù)并不能在職員表里直觀列出,而是需要根據(jù)現(xiàn)有的數(shù)據(jù)計(jì)算得到結(jié)果,這種功能可以使用聚合函數(shù)來實(shí)現(xiàn),即:將表的全部數(shù)據(jù)劃分為幾組數(shù)據(jù),每組數(shù)據(jù)統(tǒng)計(jì)出一個(gè)結(jié)果。
因?yàn)槭嵌嘈袛?shù)據(jù)參與運(yùn)算返回一行結(jié)果,也稱作分組函數(shù)、多行函數(shù)、集合函數(shù)。用到的關(guān)鍵字:
GOURP BY 按什么分組
HAVING 進(jìn)一步限制分組結(jié)果
1.4.2. MAX和MIN
用來取得列或表達(dá)式的最大、最小值,可以用來統(tǒng)計(jì)任何數(shù)據(jù)類型,包括數(shù)字、字符和日期。例如獲取機(jī)構(gòu)下的最高薪水和最低薪水,參數(shù)是數(shù)字:
copytextpop-up
SELECT MAX(sal) max_sal, MIN(sal) min_sal
FROM emp;
SELECT MAX(sal) max_sal, MIN(sal) min_sal
FROM emp;
計(jì)算最早和最晚的入職時(shí)間,參數(shù)是日期:
copytextpop-up
SELECT MAX(hiredate) max_hire, MIN(hiredate) min_hire
FROM emp;
SELECT MAX(hiredate) max_hire, MIN(hiredate) min_hire
FROM emp;
1.4.3. AVG和SUM
AVG和SUM函數(shù)用來統(tǒng)計(jì)列或表達(dá)式的平均值和和值,這兩個(gè)函數(shù)只能操作數(shù)字類型,并忽略NULL值。例如獲得機(jī)構(gòu)下全部職員的平均薪水和薪水總和:
copytextpop-up
SELECT AVG(sal) avg_sal, SUM(sal) sum_sal FROM emp;
SELECT AVG(sal) avg_sal, SUM(sal) sum_sal FROM emp;
1.4.4. COUNT
COUNT函數(shù)用來計(jì)算表中的記錄條數(shù),同樣忽略NULL值。例如獲取職員表中一共有多少名職員記錄:
copytextpop-up
SELECT COUNT() total_num FROM emp;
SELECT COUNT() total_num FROM emp;
獲得職員表中有多少人是有職位的(忽略沒有職位的員工記錄)
copytextpop-up
SELECT COUNT(job) total_job FROM emp;
SELECT COUNT(job) total_job FROM emp;
1.4.5. 聚合函數(shù)對空值的處理
聚合函數(shù)忽略NULL值。即當(dāng)emp表中的某列有NULL值,比如某新入職員工沒有薪水,比較兩條語句的結(jié)果:
copytextpop-up
SELECT AVG(sal) avg_sal FROM emp;
SELECT AVG(NVL(sal,0)) avg_sal FROM emp;
SELECT AVG(sal) avg_sal FROM emp;
SELECT AVG(NVL(sal,0)) avg_sal FROM emp;
1.5. 分組
1.5.1. GROUP BY子句
上面的例子都是以整個(gè)表作為一組。如果希望得到每個(gè)部門的平均薪水,而不是整個(gè)機(jī)構(gòu)的平均薪水,需要把整個(gè)數(shù)據(jù)表按部門劃分成一個(gè)個(gè)小組,每個(gè)小組中包含一行或多行數(shù)據(jù),在每個(gè)小組中再使用分組函數(shù)進(jìn)行計(jì)算,每組返回一個(gè)結(jié)果。語法如下:
copytextpop-up
SELECT <, column [alias], …>
FROM table [WHERE condition(s)]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column [ASC | DESC]] ;
SELECT <, column [alias], …>
FROM table [WHERE condition(s)]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column [ASC | DESC]] ;
其中劃分的小組有多少,最終的結(jié)果集行數(shù)就有多少。
1.5.2. 分組查詢
圖-6分組查詢
1.5.3. HAVING字句
HAVING子句用來對分組后的結(jié)果進(jìn)一步限制,比如按部門分組后,得到每個(gè)部門的最高薪水,可以繼續(xù)限制輸出結(jié)果。必須跟在GROUP BY后面,不能單獨(dú)存在。例如查詢每個(gè)部門的最高薪水,只有最高薪水大于4000的記錄才被輸出顯示:
copytextpop-up
SELECT deptno, MAX(sal) max_sal FROM emp
GROUP BY deptno HAVING MAX(sal) >4000;
SELECT deptno, MAX(sal) max_sal FROM emp
GROUP BY deptno HAVING MAX(sal) >4000;
1.6. 查詢語句的執(zhí)行順序
當(dāng)一條查詢語句中包含所有的子句,執(zhí)行順序依下列子句次序:
FROM 子句:執(zhí)行順序?yàn)閺暮笸啊挠业阶蟆?shù)據(jù)量較少的表盡量放在后面。
WHERE子句:執(zhí)行順序?yàn)樽韵露稀挠业阶蟆⒛苓^濾掉最大數(shù)量記錄的條件寫在WHERE 子句的最右。
GROUP BY:執(zhí)行順序從左往右分組,最好在GROUP BY前使用WHERE將不需要的記錄在GROUP BY之前過濾掉。
HAVING 子句:消耗資源。盡量避免使用,HAVING 會(huì)在檢索出所有記錄之后才對結(jié)果集進(jìn)行過濾,需要排序等操作。
SELECT子句:少用號,盡量取字段名稱。ORACLE 在解析的過程中, 通過查詢數(shù)據(jù)字典將號依次轉(zhuǎn)換成所有的列名, 消耗時(shí)間。
ORDER BY子句:執(zhí)行順序?yàn)閺淖蟮接遗判?#xff0c;消耗資源。
2. SQL(關(guān)聯(lián)查詢)
2.1. 關(guān)聯(lián)基礎(chǔ)
2.1.1. 關(guān)聯(lián)的概念
實(shí)際應(yīng)用中所需要的數(shù)據(jù),經(jīng)常會(huì)需要查詢兩個(gè)或兩個(gè)以上的表。這種查詢兩個(gè)或兩個(gè)以上數(shù)據(jù)表或視圖的查詢叫做連接查詢,連接查詢通常建立在存在相互關(guān)系的父子表之間。語法如下:
copytextpop-up
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
或者:
copytextpop-up
SELECT table1.column, table2.column
FROM table1JOIN table2
ON(table1.column1 = table2.column2);
SELECT table1.column, table2.column
FROM table1JOIN table2
ON(table1.column1 = table2.column2);
2.1.2. 笛卡爾積
笛卡爾積指做關(guān)聯(lián)操作的每個(gè)表的每一行都和其它表的每一行做組合,假設(shè)兩個(gè)表的記錄條數(shù)分別是X和Y,笛卡爾積將返回X * Y條記錄。當(dāng)兩個(gè)表關(guān)聯(lián)查詢時(shí),不寫連接條件,得到的結(jié)果即是笛卡爾積。例如:
copytextpop-up
SELECT COUNT() FROM emp; --14條記錄
SELECT COUNT() FROM dept; --4條記錄
SELECT emp.ename, dept.dnameFROM emp, dept;–56條記錄
SELECT COUNT() FROM emp; --14條記錄
SELECT COUNT() FROM dept; --4條記錄
SELECT emp.ename, dept.dnameFROM emp, dept;–56條記錄
2.1.3. 等值連接
等值連接是連接查詢中最常見的一種,通常是在有主外鍵關(guān)聯(lián)關(guān)系的表間建立,并將連接條件設(shè)定為有關(guān)系的列,使用等號”=”連接相關(guān)的表。例如查詢職員的姓名、職位以及所在部門的名字和所在城市,使用兩個(gè)相關(guān)的列做等值操作:
copytextpop-up
SELECT e.ename, e.job, d.dname, d.loc
FROM emp e, dept d
WHERE e.deptno = d.deptno;
SELECT e.ename, e.job, d.dname, d.loc
FROM emp e, dept d
WHERE e.deptno = d.deptno;
2.2. 關(guān)聯(lián)查詢
2.2.1. 內(nèi)連接
內(nèi)連接返回兩個(gè)關(guān)聯(lián)表中所有滿足連接條件的記錄。例如查詢員工的名字和所在部門的名字:
copytextpop-up
SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno
SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno
上面的語法也可以寫為:
copytextpop-up
SELECT e.ename, d.dname
FROM emp e JOIN dept d
ON(e.deptno = d.deptno);
SELECT e.ename, d.dname
FROM emp e JOIN dept d
ON(e.deptno = d.deptno);
2.2.2. 外連接
內(nèi)連接返回兩個(gè)表中所有滿足連接條件的數(shù)據(jù)記錄,在有些情況下,需要返回那些不滿足連接條件的記錄,需要使用外連接,即不僅返回滿足連接條件的記錄,還將返回不滿足連接條件的記錄。比如把沒有職員的部門和沒有部門的職員查出來。外連接的語法如下:
copytextpop-up
SELECT table1.column, table2.column
FROM table1 [LEFT | RIGHT | FULL] JOIN table2
ON table1.column1 = table2.column2;
SELECT table1.column, table2.column
FROM table1 [LEFT | RIGHT | FULL] JOIN table2
ON table1.column1 = table2.column2;
了解驅(qū)動(dòng)表的概念。
圖-7左外連接
圖-8右外連接
外連接查詢的例子,Emp表做驅(qū)動(dòng)表:
copytextpop-up
SELECT e.ename, d.dname
FROM emp e LEFT OUTER JOIN dept d
ON e.deptno = d.deptno;
SELECT e.ename, d.dname
FROM emp e LEFT OUTER JOIN dept d
ON e.deptno = d.deptno;
Dept表做驅(qū)動(dòng)表:
copytextpop-up
SELECT e.ename, d.dname
FROM emp e RIGHT OUTER JOIN dept d
ON e.deptno = d.deptno;
SELECT e.ename, d.dname
FROM emp e RIGHT OUTER JOIN dept d
ON e.deptno = d.deptno;
2.2.3. 全連接
全外連接是指除了返回兩個(gè)表中滿足連接條件的記錄,還會(huì)返回不滿足連接條件的所有其它行。即是左外連接和右外連接查詢結(jié)果的總和。例如:
copytextpop-up
SELECT e.ename, d.dname
FROM emp e FULL OUTER JOIN dept d
ON e.deptno = d.deptno;
SELECT e.ename, d.dname
FROM emp e FULL OUTER JOIN dept d
ON e.deptno = d.deptno;
圖-9 全外連接
2.2.4. 自連接
自連接是一種特殊的連接查詢,數(shù)據(jù)的來源是一個(gè)表,即關(guān)聯(lián)關(guān)系來自于單表中的多個(gè)列。表中的列參照同一個(gè)表中的其它列的情況稱作自參照表。
自連接是通過將表用別名虛擬成兩個(gè)表的方式實(shí)現(xiàn),可以是等值或不等值連接。例如查出每個(gè)職員的經(jīng)理名字,以及他們的職員編碼:
copytextpop-up
SELECT worker.empnow_empno, worker.enamew_ename, manager.empnom_empno, manager.enamem_ename
FROM emp worker join emp manager
ON worker.mgr = manager.empno;
SELECT worker.empnow_empno, worker.enamew_ename, manager.empnom_empno, manager.enamem_ename
FROM emp worker join emp manager
ON worker.mgr = manager.empno;
數(shù)據(jù)庫的查詢總結(jié)-----按條件查詢
作者:羽翼冰藍(lán)
來源:CSDN
原文:https://blog.csdn.net/kuangzhixuan/article/details/74299047
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的【SQL】SQL(基础查询)、SQL(关联查询)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ETL】ETL----如何决定是否采用
- 下一篇: 【SQL】数据库的SQL查询,涉及多个数