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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

数据库

MySQL查询select实例 【笔记】

發(fā)布時(shí)間:2023/12/20 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL查询select实例 【笔记】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

use mydb;
select * from EMP;

select * from DEPT;

select DISTINCT JOB from EMP; ?-- distinct ? 去除重復(fù)項(xiàng)

select MGR from EMP;

select MGR as 主管編號(hào) from EMP; ?-- 輔助查詢,每列信息 ? 起別名 as

select EMPNO as 員工編號(hào),JOB as 職位,DEPNO as 部門編號(hào) from EMP;

select EMPNO 員工編號(hào),JOB ?職位,DEPNO 部門編號(hào) from EMP; ?-- 也可以省略as 用空格替換as

select ename,'2019-08-28' as today from EMP; ?-- 構(gòu)建一個(gè)新的列


-- 條件查詢 ?where

select * from EMP;

-- 關(guān)系 ?> ?< ? >= ?<= ? !=(<>) ? = ?between...and

select * from EMP where DEPNO=20;

select * from EMP where DEPNO<>20;


-- 查詢薪資大于1000的員工信息

select * from EMP where sal>2000?

-- or ?and ? not

select * from EMP where sal>3000 and sal<=5000

update EMP set sal=3500 where ?EMPNO=7566

select * from EMP where sal between 3000 and 5000 ? -- sal>=3000 and sal<=5000


-- 查詢薪資大于等于3500或者職位是MANAGER
select * from EMP where sal>=3500 or job='MANAGER'

-- 查詢部門是30并且薪資在2000~3500之間的員工
select * from EMP where DEPNO=30 and sal between 2000 and 3500

-- 查詢30號(hào)部門的所有職位有哪些
select distinct job from EMP where depno =30

-- 查詢?nèi)肼殨r(shí)間是1981-09-30之后的所有員工
select *from EMP where HIREDATE>'1981-09-30'

-- 查詢沒(méi)有津貼并且基本工資超出3000元的員工姓名和職位
select ename,job from EMP where comm is NULL and sal>3000

-- 查詢7698管理的所有員工,,,,
select * from EMP where MGR=7698


-- in , not in ,


select * from EMP where ename not in ('FORD','KING','WARD');

-- is null , ? is not null ?

-- 模糊查詢 ? 字符 ?like ? % 任意長(zhǎng)度的字符 ?_ 任意一個(gè)字符


select * from ?EMP where ename like 'J%' or ename like 'A%'

?
select * from EMP where ename like '王_'

-- 查詢名字中出現(xiàn)'明'同學(xué)

select * from EMP where ename like '%明'

-- insert into EMP values(7981,'王小明','CLERK',7698,'1982-02-08',1890,100,30)

-- 排序 order by 字段名 [desc降序 | asc默認(rèn)升序]


-- 查詢部門編號(hào)是30號(hào)部門員工信息并按照薪資sal降序

select * from EMP where DEPNO=30 order by sal desc

-- 查詢?nèi)肼殨r(shí)間是1982之前所有員工,并按照入職日期排序
select * from EMP where hiredate < '1982-01-01' order by hiredate

?

-- 限制 limit offset n


-- 100 ?1-10 ?11-20 ?21-30 ...

-- page ---> 1 ?....&page=3
-- count 每頁(yè)5條 ?---》offset = count * (page-1)

select * from EMP;

select * from EMP limit 0,10;

select * from EMP limit 10,10;

select * from EMP limit 20,10;

select * from EMP limit 30,10;


-- 查詢薪資超出3000并且是30號(hào)部門的員工 按照入職日期降序
select * from EMP where SAL>3000 and DEPNO=30 ORDER BY HIREDATE DESC;?
-- 查詢?nèi)肼毴掌谠?981年以后的所有員工,每12條一頁(yè),獲取第2頁(yè)的數(shù)據(jù)
select * from EMP where HIREDATE>'1981-01-01' LIMIT 13,12
-- 查詢職位是ANALYST或者CLERK的所有數(shù)據(jù),如果數(shù)據(jù)比較多則分頁(yè),每5條一頁(yè)數(shù)據(jù)
select * from EMP where job='analyst' or job='clerk' LIMIT 5

-- 查詢沒(méi)有津貼的員工并按照sal升序排列
select * from EMP WHERE comm is null ?ORDER BY sal?


