create table t(
tid int unsigned not null auto_increment,
tname varchar(30),
primary key (tid)
)engine=myisam auto_increment=1 default charset =utf8;
insert into t values(null,'***'),(null,'趙老師'),(null,'張老師');
select * from t;
create table s(
sid int unsigned not null auto_increment,
sname varchar(10)not null,
sgender enum ('男','女','人妖'),
sdept varchar(20) not null default '電腦科學',
sscore int unsigned,
tid int unsigned,
primary key(sid)
)engine=myisam auto_increment=1601 default charset =utf8;
insert into s values(null,'張三','男','美術',80,1),(null,'張三丰','人妖','英語',45,2);
insert into s values(null,'李麗','女','美術',90,3),(null,'黃瑤','女','財經',99,3);
insert into s(sname,sgender,sscore) values('趙磊','男',50),('周磊','人妖',68);
drop table job;
select * from s;
-- 多表查詢(不推薦使用)
select s.`sid`,s.`sname`,t.`tname`
from s,t
where s.tid = t.tid;
-- 連線查詢 join left join right join
select s.`sid` 學號,s.`sname` 姓名,s.`sdept` 專業,if(t.`tname` is null,'沒安排老師',t.`tname`) 老師
from s left join t on s.`tid`=t.`tid`;
create table job(
jid int unsigned not null auto_increment primary key,
jname varchar(20) not null,
jgender enum('男','女'),
jpjid int
)engine=myisam auto_increment=1 default charset =utf8;
insert into job values(null,'張三','男',null);
insert into job values(null,'李四','男',1);
insert into job values(null,'王五','女',1);
insert into job values(null,'趙六','男',3);
select * from job;
desc job;
-- 查詢每個員工的編號姓名及領導的名字
-- 自連線查詢
select j1.`jid` 編號,j1.`jname` 姓名,j2.`jname` 領導姓名
from job j1,job j2
where j1.jpjid=j2.jid
select j1.`jid` 編號,j1.`jname` 姓名,if(j2.`jname` is null,'總經理',j2.`jname`) 領導姓名
from job j1 left join job j2
on j1.jpjid=j2.jid
MySQL5 連線查詢
連線查詢可以實現多個表的查詢,一次取出多個表中的資料。連線查詢可分為四種 內連線,外連線,交叉連線,自然連線。如果連線查詢的不同表有同名字段,必須加表名或表名的別名來區分。資料庫的預設查詢方式,inner可以省略不寫。從左表取出記錄後,去匹配右表中的記錄,如果滿足條件則記錄保留,否則捨棄。語法 左表...
13 連線查詢
假設 a 表中有3條記錄,b表中有 4 條記錄 那麼,語句select from a,b 會將a,b兩張表的資料交叉拼接起來,形成 3 4 12 條記錄的結果集,此結果集叫做笛卡爾積。ora 00918 未明確定義列 改進辦法 明確列的所屬 select empno,ename,emp.deptno...
004 連線查詢
再大多數的情況下,我們都需要進行連線查詢.笛卡爾積的產生 這個就是多表查詢的的最初結果集,那麼以後我們需要作的就是從結果集中篩選出需要的結果集.篩選的方式不同,導致sql的效率不同.篩選的方式就是加入連線標準.等值連線 select 字段 from 表1 表2 where 連線條件.eg 查詢員工名...