1. 程式人生 > >sql語句合集大全(個人總結)

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表的salmax

select max(a.sal) from emp a;

--emp表的salmin

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%';

--empename不含有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'),'北京');