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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL 简单查询记录(二)

發(fā)布時(shí)間:2023/12/14 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 简单查询记录(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#查詢工資大于12000的員工 SELECT * FROM `employees` WHERE salary > 12000 #查詢部門編號(hào)不為90的員工姓名和部門 SELECT CONCAT(`first_name`,`last_name`) AS 姓名 ,`department_id` FROM `employees` WHERE `department_id` <> 90 #查詢工資在10000到20000的員工名、工資及獎(jiǎng)金 SELECT `last_name`,`salary`,`commission_pct` AS 獎(jiǎng)金 FROM employees WHERE salary >= 10000 AND salary <= 20000; SELECT `last_name`,`salary`,`commission_pct` AS 獎(jiǎng)金 FROM employees WHERE salary BETWEEN 10000 AND 20000; #查詢部門編號(hào)不是在90到110之間的,或者工資高于15000的員工信息 SELECT * FROM employees WHERE department_id < 90 OR department_id > 110 OR salary > 15000 SELECT * FROM employees WHERE NOT (department_id >= 90 AND department_id <= 110) OR salary > 15000 SELECT * FROM employees WHERE department_id NOT BETWEEN 90 AND 110 OR salary > 15000 #查詢員工名中包含字符a的員工信息 SELECT * FROM employees WHERE `last_name` LIKE '%a%' #查詢員工名中第三個(gè)字符為n,第五個(gè)字符為l的員工名和工資 SELECT `last_name`,`salary` FROM employees WHERE `last_name` LIKE "__n_l%"; #查詢員工名中第二個(gè)字符為_的員工名 通過\轉(zhuǎn)義或者使用 ESCAPE 自定義轉(zhuǎn)義字符 SELECT `last_name` FROM employees WHERE `last_name` LIKE "_\_%"; SELECT `last_name` FROM employees WHERE `last_name` LIKE "_!_%" ESCAPE "!"; #查詢員工編號(hào)在100到120之間的員工信息 SELECT * FROM `employees` WHERE `employee_id` BETWEEN 100 AND 120 #查詢員工的工種編號(hào)是 IT_PROG、AD_VP、AD_PRES中的一個(gè)員工名和工種編號(hào) SELECT * FROM `employees` WHERE `job_id` IN ('IT_PROG','AD_VP','AD_PRES'); #查詢沒有獎(jiǎng)金的員工名和獎(jiǎng)金率 SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct` IS NULL SELECT `last_name`,`commission_pct` FROM `employees` WHERE `commission_pct` <=> NULL #查詢工資等于12000的員工 使用安全等于 SELECT * FROM `employees` WHERE salary <=> 12000 #查詢員工號(hào)為176的員工姓名和部門號(hào)和年薪 SELECT employee_id,last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) FROM employees WHERE employee_id = 176 #查詢沒有獎(jiǎng)金,且工資小于18000的salary,last_name SELECT salary,last_name FROM employees WHERE commission_pct IS NULL AND salary < 18000 #查詢employees表中,job_id不為'IT'或者工資為12000的員工信息 SELECT * FROM employees WHERE job_id <> 'IT' OR salary = 12000 #查詢departments中涉及到哪些位置編號(hào) SELECT DISTINCT location_id FROM departments; #查詢員工的姓名和部門號(hào)和年薪,按年薪降序 按名字升序 SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDER BY 年薪 DESC , last_name ASC #選擇工資不在8000到17000的員工的姓名和工資,按工資降序 SELECT last_name,salary FROM employees WHERE salary<8000 OR salary >17000 ORDER BY salary DESC SELECT last_name,salary FROM employees WHERE salary NOT BETWEEN 8000 AND 17000 ORDER BY salary DESC #查詢郵箱中包含e的員工信息,并先按郵箱的字節(jié)數(shù)降序,再按部門號(hào)升序 SELECT * FROM employees WHERE email LIKE "%e%" ORDER BY LENGTH(email) DESC,department_id ASC #常用函數(shù) 單行函數(shù) #1、length() 獲取參數(shù)值的字節(jié)個(gè)數(shù) SELECT LENGTH('joih'); #4 SELECT LENGTH('測試'); #6 #2、concat() 拼接字符串 SELECT CONCAT(last_name,"_",first_name) FROM employees; #3、upper、大寫 lower小寫 SELECT UPPER('joih'); #示例:將姓變大寫、名變小寫、然后拼接 SELECT CONCAT(UPPER(last_name),LOWER(first_name)) AS 姓名 FROM employees; #4、substr 截取字符 索引從1開始 #截取從指定索引處后面所有字符 SELECT SUBSTR("李莫愁愛上了陸展元",7) AS out_put #陸展元 #截取從指定索引處指定字符長度的字符 SELECT SUBSTR("李莫愁愛上了陸展元",1,3) AS out_put #李莫愁 #案例:姓名中首字符大寫,其他字符小寫然后用_拼接 顯示出來 SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),"_",LOWER(SUBSTR(last_name,2))) AS out_put FROM employees #5、instr 第一次出現(xiàn)索引的位置 不存在返回0 SELECT INSTR("楊不悔愛上了殷六俠",'殷六俠'); #6、trim 去掉前后空格 SELECT TRIM(" 張翠山 ") AS out_put SELECT TRIM('a' FROM "a張翠山a") AS out_put #7、lpad 左填充 rpad 右填充 SELECT LPAD("殷素素",2,"*") AS out_put SELECT RPAD("殷素素",12,"ab") AS out_put #8、replace 替換 SELECT REPLACE("張無忌愛上了周芷若","周芷若","趙敏") AS out_put; #常用函數(shù) 數(shù)學(xué)函數(shù) #1、round 四舍五入 SELECT ROUND(1.5) #2 SELECT ROUND(1.5,2) #1.50 保留兩位小數(shù) #2、ceil 向上取整 返回>=該參數(shù)的最小整數(shù) SELECT CEIL(4.01) #5 SELECT CEIL(-4.01) #-4 #3、floor 向下取整 返回<=該參數(shù)的最大整數(shù) SELECT FLOOR(4.01) #4 SELECT FLOOR(-4.01) #-5 #4、truncate 截?cái)?SELECT TRUNCATE(1.6991,1); #1.6 #5、mod 取余 mod(a,b) ==> a-a/b*b SELECT MOD(10,3) SELECT 10%3 #常用函數(shù) 日期函數(shù) #1、now 返回當(dāng)前系統(tǒng)日期+時(shí)間 SELECT NOW(); #2、curdate 返回當(dāng)前系統(tǒng)日期不包含時(shí)間 SELECT CURDATE(); #3、curtime 返回當(dāng)前系統(tǒng)時(shí)間不包含日期 SELECT CURTIME(); #4、可以獲取指定的部分,年月日時(shí)分秒 SELECT YEAR(NOW()) #2018 SELECT YEAR("1993-1-1") #1993 SELECT MONTH(NOW()) #6 SELECT MONTHNAME(NOW()) #June SELECT DAY(NOW()) SELECT HOUR(NOW()) SELECT MINUTE(NOW()) SELECT SECOND(NOW()) #5、str_to_date 將字符通過指定的格式轉(zhuǎn)換成日期 SELECT STR_TO_DATE("6/23/2018","%m/%d/%Y"); #2018-06-23 SELECT * FROM employees WHERE hiredate = '1992-4-3' SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992',"%m-%d %Y"); #6、date_format 將日期轉(zhuǎn)換成字符串 SELECT DATE_FORMAT("1992-01-04","%Y年%m月%d日"); #案例 查詢有獎(jiǎng)金的員工名和入職日期(xx年/xx月 xx日) SELECT last_name,DATE_FORMAT(hiredate,'%Y年/%m月/%d日') FROM employees WHERE commission_pct IS NOT NULL #7、datediff 返回兩個(gè)日期相差的天數(shù) SELECT DATEDIFF("2018-6-23","2018-6-21") #2

#常用函數(shù) 流程控制 #1、if()函數(shù) SELECT IF(2>1,"大","小"); #大 SELECT last_name,commission_pct,IF(commission_pct IS NULL,"無獎(jiǎng)金","有獎(jiǎng)金") AS 備注 FROM employees; #2、case 情況一 #案例:查詢員工的工資,要求 #部門號(hào)=30,顯示的工資為1.1 #部門號(hào)=40,顯示的工資為1.2 #部門號(hào)=50,顯示的工資為1.3 #其他部門顯示原工資 SELECT salary 原始工資,department_id, CASE department_id WHEN 30 THEN salary*1.1 WHEN 40 THEN salary*1.2 WHEN 50 THEN salary*1.3 ELSE salary END AS 新工資 FROM employees #case 情況二 #查詢員工的工資情況 #如果工資大于20000,顯示A級(jí)別 #如果工資大于15000,顯示B級(jí)別 #如果工資大于10000,顯示C級(jí)別 #否則顯示D級(jí)別 SELECT salary 工資, CASE WHEN salary>20000 THEN 'A' WHEN salary>15000 THEN 'B' WHEN salary>10000 THEN 'C' ELSE 'D' END AS 工資級(jí)別 FROM employees #單行函數(shù)測試 #1、顯示系統(tǒng)時(shí)間(注:日期+時(shí)間) SELECT NOW(); #2、查詢員工號(hào)、姓名、工資、以及工資提高百分之20%后的結(jié)果(new salary) SELECT employee_id,last_name,salary,salary*1.2 AS 'new salary' FROM employees #3、將員工的姓名按首字母排序,并寫出姓名的長度 SELECT SUBSTR(last_name,1,1) AS 首字符,LENGTH(last_name) AS 長度 FROM employees ORDER BY 首字符 ASC #4、拼接 SELECT CONCAT(last_name," earns ",salary,' monthly but wants ',salary*3) AS "Dream Salary" FROM employees WHERE salary=24000; #5、使用case-when,按照下面的條件 #job gread #AD_PRES A #ST_MAN B #IT_PROG C #SA_REP D #ST_CLERK E SELECT last_name,job_id AS job,CASE job_id WHEN 'AD_PRES' THEN 'A' WHEN 'ST_MAN' THEN 'B' WHEN 'IT_PROG' THEN 'C' WHEN 'SA_REP ' THEN 'D' WHEN 'ST_CLERK' THEN 'E' END AS gread FROM employees WHERE job_id = 'AD_PRES'; #常用函數(shù) 分組函數(shù) SELECT SUM(salary) AS 總和, MAX(salary) AS 最大工資, MIN(salary) AS 最小工資, ROUND(AVG(salary),2) AS 平均工資, COUNT(salary) AS 個(gè)數(shù) FROM employees SELECT SUM(DISTINCT salary),SUM(salary) FROM employees; SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees; #查詢員工工資的最大值、最小值、平均值、總和 SELECT MAX(salary),MIN(salary),ROUND(AVG(salary),2),SUM(salary) FROM employees #查詢員工表中的最大入職日期和最小的入職日期相差的天數(shù) SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) AS DIFFRENCE FROM employees; #查詢部門編號(hào)為90的員工個(gè)數(shù) SELECT COUNT(*) AS 個(gè)數(shù) FROM employees WHERE department_id = '90' #查詢每個(gè)部門的平均工資 SELECT AVG(salary),department_id FROM employees GROUP BY department_id; #查詢每個(gè)工種的最高工資 SELECT MAX(salary),job_id AS 工種 FROM employees GROUP BY job_id; #查詢每個(gè)位置上的部門個(gè)數(shù) SELECT COUNT(*),location_id FROM departments GROUP BY location_id; #查詢郵箱中包含a字符的,每個(gè)部門的平均工資 SELECT AVG(salary),department_id FROM employees WHERE email LIKE "%a%" GROUP BY department_id #查詢有獎(jiǎng)金的每個(gè)領(lǐng)導(dǎo)手下員工的最高工資 SELECT MAX(salary),manager_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY manager_id; #查詢哪個(gè)部門的員工個(gè)數(shù)大于>2 having添加分組后的篩選條件 SELECT department_id,COUNT(*) FROM employees GROUP BY department_id HAVING COUNT(*) > 2; #查詢每個(gè)工種有獎(jiǎng)金的員工的最高工資>12000的工種編號(hào)和最高工資 SELECT MAX(salary),job_id FROM employees WHERE commission_pct IS NOT NULL GROUP BY job_id HAVING MAX(salary)>12000 #查詢領(lǐng)導(dǎo)編號(hào)>102的每個(gè)領(lǐng)導(dǎo)手下的最低工資>5000的領(lǐng)導(dǎo)編號(hào)是哪個(gè),及最低工資 SELECT MIN(salary),manager_id FROM employees WHERE manager_id > 102 GROUP BY manager_id HAVING MIN(salary)>5000 #按員工姓名的長度分組,查詢每一組的個(gè)數(shù),篩選員工個(gè)數(shù)>5的有哪些 SELECT COUNT(*),LENGTH(last_name) FROM employees GROUP BY LENGTH(last_name) HAVING COUNT(*) > 5 #查詢每個(gè)部門每個(gè)工種的員工的平均工資 部門不為空 平均工資大于10000 降序顯示 SELECT AVG(salary),department_id,job_id FROM employees WHERE department_id IS NOT NULL GROUP BY department_id,job_id HAVING AVG(salary)>10000 ORDER BY AVG(salary) DESC #查詢各個(gè)job_id的員工工資最大值,最小值,平均值,總和 并按job_id 升序 SELECT MAX(salary),MIN(salary),AVG(salary),SUM(salary),job_id FROM employees GROUP BY job_id ORDER BY job_id ASC #查詢員工最高工資和最低工資的查詢 SELECT MAX(salary)-MIN(salary) difference FROM employees; #查詢各個(gè)管理者手下員工的最低工資,其中最低工資不低于6000,沒有管理者的員工不計(jì)算在內(nèi) SELECT MIN(salary),manager_id FROM employees WHERE manager_id IS NOT NULL GROUP BY manager_id HAVING MIN(salary) >= 6000 #查詢所有部門的編號(hào),員工的數(shù)量和工資的平均值,并按平均工資降序 SELECT department_id,COUNT(*),AVG(salary) FROM employees GROUP BY department_id ORDER BY AVG(salary) DESC #選擇具有各個(gè)job_id的員工人數(shù) SELECT COUNT(*),job_id FROM employees GROUP BY job_id #一、sql92標(biāo)準(zhǔn) 連接查詢(內(nèi)連接) #1.等值連接 #案例1:查詢女神名和對(duì)應(yīng)的男神名 SELECT NAME,boyName FROM beauty,boys WHERE beauty.`boyfriend_id` = boys.`id`; #案例2:查詢員工名對(duì)應(yīng)的部門名 SELECT last_name,department_name FROM employees,departments WHERE employees.`department_id` = departments.`department_id`; #查詢員工名,工種號(hào),工種名 SELECT e.last_name,e.job_id,j.job_title FROM employees AS e,jobs AS j WHERE e.`job_id` = j.`job_id`; #查詢有獎(jiǎng)金的員工名、部門名 SELECT last_name,department_name,commission_pct FROM employees e,departments d WHERE e.`department_id`=d.`department_id` AND e.`commission_pct` IS NOT NULL #查詢城市名中第二個(gè)字符為o的部門名和城市名 SELECT d.`department_name`,l.city FROM departments d,locations l WHERE d.`location_id` = l.location_id AND l.city LIKE "_o%" #查詢每個(gè)城市的部門個(gè)數(shù) SELECT COUNT(*),l.city FROM departments d,locations l WHERE d.`location_id`=l.`location_id` GROUP BY l.city; #查詢有獎(jiǎng)金的每個(gè)部門名和部門領(lǐng)導(dǎo)編號(hào)和該部門的最低工資 SELECT d.department_name,d.manager_id,MIN(e.salary) FROM employees e,departments d WHERE e.`department_id` = d.`department_id` AND e.`commission_pct` IS NOT NULL GROUP BY d.`department_name`,d.manager_id; #查詢每個(gè)工種的工種名和員工的個(gè)數(shù),并按員工的個(gè)數(shù)降序 SELECT job_title,COUNT(*) AS 人數(shù) FROM employees e,jobs j WHERE e.`job_id`=j.`job_id` GROUP BY job_title ORDER BY 人數(shù) DESC; #查詢員工名,部門名和所在的城市 SELECT e.last_name,d.department_name,l.city FROM employees e,departments d,locations l WHERE e.`department_id` = d.`department_id` AND d.`location_id` = l.`location_id` AND l.`city` LIKE 's%' ORDER BY d.`department_name` DESC #2.非等值連接 #查詢員工的工資和工資級(jí)別 SELECT e.salary,j.grade_level FROM employees e,job_grades j WHERE e.`salary` BETWEEN j.lowest_sal AND j.highest_sal; #3.自連接 查詢員工名和上級(jí)的名稱 SELECT e.employee_id,e.last_name,m.employee_id,m.last_name FROM employees e,employees m WHERE m.employee_id = e.manager_id #顯示員工表的最大工資,工資平均值 SELECT MAX(salary),AVG(salary) FROM employees #查詢員工表中的employee_id,job_id,last_name,按department_id降序,salary升序 SELECT employee_id,job_id,last_name,department_id FROM employees ORDER BY department_id DESC ,salary ASC #查詢員工表的job_id中包含a和e的,并且a在e前面 SELECT job_id FROM employees WHERE job_id LIKE "%a%e%" #顯示當(dāng)前日期,以及去掉前后空格,截取字符串函數(shù) SELECT TRIM('字符' FROM NOW()) #顯示所有的員工姓名,部門號(hào),和部門名稱 SELECT e.`last_name`,e.`department_id`,d.department_name FROM employees e,departments d WHERE e.`department_id` = d.department_id; #查詢90號(hào)部門員工的job_id和90號(hào)部門的location_id SELECT job_id,location_id FROM employees e,departments d WHERE e.`department_id` = d.`department_id` AND e.`department_id` = 90 ; #查詢所有有獎(jiǎng)金的員工的last_name,department_name,location_id,city SELECT e.last_name,d.department_name,d.location_id,l.city FROM employees e,departments d,locations l WHERE e.`department_id` = d.`department_id` AND d.`location_id` = l.`location_id` AND e.`commission_pct` IS NOT NULL #查詢每個(gè)工種、每個(gè)部門的部門名、工種名和最低工資 SELECT e.job_id,d.`department_name`,j.job_title,MIN(e.`salary`) FROM employees e,departments d,jobs j WHERE e.`department_id` = d.`department_id` AND e.`job_id` = j.job_id GROUP BY e.job_id,d.`department_name` #查詢每個(gè)國家下的部門個(gè)數(shù)大于2的國家編號(hào) SELECT l.`country_id`,COUNT(*) FROM departments d,locations l WHERE d.`location_id` = l.`location_id` GROUP BY country_id HAVING COUNT(*) > 2 #選擇指定員工的姓名,員工號(hào),以及他的管理者的姓名和員工號(hào)。 SELECT e.`last_name`,e.`employee_id`,m.last_name,m.employee_id FROM employees e,employees m WHERE e.`employee_id` = m.`manager_id`

總結(jié)

以上是生活随笔為你收集整理的MySQL 简单查询记录(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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