標籤(空格分隔): 筆記 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修...