《MYSQL必知必會》第1 9章

2022-09-12 05:30:13 字數 2541 閱讀 2897

​資料庫基礎

資料庫:儲存有組織的資料的容器

表:某種特定型別資料的結構化清單

列:表中的乙個字段資料型別:所容許的資料的型別

行:表中的乙個記錄

主鍵:一列,其值能夠唯一區分表中每個行

sql是結構化查詢語言(structured query language)的縮寫

mysql 簡介

mysql是一種dbms(資料庫管理系統),即它是一種資料庫軟體

mysql、oracle以及microsoft sql server等資料庫是基於客戶機-伺服器的資料庫。

資料操作流程:使用者->客戶機->伺服器->客戶機->使用者

使用mysql

選擇資料庫:use 資料庫名

顯示所有資料庫:show databases

顯示某一資料庫下的表:show tables

檢索資料

檢索列:select 第乙個列,第二個列,,,, from 表名

檢索所有列:select * from 表名

檢索結果中重複的列只出現一次:select distinct 列名 from 表名

限制結果:select 列名 from 表名 limit 數字

select 列名 from 表名 limit 數字1,數字2 (從行數字1開始的數字2行,注意行數從零開始)

排序檢索資料

公升序:select 列名 from 表名 order by 列名

降序:select 列名 from 表名 order by 列名 desc

過濾資料

過濾:select 列名 from 表名 where 列名需滿足的條件

例子:select prod_name,prod_price from products where prod_price between 5 and 10

空值檢查:select 列名 from 表名 where 列名 is null

and操作符:select  列名 from 表名 where 列1滿足條件1 and 列2滿足條件2

or操作符:select  列名 from 表名 where 列1滿足條件1 or 列2滿足條件2

(注意,and 操作符的優先順序大於or操作符)

in操作符:select 列名 from 表名 where 列名 in (a,b)

not操作符:select 列名 from 表名 where 列名 not in (a,b)

(a,b)是列舉!不是範圍!not 是取反

用萬用字元過濾

萬用字元:用來匹配值的一部分的特殊字元

like操作符:where 列名 like 『字元組合』(like字元是全匹配,與regexp匹配部分不同)

%萬用字元:%表示任何字元出現任意次數

下劃線萬用字元:_ 表示任何字元出現一次

正規表示式進行搜尋

正規表示式:用來匹配文字的特殊的串

regexp操作符:where 列名 regexp 『字元組合』(列值包含字元組合即滿足要求)

區分大小寫:where 列名 regexp binary  『字元組合』

or匹配:where 列名 regexp '值1|值2'

匹配幾個字元之一:where 列名 regexp 『[字元1字元2字元3]』

匹配範圍:where 列名 regexp 『[0-9]』

匹配特殊字元:where 列名 regexp 『\\.』 

(因為 . 匹配任意字元,所以需用轉義字元)

[:lower:] [:upper:] [:cntrl:] [:alnum:] [:print:] ......

匹配多個例項:

*  0個或多個匹配 

+ 乙個或多個匹配 

? 0個或乙個匹配 

指定數目的匹配

不少於指定數目的匹配

匹配數目的範圍  

例子1:where 列名 regexp 『\\([0-9] sticks?\\)』

匹配結果:

tnt (1 stick)

tnt   (5 sticks)

?匹配它前面的任何字元的0次或1次出現

例子2:where 列名 regexp 『[[:digit:]]』 (同[0-9][0-9][0-9][0-9])

定位符:

^  文字的開始

$  文字的結尾

[[:<:]] 詞的開始

[[:>:]] 詞的結尾

例子:where 列名 regexp 『^[0-9]』

只有文字開始是數字才滿足條件

mysql必知必會 mysql必知必會(四)

十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...

《MySQL必知必會》第24章 有bug

有時候,需要在檢索出來的行中前進或後退一行或多行,這就是游標,游標是乙個儲存在mysql伺服器上的資料庫查詢,不是一條select語句,而是被該語句檢索出來的結果集 游標主要用於互動式應用,使用者可以滾動螢幕上的資料進行瀏覽或更改 mysql游標只能用於儲存過程 和函式 使用步驟為 1 宣告 定義 ...

MySQL必知必會 第15章 連線表

連線表的關鍵在於 1 規定要連線起來的所有表 2 表之間如何關聯。student表如下所示 scoretable如下所示 1.通過兩個表的id number欄位將兩個表連線起來 select student.id,student.name,scoretable.score from student,...