-- 查詢姓王或者姓張的名字中有‘紅’字的同學(xué)
select * from EMP where ename like '%紅'or ename like '張%'or ename like ('王%');
?


-- 聚合函數(shù): sum ? min ? max ? avg ? count 計(jì)數(shù)

-- 查詢員工人數(shù)
select count(EMPNO) from emp;
select count(empno) from emp where depno=30
select count(empno) as 人數(shù) from emp where ename like '張%'
-- 查詢?nèi)肼毴掌谑?月入職
select count(empno) 人數(shù) from emp where MONTH(hiredate)=8

select MONTH(hiredate) from emp;

-- ?查詢薪資總和 ?sum(字段)?
select sum(sal) ?from emp;

select sum(sal) 總和 from emp where depno in (10,40);?


-- ?最高工資
select max(sal) from emp;

-- ? 最低工資
select min(sal) from emp;

-- ?平均工資
select avg(sal) from emp;


-- 分組查詢: select 字段,聚合函數(shù) ?from ?表 [where 條件] group by 字段 ?having 條件

-- 先從表中選出第一個(gè)字節(jié) ?再讓后邊的通過(guò)group by排序? ? 生成第二個(gè)字節(jié)? ?having 可以限制第二個(gè)字節(jié)

-- 統(tǒng)計(jì)班級(jí)男女生的人數(shù)

-- 統(tǒng)計(jì)各個(gè)部門的員工人數(shù)
? select depno 部門號(hào),count(*) 人數(shù) from emp group by depno;
?? ?-- select job,depno,count(*) 人數(shù) from emp group by depno;

-- 統(tǒng)計(jì)各個(gè)職位的人數(shù)
select job 職位,count(*) 人數(shù) from emp group by job;

-- 求各個(gè)部門的每個(gè)職位的人數(shù)
select depno 部門號(hào),job 職位, count(*) 人數(shù) from emp group by depno,job;

-- 統(tǒng)計(jì)各個(gè)部門的最高薪資
select depno 部門號(hào),max(sal) 最高薪資 from emp group by depno;

-- 查詢?nèi)肼毴掌谠?000年之前的各個(gè)部門的人數(shù)
select depno,count(*) from emp where hiredate<'1982-01-01' group by depno

-- 查詢薪資超出5000元的各個(gè)部門的人數(shù)
select depno,count(*) from emp where sal>5000 group by depno;

-- 查詢部門是20號(hào),各個(gè)職位的平均薪資
select job,avg(sal) from emp where depno=20 group by job;

-- 查詢姓秦的員工在各個(gè)職位中的最低工資
select job,min(sal) from emp where ename like '秦%' group by job;

-- 查詢管理者(職位是manager的)在各個(gè)部門的人數(shù)
select depno,count(*) from emp where job ='MANAGER' group by depno;

-- 查詢管理者(職位是manager的)在各個(gè)部門的人數(shù) 按照人數(shù)排序

select depno,count(*) from emp where job ='MANAGER' group by depno order by count(*)


-- 查詢管理者(職位是manager的)人數(shù)在各個(gè)部門的超出15人

select depno,count(*) from emp where job ='MANAGER' group by depno ?having count(*)>=13

-- ?where 先篩選后分組
-- ?having 先分組后篩選 ? having永遠(yuǎn)跟group by結(jié)合使用的


-- 子查詢: 嵌套查詢

-- 查詢10號(hào)部門比平均薪資低員工信息
-- 10號(hào)部門
-- 平均薪資

select * from emp where depno =10 and sal<(select avg(sal) from emp);?

-- 查詢工作所在地在紐約的所有員工信息
-- select deptno from dept where loc='NEW YORK'

select * from emp where depno in (select deptno from dept where loc='NEW YORK')
-- 查詢職位是salesman的工作所在地和部門名稱
-- select distinct depno from emp where job = 'SALESMAN'

select dname,loc from dept where deptno in (select distinct depno from emp where job = 'SALESMAN')

-- 查詢沒(méi)有拿到津貼的員工所在的部門名稱

select dname from dept where deptno in (select ?distinct ?depno from emp where comm is null or comm=0)

-- 查詢職位是CLERK并且工作所在地在BOSTON和DALLAS的員工信息
select * from emp where job ='CLERK' and depno in (select deptno from dept where loc in ('BOSTON','DALLAS'))

