資料庫相關知識點提要

slowlydance2me發表於2023-01-28

關鍵詞:

DESC

 

 

 

LIMIT

 

上面的limit只有一個引數值,將表中的前三條資料查詢出來

 

 

 

 

 上面的SQL語句,limit有兩個引數,第一個參數列示從第幾行資料開始查,第二個參數列示查幾條資料,“limit 3,2”表示從第四行資料開始,取兩條資料。

 

(NOT)LIKE

like ''%X%'和'X%'以及'%X'的區別

'abc%'找以abc開始的;

'%abc' 找以abc結尾的;
'%abc%'找字串裡含有abc的;
結果肯定不同!

 

LEFT / RIGHT / INNER JOIN

JOIN預設為inner JOIN

左(外)連線以左表為主

右(外)連線以右表為主

 

 

 

EXISTS

舉個例子:
Oracle自帶的EMP、DEPT表查詢,部門編號小於30的所有員工資訊

Oracle語句:
select * from emp where deptno in (select deptno from dept where deptno <30);

select * from emp e where exists (
select * from dept d where deptno <30 and d.deptno = e.deptno ;
);

  1. 首先執行外查詢 select * from emp e,然後取出第一行資料,將資料中的部門編號傳給內查詢
  2. 內查詢執行select * from dept d where deptno <30 and d.deptno = e.deptno ;看是否查詢到結果,查詢到,則返回true,否則返回false;比如傳來的是30,則不滿足deptno <30 and d.deptno = 30,返回false
  3. 內查詢返回true,則該行資料保留,作為結果顯示;反之,返回false,則不作結果顯示
  4. 逐行查詢,看內查詢是否查到資料,是否保留作結果顯示

 

DELIMMITER

其實就是告訴mysql直譯器,該段命令是否已經結束了,mysql是否可以執行了。預設情況下,delimiter是分號;。在命令列客戶端中,如果有一行命令以分號結束,那麼回車後,mysql將會執行該命令。但有時候,不希望MySQL這麼做。在為可能輸入較多的語句,且語句中包含有分號。 
這種情況下,就需要 事先把delimiter換成其它符號,如//或$$。

 

PROCEDURE

儲存過程;程式

 

INSERT INTO 

插入記錄語句

INSERT INTO 表名稱 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

 

CURSOR

遊標用declare 語句建立。DECLARE 命名遊標,並定義相應地select 語句,根據需要帶where 和其他子句。

下面在儲存過程中使用declare 定義一個遊標,儲存過程完成後遊標也相應消失。

開啟和關閉遊標

 

 

 

 在處理open 語句時執行查詢,儲存檢索出地資料以供瀏覽和滾動遊標處理後,要關閉遊標

 

close會釋放遊標使用的所有內部記憶體和資源,所有遊標使用後都要進行關閉操作

在一個遊標關閉後,如果沒有重新開啟,則不能使用它。但是使用宣告過的遊標不需要再次宣告,使用open 語句開啟就行。

如果不明確的關閉遊標,mysql 將會在到達end 語句的時候自動關閉它。

相關連線?

MySQL ------ 遊標(CURSOR)(二十六) - 知乎 (zhihu.com)

FETCH

使用遊標資料的關鍵詞

在一個遊標被開啟後,可以使用 fetch 語句分別訪問它的每一行。

fetch 指定檢索什麼資料(所需的列),檢索出來的資料儲存在什麼地方。還向前移動遊標中的內部指標,使下一條fetch語句檢索下一行(避免重複讀取一行)。

 

 

 

 

 

 

TRIGGER

觸發器的建立

 

 

 

表名:表示觸發器監控的物件。
BEFORE|AFTER:表示觸發的時間。BEFORE 表示在事件之前觸發;AFTER 表示在事件之後觸發。
INSERT|UPDATE|DELETE:表示觸發的事件。
INSERT 表示插入記錄時觸發;
UPDATE 表示更新記錄時觸發;
DELETE 表示刪除記錄時觸發。
觸發器執行的語句塊:可以是單條SQL語句,也可以是由BEGIN…END結構組成的複合語句塊。

相關連線?
(20條訊息) MySQL—— 17 觸發器_有什麼奇怪!的部落格-CSDN部落格

 

WHERE 1=2

表示條件為否

 

 

 

練習題:

1.排序與分頁

 

 

 

 

 

 

 

 

 

2.多表查詢

 

 

 

 

 

 

 

 

 

 

3.檢視

 

 

 

 

 

 

 

 4.儲存過程

 

 

 

 

 

 

 

 

 5.儲存函式

 

 

 

 

 

 

 

 

 

6.流程控制

 

 

7.遊標的使用

 

 

 

 

 

 8.觸發器

 

 

 

 

 

 

 

 

 

參考答案:

1.

 

 

 

 

 

 

 

 

 2.

 

 

 

 

 

 

 

 

 

3.

 

 

 

 

 

 

 

 

 4.

 

 

 

 

 

 

 

 

 5.

 

 

 

 

 

 6.

 

 7.

 

 

 

 

 

 

 8.

 

 

 

 

 

 

 

 

 

相關文章