資料庫基礎
資料庫:儲存有組織的資料的容器
表:某種特定型別資料的結構化清單
列:表中的乙個字段資料型別:所容許的資料的型別
行:表中的乙個記錄
主鍵:一列,其值能夠唯一區分表中每個行
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,...