日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定

發(fā)布時(shí)間:2023/12/10 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

初學(xué)者,推薦大家使用----emp(雇員信息表)和dept(部門表),這兩張表的字段及數(shù)據(jù)內(nèi)容都設(shè)計(jì)的比較經(jīng)典。來吧!先跟著我的操作,導(dǎo)入我提供的數(shù)據(jù)庫(kù)腳本。

導(dǎo)入兩張表sql腳本到數(shù)據(jù)庫(kù)create database testdb;

use testdb;

drop table if exists `emp`;

create table `emp` (

`empno` int(4) default null comment '雇員編號(hào)',

`ename` varchar(10) default null comment '雇員名稱',

`job` varchar(9) default null comment '雇員工作',

`mgr` int(4) default null comment '上級(jí)領(lǐng)導(dǎo)編號(hào)',

`hiredate` date default null comment '雇傭日期',

`sal` decimal(7,2) default null comment '雇員工資',

`comm` decimal(7,2) default null comment '雇員獎(jiǎng)金',

`deptno` int(2) default null comment '部門編號(hào)'

) engine=innodb default charset=utf8;

insert into `emp`(`empno`,`ename`,`job`,`mgr`,`hiredate`,`sal`,`comm`,`deptno`) values (7369,'smith','clerk',7902,null,'800.00',null,20),(7499,'allen','salesman',7698,null,'1600.00','300.00',30),(7521,'ward','salesman',7698,null,'1250.00','500.00',30),(7566,'jones','manager',7839,null,'2975.00',null,20),(7654,'martin','salesman',7698,null,'1250.00','1400.00',30),(7698,'blake','manager',7839,null,'2850.00',null,30),(7782,'clark','manager',7839,null,'2450.00',null,10),(7788,'scott','analyst',7566,null,'3000.00',null,20),(7839,'king','president',null,null,'5000.00',null,10),(7844,'turner','salesman',7698,null,'1500.00','0.00',30),(7876,'adams','clerk',7788,null,'1100.00',null,20),(7900,'james','clerk',7698,null,'950.00',null,30),(7902,'ford','analyst',7566,null,'3000.00',null,20),(7934,'miller','clerk',7782,null,'1300.00',null,10);

drop table if exists `dept`;

create table `dept` (

`deptno` int(2) not null comment '部門編號(hào)',

`dname` varchar(14) default null comment '部門名稱',

`loc` varchar(13) default null comment '部門地址'

) engine=innodb default charset=utf8;

insert into `dept`(`deptno`,`dname`,`loc`) values (10,'accounting','new york'),

(20,'research','dallas'),(30,'sales','chicago'),(40,'operations','boston');

-- 投影操作

指定查詢結(jié)果中能顯示哪些列

-- 選擇操作

指定哪些行出現(xiàn)在結(jié)果中

-- 排序操作

指定查詢的結(jié)果以什么樣的順序顯示

--查詢語句 select

*是統(tǒng)配符,代表所有的字段。

--查詢所有雇員信息

select * from emp;

--查詢所有雇員的工資、名字、以及工作,

select sal,ename,job from emp;

--表前綴

select emp.ename from emp;

--列別名 -- 別名不影響表的結(jié)構(gòu)

select ename as 雇員姓名 from emp;

--表別名

select e.ename from emp as e;

--計(jì)算列

select sal+100 from emp;

--排除重復(fù)數(shù)據(jù) distinct -- 重要

--查詢雇員信息表,工種有多少種。

select distinct job from emp;

--返回限定行數(shù) limit --分頁

select * from 表名 limit 開始序號(hào),返回的行數(shù);

select * from emp limit 0,5;

從emp表中查詢第3頁的數(shù)據(jù),每頁顯示10條。

第幾頁 每頁顯示多少條

頁數(shù): pageSize = 2

條數(shù): indexSize = 5

第一個(gè)參數(shù):

int firstParam = (pageSize-1)*indexSize;

select * from emp limit firstParam,indexSize;

--選擇條件 where

--查詢雇員姓名為smith的員工信息

select * from emp where ename = 'smith';

--查詢雇員工作為salesman的員工的姓名和工資

select ename,sal from emp where job = 'salesman';

--查詢雇員工資大于1600的雇員姓名

select ename from emp where sal > 1600;

注意:寫sql語句,先找輸出什么字段內(nèi)容,再找條件是什么。

條件運(yùn)算符

--查詢獎(jiǎng)金大于100的雇員工資

select sal from emp where comm > 100;

--多條件的操作

and 與 并且

or 或

--查詢工作為salesman并且工資大于1600的雇員信息

條件:job = 'salesman' and sal > 1600

輸出信息:雇員信息

select * from emp where job = 'salesman' and sal > 1600;

