日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL语法练习

發(fā)布時間:2023/12/13 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL语法练习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SQL語法練習(xí)


https://blog.csdn.net/qq_30764991/article/details/81952197

員工表建表語句:
CREATE TABLE EMP (
ENAME VARCHAR2(30),
EMPNO NUMBER(5),
DEPTNO NUMBER(5),
JOB VARCHAR2(20),
HIREDATE DATE,
COMM NUMBER(6,2),
SAL NUMBER(6,2)
);

部門表建表語句:

CREATE TABLE DEPT (
DNAME VARCHAR2(30),
DEPTNO NUMBER(5),
LOC VARCHAR2(50)
);

員工表插入數(shù)據(jù):

INSERT INTO EMP VALUES (‘Zhou潤發(fā)’, 10001, 10, ‘辦事員’, TO_DATE(‘20161130131322’, ‘YYYYMMDDHH24MISS’), 2500, 2400);
INSERT INTO EMP VALUES (‘Liu德華’, 10002, 10, ‘辦事員’, TO_DATE(‘20170105131334’, ‘YYYYMMDDHH24MISS’), 1800, 2250);
INSERT INTO EMP VALUES (‘Li連杰’, 20001, 20, ‘辦事員’, TO_DATE(‘20170313131339’, ‘YYYYMMDDHH24MISS’), 2200, 2350);
INSERT INTO EMP VALUES (‘xiang華強(qiáng)’, 20000, 20, ‘經(jīng)理’, TO_DATE(‘20160130131343’, ‘YYYYMMDDHH24MISS’), 3980, 3500);
INSERT INTO EMP VALUES (‘Zhang柏芝’, 30001, 30, ‘辦事員’, TO_DATE(‘20170314131346’, ‘YYYYMMDDHH24MISS’), 1300, 2200);
INSERT INTO EMP VALUES (‘成long’, 10000, 10, ‘經(jīng)理’, TO_DATE(‘20151031133724’, ‘YYYYMMDDHH24MISS’), 4800, 4000);
INSERT INTO EMP VALUES (‘zhang子怡’, 30000, 30, ‘經(jīng)理’, TO_DATE(‘20161011133915’, ‘YYYYMMDDHH24MISS’), 3500, 3480);
INSERT INTO EMP VALUES (‘zhang家輝’, 20002, 20, ‘辦事員’, TO_DATE(‘20170330134519’, ‘YYYYMMDDHH24MISS’), 1600, 2000);
INSERT INTO EMP VALUES (‘Liu亦菲’, 30002, 30, ‘駕駛員’, TO_DATE(‘20170330135457’, ‘YYYYMMDDHH24MISS’), NULL, 2500);
INSERT INTO EMP VALUES (‘peng于晏’, 20003, 20, ‘駕駛員’, TO_DATE(‘20170411135625’, ‘YYYYMMDDHH24MISS’), NULL, 2500);
INSERT INTO EMP VALUES (‘Zhang涵予’, 10003, 10, ‘駕駛員’, TO_DATE(‘20170408135706’, ‘YYYYMMDDHH24MISS’), NULL, 2500);

部門表插入數(shù)據(jù):

INSERT INTO DEPT VALUES (‘市場部’, 10, ‘北京’);
INSERT INTO DEPT VALUES (‘公關(guān)部’, 20, ‘上海’);
INSERT INTO DEPT VALUES (‘研發(fā)部’, 30, ‘南京’);

表結(jié)構(gòu)數(shù)據(jù)圖如下:

兩張表已全部建好,自己用查詢語句查看一下表結(jié)構(gòu)和數(shù)據(jù)是否沒問題.

Select * From EMP Select * From DEPT

下面是題目:可以復(fù)制下來做, 做完再和我做答案對照一下, 當(dāng)然, 有的題目可以用多種方法去做, 看你自己選擇了.

還有一點(diǎn)需要注意的是:我是用的可視化界面輸入的語句,別名中文不需要加引號,一開始我加引號老是報(bào)錯,后來無意間去掉反而好了,不知道為什么.我開始學(xué)的時候,別名使用中文是需要加引號的,看你實(shí)際的情況吧!!

題目:

