《MySQL必知必會》學習筆記 1

2021-09-19 03:38:00 字數 3367 閱讀 1186

下面為個人看《mysql必知必會》時做的筆記,感覺《mysql必知必會》屬於一般筆記基礎的書,可以鞏固一下之前的基礎。下面的sql語句大部分是dede_scores表的,下面是建立表的語句:

create table `dede_scores` (

`id` int(11) unsigned not null auto_increment,

`titles` char(15) not null,

`icon` smallint(6) unsigned default '0',

`integral` int(10) not null default '0',

`isdefault` tinyint(1) unsigned not null default '0',

primary key (`id`),

key `integral` (`integral`) using btree

) engine=myisam auto_increment=17 default charset=gbk

一、連線

1、登入mysql: mysql -u 使用者名稱 -p -h 網域名稱 -p 埠

2、顯示所有的資料庫:show databases;

3、建立乙個資料庫:create database test_db;

4、使用|切換表:use ***【資料庫名字】

5、顯示資料庫下面的所有表:show tables;

6、顯示表結果:show columns from ***; 或者:describe ***;

7、顯示廣泛的伺服器狀態資訊:show status;

8、顯示建立資料庫的語句:show create database ***;

9、顯示建立表的語句:show create table ***;

10、顯示授權使用者的許可權:show grants;

二、檢索

1、查詢所有列:select * from dede_scores;

2、指定查詢多個列:select id,name from dede_scores;

3、distinct使用:select distinct id,name from dede_scores;【只返回不同的id,唯一。注意:除非是指定的列都不同,否則所有的行都會被索引出來】檢視例子

4、返回查詢結果的前5行:select * from dede_scores limit 5;

5、按照指定的開始行和行數返回查詢結果:select * from dede_scores limit 5,5;

6、select dede_scores.id from dede_scores;

7、完全限定表名:select 表名.欄位名 from 資料庫名.表名

三、排序檢索

1、查詢排序:select * from dede_scores order by id;

2、按多個列排序:select * from dede_scores order by id, titles;

3、指定排序的方向:select * from dede_scores order by id desc;

asc:公升序 、desc:降序, 預設asc

四、過濾資料

1、查詢isdefault=1:select * from dede_scores where isdefault = 1;

2、查詢isdefault <=1: select * from dede_scores where isdefault <=1;

3、不等於1:select * from dede_scores where isdefault != 1 或者:select * from dede_scores where isdefault <> 1

4、在指定的兩個值之間:select * from dede_scores where isdefault between 1 and 2

5、查詢字段是否是null:select * from dede_scores where titles is null

五、資料過濾

1、and 操作符: select * from dede_scores where isdefault > 0 and isdefault < 2

2、or操作符:select * from dede_scores where id = 1 or id =100;

3、注意:or和and同時出現是,and優先

4、in操作:select * from dede_scores where isdefault in (1, 2);

5、in 和or具有相同的功能,為什麼要使用in操作符?

5.1、in操作符語法更清楚更直觀

5.2、使用in時,計算的次序更容易管理(因為操作符更少)

5.3、in操作符一般比or操作符清單執行更快

5.4、in操作符可以包含其他的select語句

6、not操作符:select * from dede_scores where id not in(1,2)

六、萬用字元過濾

1、半%操作符:select * from dede_scores where titles like "%帝";

2、全%操作符:select * from dede_scores where titles like "%帝%";

3、中間%操作符:select * from dede_scores where titles like "皇%帝";

4、%除了匹配乙個或多個字元外,%還能匹配0個字元

5、雖然似乎%萬用字元可以匹配任何東西,但有乙個例外,即null,例如titles的產品名為null,那麼where titles like "%"是不能匹配到的

6、_操作符:只匹配單個字元而不是多個字元:select * from dede_scores where title like "_帝";

7、萬用字元使用技巧:

7.1、不要過度使用萬用字元,能夠使用其他操作符達到的,使用其他的操作符

7.2、如果確實要用萬用字元的,除非絕對有必要,否則不要用在搜尋模式的開始處

七、正規表示式搜尋

1、regexp字串:select * from dede_scores where titles regexp '帝';

2、使用or匹配:select * from dede_scores where titles regexp '帝|將';

3、匹配幾個字元之一: select * from dede_scores where titles regexp '[帝將]'; 得到的結果為有「帝」和「將」字之一的結果;

4、匹配titles中是否有「.」存在:select * from dede_scores where titles regexp '\\.';【使用兩個斜桿的原因:mysql自己解釋乙個,正規表示式解釋另外乙個】

《MySQL必知必會》學習筆記

本人在初學mysql語言,因害怕忘記,故把學習筆記寫到這個部落格上,以備查閱 所有種類的程式語言,文字編輯器,作業系統等都支援正規表示式。有見識的程式設計師和網路管理員已經關注作為他們技術工具重要內容的正規表示式很長時間了。正規表示式使用正規表示式語言建立,與任意語言一樣,正規表示式具有你必須學習的...

《MySQL必知必會》學習筆記

學習sql不是為了用它來幹活,只是出於興趣對它進行簡單的了解,寫下這篇學習筆記的目的也很簡單 幫助自己記憶。本次的學習筆記機遇linux centos 7 和mariadb。yum install mariadb mariadb server systemctl start mariadb syst...

mysql必知必 SQL必知必會學習筆記 一

資料庫基礎 資料庫 資料庫軟體 確切的說,資料庫軟體應稱為資料庫管理系統 dbms 資料庫是通過dbms建立和操作的容器 資料庫相當於檔案櫃 容器 表相當於檔案 同乙個資料庫不能存在相同的表名,不同的資料庫可以存在相同的表名 主鍵應滿足的條件 唯一性非空性 not null 主鍵列中的值不允許修改或...