美文网首页
MySQL基础语法

MySQL基础语法

作者: ux2017 | 来源:发表于2017-09-17 17:08 被阅读58次

查询

SELECT city FROM dataanalyst
WHERE city = '上海' and (positionname = '数据分析师' OR positionname = '数据产品经理')

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

SELECT * FROM dataanalyst
WHERE companyId BETWEEN 10000 and 20000
#使用between和and时,包括边界值

SELECT * FROM dataanalyst
WHERE positionName LIKE '%数据分析%'
#%是通配符

SELECT * FROM dataanalyst
WHERE city NOT IN ('上海')
#上面的几种查询语句都可以加上not

分组

GROUP BY city

SELECT city,count(1) FROM dataanalyst
group by city
#count(1)表示对第一列计数

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等函数都可以在此使用

筛选

SELECT city,
            COUNT(DISTINCT positionid),
            COUNT(DISTINCT IF(industryfield LIKE '%电子商务%',positionid,NULL))
FROM dataanalyst
GROUP BY city
#NULL会被当成空值,不会被计数

#对数据进行筛选1
SELECT city,count(DISTINCT positionid) FROM dataanalyst
GROUP BY city 
HAVING COUNT(DISTINCT positionId)>=500

#对数据进行筛选2
SELECT city,count(DISTINCT positionid) AS counts FROM dataanalyst
GROUP BY city 
HAVING counts>=500
#having是对查询后的结果进行筛选,所取变量是查询后的表中的;
#而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的话是倒序

时间

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都可以,减的话改为负数
SELECT DATEDIFF(DATE(NOW()),DATE_ADD(DATE(NOW()),interval 2 DAY))

数据清洗

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 '%以上%'

表相关操作

#创建表
CREATE TABLE newtable(
 id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 companyid INT(11) NOT NULL DEFAULT 0,
 companyname VARCHAR(600) NOT NULL DEFAULT '')
#查看表相关字段信息
-SHOW FULL COLUMNS from newtable
#在表中插入新值
INSERT INTO newtable VALUES(1,8581,'纽海信息技术(上海)有限公司')
#或者使用旧表直接创建新的表
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

相关文章

  • 基础查询

    1. 数据查询语句的基础语法 1.1 基础语法 在MySQL中 select 表示查询,select可以单独成句,...

  • 数据查询语句的基础语法

    1. 数据查询语句的基础语法 1.1 基础语法 在MySQL中 select 表示查询,select可以单独成句,...

  • 第3章 基础查询语法

    1. 数据查询语句的基础语法 1.1 基础语法 在MySQL中 select 表示查询,select可以单独成句,...

  • MySQL-语法-MySQL基础语法

    1.SQL语句分类 1.DDL(Data Definition Language):数据定义语言,用来定义数据库对...

  • 蔓蔓的学习之路😂

    前端:java语法基础,python语法基础,爬虫,各种大数据技术; 数据库:mysql,sql等等各种数据库 数...

  • Mysql基础语法

    1. 登陆mysql 登陆mysql : 退出mysql: 2. SQL创建数据库 显示数据库 : 注意: inf...

  • mysql 基础语法

    (1)-uroot -p 或者mysql -uroot :连接数据库 (2) mysql select versi...

  • MySQL基础语法

    查询 分组 筛选 嵌套 排序 时间 数据清洗 表相关操作 JOIN

  • MySQL语法基础

    SQL: MySQL数据类型 DDL: DML: 创建数据库: 创建表: 例子:创建一个学生表:students(...

  • mySql基础语法

    、连接MYSQL。格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开...

网友评论

      本文标题:MySQL基础语法

      本文链接:https://www.haomeiwen.com/subject/vhnksxtx.html