關於《MySQL 必知必會》的學習1

2021-05-27 14:05:21 字數 3410 閱讀 1716

前天周四去圖書館借書,由於對於資料庫不是特別關注,所以只象徵性的借回一本ben forta的 《mysql 必知必會》(mysql crash course),32k,241頁。由於有必要學學mysql,所以它也就馬上派上了用場。稍微看了前幾章,感覺這書名翻譯的真不乾脆,照我說就直譯《mysql的速成班》(google直譯 =。=)。

但是麻雀雖小,五臟俱全,書中的東西還是挺多的,前2章講的是sql和mysql的介紹,好吧,我從來沒有對任一軟體的介紹上心過,所以這兩章也是基本瀏覽   |_o_o_| 。由於每一章的內容很簡略,所以,我決定把每一章的心得和實際應用記下來。

書中建議:

1、sql語句不區分大小寫,因此select與select 是相同的。但許多sql開發人員喜歡對所有sql關鍵字使用大寫,而對於所有列和表名使用小 寫,這樣做使**更易於閱讀和除錯。

2、在處理sql語句時,其中所有的空格都被忽略,sql語句可以在一行上給出,也可以分成許多行,多數sql開發人員認為將sql語句分成多行更容易閱讀和除錯。

使用你的使用者名稱與密碼連線mysql,一般預設使用者名為「root」,密碼如果沒有配置則為空。

選擇資料庫使用「use」關鍵字,如:

use test;

顯示資訊用

「show」關鍵字,如:

-- 顯示資料庫列表

show databases;

-- 顯示資料庫中的表

show tables;

-- 顯示表中資訊

show columns from table;

-- 等價於

desc table;

-- 以下語句平時本人較少用,記錄在此以備不時之需

-- 顯示伺服器狀態

show status;

-- 顯示特定資料庫或表的建立語句

show create database db;

show create table table;

-- 顯示授權使用者

show grants;

-- 顯示伺服器錯誤或警告訊息

show errors;

show warnings;

先建乙個表,建表語句如下:

create table 'test' (

'user_id' int not null auto_increment,

'user_name" varchar(20) not null,

primary key ('user_id')

)engine=innodb auto_increment=1 default charset=utf8

插入資料,我的插入語句是:

insert into test values

(null,'a'),

(null,'a'),

(null,'b'),

(null,'b'),

(null,'c'),

(null,'c');

用「select」關鍵字對錶1資料進行檢索,輸出如下:

+------------+-------------------+            表1

|  user_id   |   user_name |

|              1   |  a                     |

|              2   |  a                     |

|              3   |  b                     |

|              4   |  b                     |

|              5   |  c                     |

|              6   |  c                     |

關鍵字"distinct":返回查詢列中不同值的記錄。

select distinct user_name

from test;

關鍵字"limit":返回不多於限制的記錄。

-- 限制返回記錄數為2

select *

from test

limit 2;

-- 從第四條記錄處開始返回2條記錄

select *

from test

limit 3,2;

-- 等價於

select *

from test

limit 2 offset 3;

在mysql中用檢索出來的記錄是預設是以記錄插入先後公升序排列。

我們可以使用"order by"子句來對輸出結果進行排序。

select user_name

from test

order by user_id;

-- 對多個列進行排序

select user_name

from test

order by user_id,user_name;

關鍵字 "desc":讓返回結果以降序結果排列。

select *

from test

order by user_id desc;

使用上面的查詢語句查詢出來的結果是按user_id降序排列,那user_name呢?是公升序還是降序?請試一下下面的查詢語句,試著分析一下會是什麼返回結果:

select *

from test

order by user_name desc

limit 2 offset 1 ;

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

下面為個人看 mysql必知必會 時做的筆記,感覺 mysql必知必會 屬於一般筆記基礎的書,可以鞏固一下之前的基礎。下面的sql語句大部分是dede scores表的,下面是建立表的語句 create table dede scores id int 11 unsigned not null au...

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

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

mysql的必知必會 mysql 必知必會 筆記

好久沒有寫了。1 show columns from table 等同於describe table顯示的是表的結構。而select from table 則顯示的是整個表中插入的資料。2 select distinct c1,c2 from table除非列不相同,否則所有行將被檢索出來,即不能對...