MySQL學習筆記3

2021-09-26 09:29:24 字數 3699 閱讀 9898

標籤(空格分隔): 筆記 mysql

通過inner join…on關鍵字實現

具體語法:

select field1,field2,..

.fieldn from table_name inner

join join_table on join_condition;

#這裡注意的是on後面其實跟的就是外來鍵約束中相對應的兩個列名!

外連線分為2種,左連線和右連線;它們用法上是一樣的,查詢邏輯上互為相反

具體語法:

select field1,field2,..

.fieldn from table_name left

|right

join join_table on join_condition;

左連查詢和右連查詢的區別是,以執行語句中的哪個表為主表,所謂主表即以主表為準,主表中有的資料才顯示,主表中沒有的資料即使附表中有也不顯示在結果中。

通過內鏈結實現多表連線查詢

示例:

//第一種方法

select cu_name,c_name from commodity inner

join

(select o_cid,cu_name from

`order

`inner

join customer on o_cuid=cu_id where cu_name=

'劉德華'

)as t on c_id=o_cid;

//第二種方法

select cu_name,c_name

from commodity as c,

`order

`as o,customer as cu

where c.c_id=o.o_cid and o.o_cuid=cu.cu_id and cu.cu_name =

'劉德華'

;

通過子查詢實現多表連線查詢

示例:

//單行多列

select

*from table_a where

(sal,name)=(

select sal,name from table_b where name =

'tomcat');

//多列多行:

select

*from table_a where sal in

(select sal from table_b;);

//查詢結果在返回字段結果內的

select

*from table_a where sal notin(

select sal from

table_b;);

//查詢結果不在返回字段結果內的

select

*from table_a where sal >=

any(

select sal from

table_b;);

//查詢結果在返回字段結果內任意滿足

select

*from table_a where sal >=

all(

select sal from

table_b;);

//查詢結果在返回字段結果內全部滿足

事務就是將一組sql語句放在同一批次內去執行

如果乙個sql語句出錯,則該批次內的所有sql都將被取消執行

事務的acid原則

set autocommit

使用set語句來改變自動提交模式

set autocommit =0;

#關閉自動提交模式

set autocommit =1;

#開啟自動提交模式

注意-mysql中預設是自動提交的

-使用事務時應先關閉自動提交

start transaction

commit

rollback

set autocommit = 1

作用

分類

某乙個屬性組能唯一標識一條記錄

如:學生表(學號,姓名,班級,性別等),學號就是唯一表示的,可作為主鍵

特點:

示例

create

table

`表名`

(`gradeid`

int(11)

auto_increment

primary

key#或 primary key(`gradeid`)

);

作用:避免同乙個表中某資料列中的值重複

與主鍵索引的區別:

示例

create

table

`grade`

(`gradeid`

int(11)

auto_increment

primary

key,

`gradename`

varchar(32

)not

null

unique

#或 unique key `gradeid`(`gradeid`)

);

作用:快速定位特定資料

注意:

示例

//建立表時新增

create

table

`result`

(//省略一些**

index

/key

`ind`

(`studentno`

,`subjectno`))

;//建立表後追加

alter

table

`resule`

addindex

`ind`

(`studentno`

,`subjectno`

);

作用:快速定位特定資料

注意:

示例

//建立表時新增

create

table

`student`

(#省略一些sql語句

fulltext(`studentname`))

engine

=myisam;

//建立表後追加

alter

table employeeadd fulltext (

`first_name`

);

建立索引刪除索引檢視索引

mysql學習筆記(3)

資料表索引設定 目的 加速搜尋 檢視現有索引 show index from user g 語句以 g 結尾可以使顯示結果行列轉置,方便檢視 1.主鍵索引 primary key eg 給字段id加主鍵索引 建立表時新增 id int unsigned auto increment primary ...

MySQL學習筆記 3

use test show tables select employee name,salary from employee order by salary desc 執行結果 desc 降序asc 公升序 不寫預設是公升序 use test show tables select employee ...

MySQL學習筆記 3

dml資料操縱語言 寫法2 insert into tab name 欄位1,欄位2,select v1,v2,union select v1,v2,union select union 聯合多個子句執行 寫法3 insert into tab name set 欄位1 v1,欄位2 v2 1.2修...