--執(zhí)行范圍 between and []

--查詢工資大于等于1600小于等于3000的雇員信息

select * from emp where sal >= 1600 and sal <= 3000;

select * from emp where sal between 1600 and 3000; -- 效率高

--定義集合關(guān)系(IN或NOT IN)

in

not in

--查詢雇員編號(hào)為7369、7698、7788的雇員信息

select * from emp where empno = 7369 or empno = 7698 or empno = 7788;

select * from emp where empno in(7369,7698,7788);

--查詢雇員編號(hào)除了7369、7698、7788以外的雇員信息

select * from emp where empno not in(7369,7698,7788);

--模糊查詢 like

通配符

“_”通配符 ? 表示任何單個(gè)字符

“%”通配符 ? 表示包含零個(gè)或多個(gè)任意字符

--查詢雇員姓名是以s開頭的雇員信息

select * from emp where ename like 's%';

--查詢雇員姓名中含s字母的雇員信息

select * from emp where ename like '%s%';

--查詢雇員姓名是以s結(jié)尾的雇員信息

select * from emp where ename like '%s';

--查詢雇員姓名是以s開頭第三字母為o的雇員信息

select * from emp where ename like 's_o%';

--查詢雇員姓名是以%開頭的雇員信息

--當(dāng)模糊查詢中出現(xiàn)通配符_和%時(shí),需用反斜杠\\轉(zhuǎn)義

select * from emp where ename like '\\%%';

--處理空值數(shù)據(jù) is null 、 is not null

--查詢沒有獎(jiǎng)金的雇員信息

select * from emp where comm != null; --錯(cuò)誤的

select * from emp where comm is null; --正確的

--查詢有獎(jiǎng)金的雇員信息

select * from emp where comm is not null and comm !=0;

--排序操作 order by

--查詢雇員信息,工資從小到大排序。 asc 升序

select * from emp order by sal asc; --默認(rèn)可以不寫asc

--查詢雇員信息,工資從大到小排序 desc 降序

select * from emp order by sal desc;

--查詢雇員信息,工資從小到大排序,獎(jiǎng)金從大到小。 ---順序確定優(yōu)先級(jí)

select * from emp order by sal asc,comm desc;

SQL操作順序

第一步:執(zhí)行FROM

第二步:WHERE條件過濾

第三步:執(zhí)行SELECT投影列

第四步:執(zhí)行ORDER BY 排序

--查詢雇員工作為‘salesman’的雇員信息,并且按照工資多少降序排序。

select * from emp where job = 'salesman' order by sal desc;

聚合函數(shù)的分類

在查詢分析的SQL中我們經(jīng)常會(huì)對(duì)一些數(shù)據(jù)進(jìn)行統(tǒng)計(jì)查詢。

比如統(tǒng)計(jì)某個(gè)班有多少個(gè)學(xué)生、全班總分多少、平均分多少、最高分是多少、最低分是多少。要實(shí)現(xiàn)這些數(shù)據(jù)的統(tǒng)計(jì)就需要要用到SQL提供的聚合函數(shù)。

COUNT:統(tǒng)計(jì)行數(shù)量

SUM:獲取單個(gè)列的合計(jì)值

AVG:計(jì)算某個(gè)列的平均值

MAX:計(jì)算列的最大值

MIN:計(jì)算列的最小值

--count:統(tǒng)計(jì)行數(shù)量

--統(tǒng)計(jì)emp表中有多少個(gè)員工

select count(*) from emp; -- * 所有行,包括null都行

select count(empno) from emp; -- 推薦 ,所有行,只是null排除。

--共計(jì)emp表中工作為salesman的人數(shù)

select count(empno) from emp where job = 'salesman';

--統(tǒng)計(jì)有獎(jiǎng)金的人數(shù)

select count(comm) from emp;

select count(all empno) from emp; -- all排除了null,加不加都沒關(guān)系

--統(tǒng)計(jì)emp表中有多少種工作

select count(distinct job) from emp; --去掉重復(fù),再統(tǒng)計(jì)。 -- 重點(diǎn)

--SUM:獲取單個(gè)列的合計(jì)值

--統(tǒng)計(jì)所有員工的工資總和

select sum(sal) from emp;

--AVG:計(jì)算某個(gè)列的平均值

--統(tǒng)計(jì)所有員工平均工資

select avg(sal) from emp;

--MAX:計(jì)算列的最大值

--查詢工資最高的雇員信息

select ename,max(sal) from emp;

--分組操作 group by

--查詢emp中有多少個(gè)工作崗位

select * from emp group by job;

--查詢每個(gè)崗位中工資大于1500的員工人數(shù)

select job,count(empno) from emp where sal > 1500 group by job;

總結(jié)

以上是生活随笔為你收集整理的mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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