-- 查詢比銷售部門SALES的最低工資低的其他部門員工信息
select * from emp where depno<>(select deptno from dept where dname='SALES') and sal < (select min(sal) from emp where depno =(select deptno from dept where dname='SALES'))

-- 查詢比7900員工入職晚的員工
select * from emp where hiredate> (select hiredate from emp where empno=7900)

-- 顯示工資比’ALLEN’高的所有員工的姓名和工作
select ename,job from emp where sal>(select sal from emp where ename='allen')


-- 顯示與scott從事相同工作的員工的信息
select * from emp where job=(select job from emp where name='scott')

-- 連接查詢

-- 查詢工作所在地在紐約的所有員工信息,顯示員工姓名,職位,工作所在地
select * from emp,dept; ? -- emp 914 ? dept:5 ?---> 4570

-- 等值連接查詢 ?

select * from emp,dept where emp.depno = dept.deptno;

-- 查詢工作所在地在紐約的所有員工信息,顯示員工姓名,職位,工作所在地

select ename,job,loc from emp,dept where loc='NEW YORK' and emp.depno = dept.deptno;

-- 查詢工作是CLERK 并且所在地在NEW YORK的員工姓名
select ename from emp e,dept d where e.job='CLERK' and d.loc='NEW YORK' and e.depno = d.deptno;


-- 內(nèi)連接 表1 inner join 表2 ?on ?連接條件

select e.ename from emp e inner join dept d ?on e.depno = d.deptno where ?e.job='CLERK' and d.loc='NEW YORK'

-- 查詢薪資低于4500的員工信息顯示姓名,工作,部門名稱
select e.ename,e.job,d.dname from emp e join dept d on e.depno = d.deptno where e.sal<4500 ? -- 內(nèi)連接


-- 顯示工資比’ALLEN’高的所有員工的姓名和工作
select e.ename,e.job ?from emp e where sal > (select sal from emp where ename='ALLEN')

-- 顯示與scott從事相同工作的員工的信息
select * from emp where job = (select job from emp where ename='SCOTT')


-- 外連接: ?使用外連接篩選一些不能構(gòu)成等值記錄
-- 左外連接 ? left join ...on ? 左側(cè)表的記錄全部出現(xiàn),右側(cè)表中的記錄是能匹配的全部顯示,不能匹配則全部顯示null
-- 右外連接 ? right ?join ...on

select * from emp left join dept on emp.depno=dept.deptno where emp.empno<7939 and dept.deptno is null;

-- emp ?right join ?dept ? ?dept 主表 ? emp 從表 ? ?主表信息要全部顯示

select * from emp right join dept on emp.depno=dept.deptno where emp.empno<7939 and dept.deptno is null;


-- emp left join ?dept ? ?emp 主表 ? dept 從表
select * from emp left join dept on emp.depno=dept.deptno?

select * from dept right join emp on emp.depno=dept.deptno
?

-- 自連接

-- 查詢所有員工和員工職位和管理者名字
select ename,job,mgr from emp;

select * ?from emp a join emp b on a.empno = b.mgr

select a.ename 主管姓名, b.ename 員工姓名 from emp a join emp b on a.empno = b.mgr


-- 系統(tǒng)函數(shù):


select length('張三')

select CHAR_LENGTH('張三')


select upper(dname) from dept


select lpad('hello',8,'A')

select repeat('good',3)


create table aa(id int primary key,name varchar(16),birthday date)

insert into aa(id,name,birthday) values(1,'小明',curdate())

select curdate()
select curtime()

select * from aa;

select week(birthday) from aa;

update aa set birthday = DATE_ADD(birthday,INTERVAL -1 YEAR)?


select DATEDIFF(birthday,curdate()) from aa;

-- select TIMEDIFF(expr1,expr2)

表格插入的部分?jǐn)?shù)據(jù):

create table EMP
(
EMPNO int PRIMARY KEY,
ENAME VARCHAR(10),
JOB VARCHAR(9),
MGR int,
HIREDATE DATE,
SAL DECIMAL(7,2),
COMM decimal(7,2),
DEPNO int
);
?
CREATE TABLE DEPT(
DEPTNO int,
DNAME VARCHAR(14),
LOC VARCHAR(13)
);
?
?
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
?
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,'1980-12-17',800,null,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10);

create database mydb charset=utf8;

