sql語法之多表查詢方式

2021-08-28 03:25:42 字數 2301 閱讀 6359

一、sql語句的多表查詢方式

例如:按照 department_id 查詢 employees(員工表)和 departments(部門表)的資訊。

方式一(通用型):select ... from ... where

select e.last_name,e.department_id,d.department_name

from employees e,departments d

where e.department_id = d.department_id

方式二:select ... from ... natural join ...

有侷限性:會自動連線兩個表中相同的列(可能有多個:department_id 和

manager_id)

select last_name,department_id,department_name

from employees

natural join departments

方式三:select ... join ... using ...

有侷限性:好於方式二,但若多表的連線列列名不同,此法不合適

select last_name,department_id,department_name

from employees

join departments

using(department_id)

方式四:select ... from ... join ... on ...

常用方式,較方式一,更易實現外聯接(左、右、滿)

select last_name,e.department_id,department_name

from employees e

join departments d

on e.department_id = d.department_id

-- 內連線

1)--等值連線

--不等值連線

2)--非自連線

--自連線

-- 外連線

--左外連線、右外連線、滿外連線

二、建立和管理表

craete table /truncate table /alter table /reanme...to/drop table ..操

作完以後,自動 commit;所以,rollback 對其操作,沒有效果

1. 建立表

1 )直接建立

create table emp1(

name varchar2(20),

salary number(8,2)default 1000,

id number(4),

hire_date date

);2 )通過子查詢的方式建立

create table emp2

asselect last_name name,employee_id id,hire_date

from employees;

或者create table emp2

asselect last_name name,employee_id id,hire_date

from employees

where department_id = 80;/where 1=2;

2. 修改表

1) 增加新的列

alter table emp1

add(birthday date)

2) 修改現有的列

alter table emp1

modify(name varchar2(25) default 'abc')

3) 重新命名現有的列

alter table emp1

rename column salary to sal;

4) 刪除現有的列

alter table emp1

drop column birthday;

3. 清空表中的資料(與 與 delete from table_name ?區分開)

truncate table emp2;

4. 重新命名表

rename emp2 to e***;

5. 刪除表

drop table e***;

Oracle之多表查詢

多表查詢的基礎語法 select 查詢列 1 別名1,查詢列 2 別名2,from 表名稱1 別名1 名稱2 別名2 給出幾個例子吧。1.select e.ename,e.sal,d.dname,s.grade,m.ename,m.sal,ms.grade from emp e,dept d,sal...

MySql之多表查詢

select e.empname,d.deptname from emp e,dept d where e.deptno d.deptno select e.empname d.deptname from emp e inner join dept d on e.deptno d.deptno se...

Hibernate之多表查詢

原生sql多表查詢 1.交叉連線 笛卡爾積 select from a,b 2.內連線 1 隱式內連線 select from a,b where b.aid a.id 2 顯示內連線 select from a inner join b on b.aid a.id 3.外鏈結 1 左外連線 sel...