MySQL基礎(chǔ)語法

查詢

SELECT city FROM dataanalyst
WHERE city = '上海' and (positionname = '數(shù)據(jù)分析師' OR positionname = '數(shù)據(jù)產(chǎn)品經(jīng)理')

SELECT * FROM dataanalyst
WHERE city IN ('上海','北京','廣州','深圳')

SELECT * FROM dataanalyst
WHERE companyId BETWEEN 10000 and 20000
#使用between和and時(shí),包括邊界值

SELECT * FROM dataanalyst
WHERE positionName LIKE '%數(shù)據(jù)分析%'
#%是通配符

SELECT * FROM dataanalyst
WHERE city NOT IN ('上海')
#上面的幾種查詢語句都可以加上not

分組

GROUP BY city

SELECT city,count(1) FROM dataanalyst
group by city
#count(1)表示對(duì)第一列計(jì)數(shù)

select city,count(DISTINCT positionId) FROM dataanalyst
group by city
#DISTINCT去重

SELECT city,AVG(DISTINCT companyId) from dataanalyst
GROUP BY city
#avg、min、max、sum等函數(shù)都可以在此使用

篩選

SELECT city,
            COUNT(DISTINCT positionid),
            COUNT(DISTINCT IF(industryfield LIKE '%電子商務(wù)%',positionid,NULL))
FROM dataanalyst
GROUP BY city
#NULL會(huì)被當(dāng)成空值,不會(huì)被計(jì)數(shù)

#對(duì)數(shù)據(jù)進(jìn)行篩選1
SELECT city,count(DISTINCT positionid) FROM dataanalyst
GROUP BY city 
HAVING COUNT(DISTINCT positionId)>=500

#對(duì)數(shù)據(jù)進(jìn)行篩選2
SELECT city,count(DISTINCT positionid) AS counts FROM dataanalyst
GROUP BY city 
HAVING counts>=500
#having是對(duì)查詢后的結(jié)果進(jìn)行篩選,所取變量是查詢后的表中的;
#而where是查詢的條件,所取變量是原表中的

嵌套

SELECT * FROM (
    SELECT city,count(DISTINCT positionid) as counts from dataanalyst
    GROUP BY city) as t1
WHERE counts >= 500
#t1是指嵌套的查詢得出的表

排序

GROUP BY city
ORDER BY counts #DESC
#加上desc的話是倒序

時(shí)間

SELECT DATE(NOW())  #只返回日期
SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT QUARTER(NOW())
select DAYOFMONTH(NOW())
SELECT DAYOFYEAR(NOW())
SELECT WEEKOFYEAR(NOW())
#日期加減
SELECT DATE_ADD(DATE(NOW()),interval 1 DAY)
#用day,week,year都可以,減的話改為負(fù)數(shù)
SELECT DATEDIFF(DATE(NOW()),DATE_ADD(DATE(NOW()),interval 2 DAY))

數(shù)據(jù)清洗

SELECT LOCATE("k",salary),salary from dataanalyst
SELECT LEFT(salary, LOCATE("k",salary)-1),salary FROM dataanalyst
SELECT LEFT(salary,LOCATE("k",salary)-1) as bottomsalary,
    SUBSTR(salary,LOCATE("-",salary)+1,LENGTH(salary)-LOCATE("-",salary)-1) as topsalary,
    salary FROM dataanalyst
WHERE salary NOT LIKE '%以上%'

表相關(guān)操作

#創(chuàng)建表
CREATE TABLE newtable(
 id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 companyid INT(11) NOT NULL DEFAULT 0,
 companyname VARCHAR(600) NOT NULL DEFAULT '')
#查看表相關(guān)字段信息
-SHOW FULL COLUMNS from newtable
#在表中插入新值
INSERT INTO newtable VALUES(1,8581,'紐海信息技術(shù)(上海)有限公司')
#或者使用舊表直接創(chuàng)建新的表
CREATE table newtable(id INT) SELECT companyId, companyFullName FROM dataanalyst
limit 0,100

JOIN

JOIN dataanalyst as d
on d.companyId=n.companyid AND d.companyFullName=n.companyfullname
#其他join的方式:
#A left join B,B right join A
#A left join B where B.key is null
#A inner join B 
#A full outer join B
#A full outer join B where A.key is null or B.key is null
select * from newtable
LEFT JOIN dataanalyst 
WHERE dataanalyst.key is NULL
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容