筆記內(nèi)容:mysql: DDL:create drop alter create database 數(shù)據(jù)庫(kù)名 [charset=utf8]; create table 表(字段field 數(shù)據(jù)類型 ,….字段 decimal(7,2),...) 數(shù)據(jù)類型: int bigint smallint tinyint float double decimal char(9) varchar(9) A__________ AB date datetime time year約束: 主鍵 primary key pk 外鍵 foreign key fk 唯一 unique 默認(rèn) default 非空 not nullalter table 表 add 字段 數(shù)據(jù)類型 約束alter table 表 drop 字段 alter table 表 modify 字段 數(shù)據(jù)類型 約束alter table 表 change old字段 new 字段 數(shù)據(jù)類型 約束刪除: drop database 數(shù)據(jù)庫(kù) drop database 表名DML: insert update deleteinsert into student(字段名,….) values(值,。。。)insert into student values()insert into student(字段名,….) values(…..),(…...),(……)update 表名 set 字段 salary = salary+1000 [where 條件]delete from 表名 [where 條件]DQL:query 數(shù)據(jù)查詢語(yǔ)言 select基礎(chǔ)查詢: select 字段名,字段名,.. from 表名 [where 條件]select * from 表名; * 所有字段select 字段 from 表名[where 條件][group by ][having][order by ][limit] - 字符串函數(shù)| 函數(shù) | 功能 || ------------------------ | ------------------------------------------------------------ || char_length(*str*) | 獲取字符串的字符個(gè)數(shù) || length(str) | 獲取字符串的字節(jié)數(shù) || concat(s1, s2, ... , sn) | 連接s1, s2, ..., sn 為一個(gè)字符串 || lower(str) | 將字符串str中所有的字符轉(zhuǎn)換為小寫 || upper(str) | 將字符串str中所有的字符轉(zhuǎn)換為大寫 || left(str, x) | 返回字符串str最左邊的x個(gè)字符 || right(str, y) | 返回字符串str最右邊的y個(gè)字符 || lpad(str, n, pad) | 用字符串pad對(duì)str最左邊進(jìn)行填充, 直到長(zhǎng)度為n個(gè)字符長(zhǎng)度 || rpad(str, n, pad) | 用字符串pad對(duì)str最右邊進(jìn)行填充, 直到長(zhǎng)度為n個(gè)字符長(zhǎng)度 || ltrim(str) | 去掉str中最左邊的空格 || rtrim(str) | 去掉str中最右邊的空格 || trim(str) | 去掉字符串str兩邊的空格 || repeat(str, x) | 返回str中重復(fù)出現(xiàn)x次的結(jié)果 || replace(str, a, b) | 將字符串str中的a更換為b || insert(str, x, y, instr) | 將字符串str從第x位置開(kāi)始, y個(gè)字符長(zhǎng)度的子字符串替換為字符串instr || strcmp(s1, s2) | 比較字符串s1, s2 || substring(str, x, y) | 返回字符串str x位置開(kāi)始y個(gè)字符長(zhǎng)度的字符串 |- 日期函數(shù)| 函數(shù)名 | 功能 || --------------------- | --------------------------------- || curdate() | 得到當(dāng)前日期 || curtime() | 得到當(dāng)前時(shí)間 || now() | 得到當(dāng)前日期和時(shí)間 || year(date) | 得到date的年份 || month(date) | 得到date的月份 || day(date) | 得到date的天 || hour(time) | 得到time的小時(shí) || minute(time) | 得到time 的分鐘 || second(time) | 得到time的秒 || week(date) | 得到date是一年中的第幾周 || date_format(date,fmt) | 按格式化串fmt返回date的日期字符串 |DATE_ADD(date, INTERVAL number unit)date_sub() datediff(date1,date2)select DATE_FORMAT(now(),'%Y- %m-%d %H:%i:%s'); - 數(shù)學(xué)函數(shù)| 函數(shù)名 | 功能 || ---------- | --------------------------- || abs(x) | 求x的絕對(duì)值 || ceil(x) | 向上取整 || floor(x) | 向下取整 || round(x,d) | 四舍五入,d為保留小數(shù)的位數(shù) || pow(x,y) | x的y次冪 || rand() | 0~1之間的隨機(jī)小數(shù) || mod(x,y) | 等同于x % y,求x對(duì)y的模 |

?

總結(jié)

以上是生活随笔為你收集整理的MySQL查询select实例 【笔记】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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