sql語句合集大全(個人總結)
--查詢emp表
select * from emp;
--查詢emp表的sal
select a.SAL from emp a;
--查詢emp表的ename
select a.ename from emp a;
--emp表的sal*10
select a.SAL*10 from emp a;
--emp表的sal的平均值
select avg(a.sal) from emp a;
--emp表的sal的總和
select sum(a.sal) from emp a;
--emp表的sal的max
select max(a.sal) from emp a;
--emp表的sal的min
select min(a.sal) from emp a;
--emp表中sal<1000的資訊
select * from emp where sal<1000;
--ename中含有A的資訊
select ename from emp where ename like'%A%';
--emp中ename不含有A的資訊
select * from emp where ename not like'%A%';
--查詢系統時間
select sysdate from dual;
--計算薪資小於5000的員工的工資總和
select sum(sal) from emp where sal<5000 ;
--計算工資不高於平均工資的工資總和
select sum(sal) from emp where sal<(select avg(sal) from emp);
--計算工資小於4000的員工的平均工資
select avg((select sum(sal) from emp where sal<4000)) from emp;
--查詢薪水低於100000的員工姓名和sal
select ename,sal from emp where sal<100000;
--計算20號部門的員工的最高工資和最低工資
select max(sal),min(sal) from emp where deptno=20;
--查詢工資大於1000,並且是20號部門的員工的全部資訊
select * from emp where sal>1000 and deptno=20;
--求最高工資的員工的員工姓名和部門名稱
select ename,deptno,sal from emp where sal=(select max(sal) from emp);
--將員工薪水小於5000且部門平均薪水大於1000的部門標號列出,按部門平均薪水降序排序
select deptno from emp where sal<5000 group by deptno having avg(sal) >1000;
select sal from emp order by sal desc;
Order by *** desc
--查詢表emp
select * from emp ;
--根據使用者名稱“Smiths”查詢他所在的部門
select deptno from emp where ename='SMITH';
--查詢每個部門的最高工資的人員名稱
select e.ename,e.deptno,e.sal from (select deptno as did ,max(sal) as m from emp group by deptno ) s,emp e,dept d where e.sal=s.m and s.did=e.deptno and d.deptno=e.deptno;
--查詢“Jones”之後第一個進入公司的人
select * from emp where hiredate=(select min(hiredate) from emp where hiredate>(select hiredate from emp where ename='JONES')) ;
--5.查詢工資最高的部門名稱和工資最低的部門名稱及工資
select d.dname,e.sal from emp e,dept d where e.deptno=d.deptno and sal=(select max(m) from (select deptno,max(sal) as m from emp e group by deptno) s)
union
select d.dname,e.sal from emp e,dept d where e.deptno=d.deptno and sal=(select min(m) from (select deptno,min(sal) as m from emp e group by deptno) s)
--建立表
createtable student(
StudentId number (6),--學號
LoginPwd varchar(20),--密碼
StudentName varchar(50),--姓名
Sex char(2),--性別
Gradeld Number(6),--所在年級
Phone number(15),--聯絡電話
Address varchar2(255),--現住址
BornDate Date,--出生日期
Emile varchar2(50)--電子郵件
);
--新增資料
insertinto student values(1001,'123456','趙六','男',1507,120,'北京','23-5月-1995','@10422');
insertinto student values(1002,'123456','王五','女',1507,110,'北京','23-5月-1995','@10422');
insertinto student values(1003,'123456','張三','男',1507,120,'北京','23-5月-1995','@10422');
insertinto student values(1004,'123456','李四','女',1507,110,'北京','23-5月-1995','@10422');
--提交
commit;
--查詢此表
select * from student;
--根據條件修改
update student set studentname='孫七',loginpwd='666666'where studentid=1001;
select * from student;
--根據條件刪除
deletefrom student where studentid=1002;
select * from student;
--增加欄位
ALTERTABLE 表名稱 ADD(列名稱 資料型別 [DEFAULT 預設值],列名稱 資料型別 [DEFAULT 預設值],…)
--刪除此表
droptable student;
--B卷 建立表空間
create tablespace mytestspace datafile 'e:week3.dbf' size 2M;
--建立使用者
create user zhangsan identified by zhangsan default tablespace mytestspace
temporary tablespace temp;
--建立角色並授權
create role fang;
grant create table to fang;
grant fang to zhangsan;
grant dba to zhangsan;
--建立表
create table teacher (
tid number primary key,
tname varchar2(50),
tdate date,
address varchar2(100)
);
select * from teacher;
--建立序列
create sequence teachers_sequence minvalue 1 maxvalue 100 (最小值,最大值)cycle (迴圈)increment by 1(步長值) start with 1(從1開始);
insert into teacher values(teachers_sequence.nextval,'小李','01-1月-1999','北京');
insert into teacher values(teachers_sequence.nextval,'小張',to_date('1982-1-1','yyyy-mm-dd'),'北京');