您的位置:首页 > 数据库

简单的SQL语句(不定期更新)

2013-04-08 14:59 357 查看
create table dept(dname char(7),loc char(4),id number(7) primary key);//建表

desc dept;//查找表所具有的属性

alter table dept add ddate date;//修改table表 dept 增加名为当ddate属性为date的属性组

select * from dept;//选择所有表元素

alter table dept drop column ddate;//删除dept 中在ddate列

insert into dept (dname,loc,ddate)values('12','23',23);//向dept中插入元组

insert into dept (deptno,dname,loc) values(77,'11','1321');

alter table dept add constraint first primary key (deptno);//将dept中的deptno设成主码

alter table dept add constraint uni primary key (deptno);

delete from dept where deptno='7';//删除dept表中deptno='7'的元组

create table emp as select * from scott.emp;///从事scott用户下把emp表拷到自己用户下

(一) 包括排序、分组的单表查询
emp表

EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
8888
30SMITHCLERK790217-12月-8080020
7499ALLENSALESMAN769820-2月 -81160030030
7521WARDSALESMAN769822-2月 -81125050030
7566JONESMANAGER783902-4月 -81297520
7654MARTINSALESMAN769828-9月 -811250140030
7698BLAKEMANAGER783901-5月 -81285030
7782CLARKMANAGER783909-6月 -81100010
7788SCOTTANALYST756619-4月 -87300020
7839KINGPRESIDENT17-11月-81100010
7844TURNERSALESMAN769808-9月 -811500030
7876ADAMSCLERK778823-5月 -87110020
7900JAMESCLERK769803-12月-8195030
7902FORDANALYST756603-12月-81300020
7934MILLERCLERK778223-1月 -82190010
1)查询EMP全部列
select * from emp;

2)如果现在只要查询出雇员的编号、姓名、工作.

select empno,ename,job from emp;

3)为查询的结果列指定一个别名.

select count(*) num from emp

4)查询所有的工作(去掉重复的工作) distinct

select distinct job from emp;

5)查询出工资大于1500的所有雇员

select * from emp

where sal>1500;

6)例:查询出在1981年入职的全部雇员的信息

select * from emp where to_char(hiredate) like '%81';

7)例:查询出雇员号不是7369, 7499 , 7521 的雇员的具体信息

select * from emp

where empno not in(7369,7499 , 7521);

8)例:查询出雇员姓名第二个字母为”L”的雇员信息

select * from emp

where ename like'_L%';

9)例:按工资升序对雇员信息进行排序

select * from emp

order by sal asc;

10)检索出部门号为30的雇员信息,并按工资降序,工资相同则按入职日期升序排列

select * from emp

where empno in(

select empno from emp

where deptno=20

)

order by sal desc,hiredate asc;

11)查询没有得到奖金的员工的信息。

select * from emp

where comm is null;

(二) 多表连接查询

DEPTNODNAMELOC
77jhk
89lll
10ACCOUNTINGNEW YORK
20RESEARCHDALLAS
30SALESCHICAGO
40OPERATIONSBOSTON
45
1)查询出雇员的编号,雇员姓名,部门编号,部门名称以及部门的位置

select emp.empno,emp.ename,dept.deptno,dept.dname,dept.loc from emp,dept

where emp.deptno=dept.deptno;

2)以部门为主体,利用emp和dept做一个连接查询,查询结果包括雇员编号,雇员姓名,部门编号,部门名称,部门所在位置(利用外连接)

select emp.empno,emp.ename,dept.deptno,dept.dname,dept.loc from emp,dept

where emp.deptno=dept.deptno(+);

3)统计获得奖金的人数

4)求所雇员的最低工资

5)统计出每个部门的人数

6)查询出每个部门的部门名称,及每个部门的雇员人数

7)求部门号为20且工资小于3000的员工编号及其所属部门名称

8)查询某个员工的直接领导

用户授权

grant select on emp to machuan;

权限回收

revoke select on emp from machuan;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: