一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【竺】數(shù)據(jù)庫筆記1

 飛絮輕 2021-04-30

學習MySQL主要還是學習通用的SQL語句,那么SQL語句包括增刪改查,SQL語句怎么分類呢?

DQL(數(shù)據(jù)查詢語言): 查詢語句,凡是select語句都是DQL。

DML(數(shù)據(jù)操作語言):insert delete update,對表當中的數(shù)據(jù)進行增刪改。

DDL(數(shù)據(jù)定義語言):create drop alter,對表結構的增刪改。

TCL(事務控制語言):commit提交事務,rollback回滾事務。(TCL中的T是Transaction)

DCL(數(shù)據(jù)控制語言): grant授權、revoke撤銷權限等。

一、DDL數(shù)據(jù)定義語言

1、連接數(shù)據(jù)庫

        cmd-》mysql -uroot -p123456

2、創(chuàng)建數(shù)據(jù)庫

        create database bj;

3、查看有哪些數(shù)據(jù)庫

        show databases;

4、使用bj數(shù)據(jù)庫

        use bj;

5、查看當前使用的數(shù)據(jù)庫中有哪些表

        show tables;

6、導入數(shù)據(jù)

        source D:\bj.sql

7、查看表結構

        desc dept;

        desc emp;

        desc salgrede;

8、查看表中的數(shù)據(jù)

        select * from emp;

8、刪除數(shù)據(jù)庫

        drop database bj;

9、命令行外查看數(shù)據(jù)庫版本

        mysql --version

        mysql -P

10、查看當前使用的是哪個數(shù)據(jù)庫

        select database();

11、查看mysql版本

        select version();

12、離開mysql

        exit

二、簡單查詢語句(DQL)

1、簡單的查詢語句,查詢員工的年薪?

        select ename,sal * 12 as '年薪' from emp;

三、條件查詢

1、查詢工資等于5000的員工姓名?

        select ename from emp where sal = 5000;

2、查詢SMITH的工資?

select sal from emp where ename = 'SMITH'; // 字符串使用單引號括起來。

3、找出工資高于3000的員工?

select ename,sal from emp where sal > 3000;

4、找出工資不等于3000的?

select ename,sal from emp where sal <> 3000;

select ename,sal from emp where sal != 3000;

5、找出工資在1100和3000之間的員工,包括1100和3000?

select ename,sal from emp where sal >= 1100 and sal <= 3000;

select ename,sal from emp where sal between 1100 and 3000; // between...and...是閉區(qū)間 [1100 ~ 3000]

6、找出哪些人津貼為NULL?

在數(shù)據(jù)庫當中NULL不是一個值,代表什么也沒有,為空。

                必須使用 is null或者is not null

                select ename,sal,comm from emp where comm is null

7、找出哪些人沒有津貼?

                select ename,sal,comm from emp where comm is null or comm = 0;

8、找出工作崗位是MANAGER和SALESMAN的員工?

select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';

9、and和or聯(lián)合起來用:找出薪資大于1000的并且部門編號是20或30部門的員工。

                select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno = 30); // 正確的。

注意:當運算符的優(yōu)先級不確定的時候加小括號。

10、in等同于or:找出工作崗位是MANAGER和SALESMAN的員工?

                select ename,job from emp where job in('SALESMAN', 'MANAGER');

select ename,job from emp where sal in(800, 5000); // in后面的值不是區(qū)間,是具體的值。

11、not in: 不在這幾個值當中。

select ename,job from emp where sal not in(800, 5000);

12、模糊查詢like ? 找出名字當中含有O的?

(在模糊查詢當中,必須掌握兩個特殊的符號,一個是%,一個是_)

%代表任意多個字符,_代表任意1個字符。

select ename from emp where ename like '%O%';

13、找出名字中第二個字母是A的?

select ename from emp where ename like '_A%';

14、找出名字中有下劃線的?

        select name from t_user where name like '%\_%';  // \轉義

15、找出名字中最后一個字母是T的?

select ename from emp where ename like '%T';

四、排序(升序、降序)

1、 按照工資升序,找出員工名和薪資?

        注意:默認是升序。怎么指定升序或者降序呢?asc表示升序,desc表示降序。

select ename , sal from emp order by sal; // 升序

select ename , sal from emp order by sal asc; // 升序

select ename , sal from emp order by sal desc; // 降序。

2、按照工資的降序排列,當工資相同的時候再按照名字的升序排列。

select ename,sal from emp order by sal desc;

select ename,sal from emp order by sal desc , ename asc;

注意:越靠前的字段越能起到主導作用。只有當前面的字段無法完成排序的時候,才會啟用后面的字段。

3、找出工作崗位是SALESMAN的員工,并且要求按照薪資的降序排列。

        select ename,job,sal from emp where job = 'SALESMAN' order by sal desc;

五、分組函數(shù)

        count 計數(shù)

sum 求和

avg 平均值

max 最大值

min 最小值

記?。核械姆纸M函數(shù)都是對“某一組”數(shù)據(jù)進行操作的。

1、找出工資總和?

select sum(sal) from emp;

2、找出最高工資?

select max(sal) from emp;

3、找出最低工資?

select min(sal) from emp;

4、找出平均工資?

select avg(sal) from emp;

5、找出總人數(shù)?

select count(*) from emp;

select count(ename) from emp;

6、找出工資高于平均工資的員工?

                select ename,sal from emp where sal > (select avg(sal) from emp);

7、計算每個員工的年薪?

select ename,(sal+comm)*12 as yearsal from emp;

重點:所有數(shù)據(jù)庫都是這樣規(guī)定的,只要有NULL參與的運算結果一定是NULL。

使用ifnull函數(shù):

select ename,(sal+ifnull(comm,0))*12 as yearsal from emp;

ifnull() 空處理函數(shù)?

ifnull(可能為NULL的數(shù)據(jù),被當做什么處理) : 屬于單行處理函數(shù)。

select ename,ifnull(comm,0) as comm from emp;

六、group by 和 having

        group by : 按照某個字段或者某些字段進行分組。

having : having是對分組之后的數(shù)據(jù)進行再次過濾。

1、找出每個工作崗位的最高薪資

select max(sal),job from emp group by job;

2、每個工作崗位的平均薪資?

select job,avg(sal) from emp group by job;

3、找出每個部門不同工作崗位的最高薪資。

       select DEPTNO,job,max(sal) from emp group by DEPTNO,job;

4、找出每個部門的最高薪資,要求顯示薪資大于2900的數(shù)據(jù)。

第一步:找出每個部門的最高薪資

select max(sal),deptno from emp group by deptno;

第二步:找出薪資大于2900

select max(sal),deptno from emp group by deptno having max(sal) > 2900; // 這種方式效率低。

select max(sal),deptno from emp where sal > 2900 group by deptno;  // 效率較高,建議能夠使用where過濾的盡量使用where。

5、要求顯示薪資大于2000的數(shù)據(jù)

select deptno,avg(sal) from emp group by deptno having avg(sal) > 2000;

where后面不能使用分組函數(shù):

select deptno,avg(sal) from emp where avg(sal) > 2000 group by deptno;// 錯誤了。

這種情況只能使用having過濾。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产一区精品一区二区三区色| 精品亚洲av一区二区三区| 国产一级精品色特级色国产| 久久精品色妇熟妇丰满人妻91| 在线日韩欧美国产自拍| 神马午夜福利免费视频| 成人精品日韩专区在线观看| 福利在线午夜绝顶三级| 伊人天堂午夜精品草草网| 少妇被粗大进猛进出处故事| 国内尹人香蕉综合在线| 成人精品日韩专区在线观看| 精品国产av一区二区三区不卡蜜| 激情亚洲一区国产精品久久| 欧美午夜一级艳片免费看| 91精品国产品国语在线不卡| 日韩精品成区中文字幕| 国产精品不卡高清在线观看| 亚洲一区二区三区有码| 亚洲精品伦理熟女国产一区二区| 韩国日本欧美国产三级| 国产毛片av一区二区三区小说| 亚洲av秘片一区二区三区| 亚洲中文字幕三区四区| 国产一级性生活录像片| 亚洲性日韩精品一区二区| 五月婷婷综合缴情六月| 国产又猛又黄又粗又爽无遮挡 | 国产又色又粗又黄又爽| 亚洲国产成人一区二区在线观看 | 日本一本在线免费福利| 亚洲熟妇中文字幕五十路| 熟女中文字幕一区二区三区| 国产91麻豆精品成人区| 日韩精品在线观看一区| 99久久精品视频一区二区| 韩国激情野战视频在线播放| 欧美人禽色视频免费看| 亚洲精品福利入口在线| 好骚国产99在线中文| 日本高清不卡一二三区|