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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2023/12/10 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初學者,推薦大家使用----emp(雇員信息表)和dept(部門表),這兩張表的字段及數據內容都設計的比較經典。來吧!先跟著我的操作,導入我提供的數據庫腳本。

導入兩張表sql腳本到數據庫create database testdb;

use testdb;

drop table if exists `emp`;

create table `emp` (

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

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

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

`mgr` int(4) default null comment '上級領導編號',

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

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

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

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

) 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 '部門編號',

`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');

-- 投影操作

指定查詢結果中能顯示哪些列

-- 選擇操作

指定哪些行出現在結果中

-- 排序操作

指定查詢的結果以什么樣的順序顯示

--查詢語句 select

*是統配符,代表所有的字段。

--查詢所有雇員信息

select * from emp;

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

select sal,ename,job from emp;

--表前綴

select emp.ename from emp;

--列別名 -- 別名不影響表的結構

select ename as 雇員姓名 from emp;

--表別名

select e.ename from emp as e;

--計算列

select sal+100 from emp;

--排除重復數據 distinct -- 重要

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

select distinct job from emp;

--返回限定行數 limit --分頁

select * from 表名 limit 開始序號,返回的行數;

select * from emp limit 0,5;

從emp表中查詢第3頁的數據,每頁顯示10條。

第幾頁 每頁顯示多少條

頁數: pageSize = 2

條數: indexSize = 5

第一個參數:

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語句,先找輸出什么字段內容,再找條件是什么。

條件運算符

--查詢獎金大于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;

--執行范圍 between and []

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

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

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

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

in

not in

--查詢雇員編號為7369、7698、7788的雇員信息

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

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

--查詢雇員編號除了7369、7698、7788以外的雇員信息

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

--模糊查詢 like

通配符

“_”通配符 ? 表示任何單個字符

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

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

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

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

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

--查詢雇員姓名是以s結尾的雇員信息

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

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

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

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

--當模糊查詢中出現通配符_和%時,需用反斜杠\\轉義

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

--處理空值數據 is null 、 is not null

--查詢沒有獎金的雇員信息

select * from emp where comm != null; --錯誤的

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

--查詢有獎金的雇員信息

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

--排序操作 order by

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

select * from emp order by sal asc; --默認可以不寫asc

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

select * from emp order by sal desc;

--查詢雇員信息,工資從小到大排序,獎金從大到小。 ---順序確定優先級

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

SQL操作順序

第一步:執行FROM

第二步:WHERE條件過濾

第三步:執行SELECT投影列

第四步:執行ORDER BY 排序

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

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

聚合函數的分類

在查詢分析的SQL中我們經常會對一些數據進行統計查詢。

比如統計某個班有多少個學生、全班總分多少、平均分多少、最高分是多少、最低分是多少。要實現這些數據的統計就需要要用到SQL提供的聚合函數。

COUNT:統計行數量

SUM:獲取單個列的合計值

AVG:計算某個列的平均值

MAX:計算列的最大值

MIN:計算列的最小值

--count:統計行數量

--統計emp表中有多少個員工

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

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

--共計emp表中工作為salesman的人數

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

--統計有獎金的人數

select count(comm) from emp;

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

--統計emp表中有多少種工作

select count(distinct job) from emp; --去掉重復,再統計。 -- 重點

--SUM:獲取單個列的合計值

--統計所有員工的工資總和

select sum(sal) from emp;

--AVG:計算某個列的平均值

--統計所有員工平均工資

select avg(sal) from emp;

--MAX:計算列的最大值

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

select ename,max(sal) from emp;

--分組操作 group by

--查詢emp中有多少個工作崗位

select * from emp group by job;

--查詢每個崗位中工資大于1500的員工人數

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。