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

本文介绍了SQL中的基本操作,如创建、修改、删除表格等,同时深入探讨了单表查询和多表连接查询的方法,包括排序、分组、条件筛选等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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月-80800 20
7499ALLENSALESMAN769820-2月 -81160030030
7521WARDSALESMAN769822-2月 -81125050030
7566JONESMANAGER783902-4月 -812975 20
7654MARTINSALESMAN769828-9月 -811250140030
7698BLAKEMANAGER783901-5月 -812850 30
7782CLARKMANAGER783909-6月 -811000 10
7788SCOTTANALYST756619-4月 -873000 20
7839KINGPRESIDENT 17-11月-811000 10
7844TURNERSALESMAN769808-9月 -811500030
7876ADAMSCLERK778823-5月 -871100 20
7900JAMESCLERK769803-12月-81950 30
7902FORDANALYST756603-12月-813000 20
7934MILLERCLERK778223-1月 -821900 10

 

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;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值