mysql指南 MySQL 指南(一)

2021-10-20 23:12:06 字數 3038 閱讀 5863

建立帶有空格的列名

create table customer (

customerid integer not null auto_increment,

`first name` varchar(16),

`last name` varchar(16),

primary key (customerid)

) engine=innodb charset=utf8;

帶有空格的屬性,無論實在建立的過程中或是 crud 操作都需要用 `` 重 音符將其包括起來。

連線字段

出於某種目的 ,我們可能想要將表中的兩列組合在一起,在 sql 中可以使用 + 將兩個字段連線在一起,但是在 mysql 中我們需要借助 concat() 函式。

select

concat(first name, last name)

from

customer;

轉換函式

有的時候我們可能需要將null 值轉換成有意義的內容。可以借助 ifnull 將 null 值轉換成其它內容。

select

ifnull(last name, 'unknown') as 'name'

from

customer;

case 表示式

有時候我們會將人的性別儲存為 int 型別, 0 代表男性,1 代表女性。所以這個時候我們在查詢資料庫的時候需要將資料進行轉換。

select

case

when *** = 0 then 'man'

when *** = 1 then 'woman'

else 'unknown'

end as '***'

from

customer;

以上**的意思就是,如果查詢到 *** 為 0, 則返回 man,如果 *** 為 1,則返回 woman,如果既不是 0 也不是 1,則返回 unknown.

限制行有時候,對於資料庫中成千上萬條記錄,可能只有前幾條是我們感興趣的,那麼這個時候我們可能用到 limit 關鍵字。

select

case

when *** = 0 then 'man'

when *** = 1 then 'woman'

else 'unknown'

end as '***'

from

customer

limit 1;

以上**就是返回資料庫中的第一條記錄。

下面我們將建立兩張表,接下來的內容都圍繞這兩張表展開。

create table student (

studentid integer not null,

studentname varchar(16) not null,

student*** smallint,

primary key (studentid)

) engine=innodb charset=utf8;

create table address (

addressid integer not null,

province varchar(8),

city varchar(8),

foreign key (addressid)

references student (studentid)

) engine=innodb charset=utf8;

向表中插入幾條資料。

insert into student values(1,'hwaphon',0);

insert into student values(2,'sun',1);

insert into address values(1,'anhui','wuhu');

insert into address values(2,'hebei','tianjin');

not 操作符

select

studentname

from

student

where

not student*** = 0;

實際上可以使用 <> 實現同樣的效果。

select

studentname

from

student

where

student*** <> 0;

模糊匹配

比如我們現在想找乙個名字中帶有 phon 的人。

select

studentname

from

student

where

studentname like '%phon%';

%代表可以匹配任意多個任意字元,當然還存在 _字元,代表可以匹配乙個任意字元。

內聯接select

from

student

inner join

address on student.studentid = address.addressid;

雖然使用 where 語句也能達到相同的效果,但是並不推薦那麼做。

外聯接外聯接分為三種,分別是左外聯接,右外聯接和全鏈結。下面,我們舉例來看看這三種聯接。

首先,再插入一條 student 記錄。

insert into student values(3,'john',0);

這個時候 adress 表中並沒有 john 的位址資訊,所以如果這個時候使用內聯接查詢資料,顯示結果如下。

demo01.png

如果我們想既想進行聯接操作,又不想讓資訊丟失,那麼這個時候我們只能使用左外聯接了。

select

from

student

left outer join

address on student.studentid = address.addressid;

這時候的查詢結果如下。

demo02.png

是的,本來應該被忽略掉的 john 又顯示出來了,這就是左外聯接的作用,讓本來應該在聯接過程中消失的主表資訊顯示出來,但是它不存在的那些列會自動填充 null。右外聯接和全聯接的作用和這個類似。

mysql官網指南 MySQL 指南(一)

建立帶有空格的列名 create table customer customerid integer not null auto increment,first name varchar 16 last name varchar 16 primary key customerid engine in...

mysql安裝指南 MySQL安裝指南

本文僅僅針對mysql在windows 環境下的應用,展開說明。mysql enterprise edition mysql企業版 含了資料庫檔案,不包含其他的工具元件。許多任務具元件,比如notifier,workbench,connector等。安裝了這個,就等於mysql 安裝全了。ga 是穩...

MySQL安裝指南

要安裝 mysql,可以在終端提示符後執行下列命令 sudo apt get install mysql server sudo apt get install mysql client sudo apt get install php5 mysql 安裝php5 mysql 是將php和mysql...