–1.選擇30部門的職員
–2.列出所有辦事員的姓名、編號和部門
–3.找出獎金高于薪資的雇員
–4.找出傭金高于薪金60%的雇員
–5.找出部門10中所有經(jīng)理和部門20中的所有辦事員的詳細(xì)資料
–6.找出既不是經(jīng)理又不是辦事員但其薪金>=2000的所有雇員的詳細(xì)資料
–7.找出收取傭金的雇員的不同工作
–8.找出不收取傭金或收取的傭金低于2000的雇員
–9.找出各月最后一天受雇的所有雇員
–10.找出早于1年之前受雇的雇員
–11.顯示只有首字母大寫的所有雇員的姓名
–12.顯示正好為7個字符的雇員姓名
–13.顯示不帶有’Z’的雇員姓名
–14.顯示所有雇員的姓名的前三個字符
–15.顯示所有雇員的姓名,用小寫 z 替換所有大寫 Z .
–16.顯示所有雇員的姓名以及滿1年服務(wù)年限的日期
–17.顯示雇員的詳細(xì)資料,按姓名排序
–18.顯示雇員姓名,根據(jù)其服務(wù)年限,將最老的雇員排在最前面
–19.顯示所有雇員的姓名、工作和薪金,按工作的降序順序排序,而工作相同時按薪金升序
–20.顯示所有雇員的姓名和加入公司的年份和月份,按雇員受雇日所在月排序,將最早年份的項(xiàng)目排在最前面
–21.顯示在一個月為30天的情況下所有雇員的日薪金
–22.找出在(任何年份的)1月受聘的所有雇員
–23.對于每個雇員,顯示其加入公司的天數(shù)
–24.顯示姓名字段的任何位置,包含 “i” 的所有雇員的姓名
–25.以年、月和日顯示所有雇員的服務(wù)年限

答案:

1–

select ename,deptno from emp where deptno=30;
2–

select e.ename,e.empno,d.dname,e.job from emp e,dept d where e.deptno=d.deptno and e.job=‘辦事員’;
3–

select * from emp where comm>sal order by comm desc;

4–

select * from emp where comm>sal*0.6;
5.1–

select * from emp e,dept d where e.deptno=10 and e.job=‘經(jīng)理’ and e.deptno=d.deptno
union all
select * from emp e,dept d where e.deptno=20 and e.job=‘辦事員’ and e.deptno=d.deptno;
5.2–

select * from emp e,dept d where (e.deptno=10 and e.job=‘經(jīng)理’ and e.deptno=d.deptno)
or (e.deptno=20 and e.job=‘辦事員’ and e.deptno=d.deptno);
6–

select * from emp e,dept d where e.sal>=2000 and e.job<>‘辦事員’ and e.job<>‘經(jīng)理’ and e.deptno=d.deptno;
7–

select distinct job from emp where comm>0;
8–

select ename,nvl(comm,0) comms from emp where nvl(comm,0)<2000;
9–

select * from emp where hiredate=last_day(hiredate);
10.1–

select * from emp where months_between(sysdate,hiredate)>12;
10.2–

select * from emp where hiredate 11–

select * from emp where ename=initcap(ename);
12–

select * from emp where length(ename)=7;
13–

select * from emp where instr(ename,‘Z’)=0;
14–

select substr(ename,0,3) from emp
15–

select replace(ename,‘Z’,‘z’) from emp
16–

select ename,add_months(hiredate,12) from emp
17–

select * from emp e,dept d where e.deptno=d.deptno order by e.ename
18.1–

select ename,trunc(months_between(sysdate,hiredate)/12,0) 服務(wù)年限 from emp order by 服務(wù)年限 desc
18.2–

select ename,hiredate from emp order by hiredate
19–

select ename,job,sal from emp order by job desc,sal asc
20.1–

select ename,extract(year from hiredate) 年份,extract(month from hiredate) 月份 from emp order by 年份,月份
20.2–

select ename,to_char(hiredate,‘yyyy’) 年份,to_char(hiredate,‘mm’) 月份 from emp order by hiredate
21–

select ename,sal/30,trunc(sal/30,1),floor(sal/30),ceil(sal/30) from emp
22.1–

select * from emp where extract(month from hiredate)=1
22.2–

select * from emp where to_char(hiredate,‘mm’)=‘01’
23–

select ename,floor(sysdate-hiredate) 入職天數(shù) from emp order by 入職天數(shù) desc
24.1–

select ename from emp where ename like ‘%i%’;
24.2–

select ename from emp where instr(ename,‘i’)>0
25–

select ename,floor(months_between(sysdate,hiredate)/12) 服務(wù)總年數(shù),

floor(months_between(sysdate,hiredate)) 服務(wù)總月數(shù),

floor(sysdate-hiredate) 服務(wù)總天數(shù) from emp order by 服務(wù)總天數(shù);

總結(jié)

以上是生活随笔為你收集整理的SQL语法练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。