给表起别名:
Select e.employee_id,e.last_name,d.department_name From employees e,departments d
列的别名:(列名后加 ''column name"、 as column name或直接加别名)
Select employee_id "Emp #",e.last_name,d.department_name From employees e,departments d
1.自然联接(系统会将一表中的列和二表的列的同名列进联接,缺点各个表中的列要有同名列)
Select employee_id,last_name,department_name From employees NATURAL JOIN departments Where deparment_name='Purchasing'
2.内联接(和自然联接差不多,但要规定所要联接的列)
Select e.employee_id,e.last_name,d.department_name From employees e INNER JOIN departments d ON e.department_id=d.department_id Where e.job_id='SA_MAN'
3.外联接(分为左外部联接,右外部联接,完全联接)
左外部联接:左表如果满足WHERE条件,不论在右表中是否为NULL
Select e.employee_id,e.last_name,d.department_name From employees e
LEFT OUTER JOIN departments d ON e.department_id=d.department_id
Where e.job_id='SA_MAN'
右外部联接:
Select e.employee_id,e.last_name,d.department_name From employees e
RIGHT OUTER JOIN departments d ON e.department_id=d.department_id
Where d.location_id='1700'
完全联接(FULL OUTER JOIN)
1.UNION和ALL UNION
Select employee_id,last_name From employee Where last_name like 'A%'
UNION [ UNION ALL ]--UNION会自动过滤去重复行,UNION ALL不过滤
Select employee_id,last_name From employee Where last_name like 'B%'
2.INTERSECT(取交集)
Select employee_id,last_name From employee Where last_name like 'A%' or last_name like 'B%'
INTERSECT--返回like 'B%' 的记录
Select employee_id,last_name From employee Where last_name like 'A%' or last_name like 'B%'
3.MINUS (取差集)
Select employee_id,last_name From employee Where last_name like 'A%' or last_name like 'B%'
MINUS--返回like 'A%' 的记录
Select employee_id,last_name From employee Where last_name like ' C%' or last_name like 'B%'
SQL约束
1.创建表的组合主键
create table employee_history
(
employee_id number,salary number(8,2),hire_date date default sysdate,
CONSTRAINT emphistory_pk primary key(employee_id,hire_date)
)
2.ALTER TABLE 表名 add constraint 约束名 primary key(列名)
3.ALTER TABLE 表名
add constraint 约束名 foreign key(外键表) references 所引用的表名(主键列)
4.ALTER TABLE 表名 add constraint 约束名 unique(列名)--添加唯一性
5.ALTER TABLE 表名
add constraint 约束名 check(column in('AA','BB'))--column列的值只能为'AA','BB'