mysql日期加一天的公式_MySQL基础知识—简单查询

186ae4a72dc2d8b1c8b49fa9313dacc6.png

一、基本查询语句

虽然SQL语言不区分关键字大小,但是我们这里关键字一律用大写表示,便于我们区分识别,更好的进行学习。

1、从表中查找具体的某列数据语法

SELECT 列表名1,列表名2……
FROM 表名称;

实例1:从名为student的表中查询出姓名和性别这两列的数据

SELECT 姓名,性别
FROM student;

9b7da8e1f963ee24aab32b92f2aef3b3.png

实例2:我不知道student表中有什么数据,列名是什么?那我就查询出全部列,一个*号就搞定了。

SELECT *
FROM student;

29d7580297d7db45c33040232f160e6b.png

实例3:我想把student这个表导出来给客户看,但是客户是外国人,学号,姓名这些列表名他可能看不懂,我想为列表设定别名。

SELECT 姓名 AS name,性别 AS gender
FROM student;

68617edd65260e0965c50ae820fa9e44.png

实例4:student表中好像有两个猴子,我想筛选掉表中的重复数据,那么语法为

SELECT DISTINCT 列名称1,列名称2…… 
FROM 表名称;

SELECT DISTINCT后面接多列时表示,多列的数据要完全一致,该条数据才会被筛选掉。

SELECT DISTINCT 学号,姓名 
FROM student;

4f855282fd5dc60e2dd5113c06cb2bb9.png

这里姓名为猴子的这两条数据不会被筛选为一条数据,因为虽然他们姓名列上都是猴子,但是他们的学号分别为0001和0002,存在不同,应该是两个不同的人。如果你非要筛选猴子,那么可以只对姓名列进行筛选,语法如下:(数据量大的情况下,重名的概率挺大的,单独对姓名进行筛选意义不大)

SELECT DISTINCT 姓名
FROM student;

2fab717f7eff8eab5ad7926a4c4ac2ae.png

二、指定查询条件查询(WHERE)

实例1:我想查询表中姓名叫猴子的数据,看他们的出生日期是多少,查询语句为:

SELECT  姓名,出生日期
FROM student
WHERE 姓名='猴子';

eb39e697bb8f0b7bb00b7885fa96cd7d.png

这里需要注意SQL的书写顺序和运行顺序是不一样的,理解SQL的运行顺序有助于我们书写SQL语句,上面语句中的运行顺序是:

  1. 先运行FROM student
  2. 再运行WHERE 姓名='猴子'
  3. 最后才运行SELECT 姓名,出生日期

注意:WHERE子句中不能使用聚合函数(汇总函数),只有SELECT子句,HAVING子句,ORDER BY子句中可以使用聚合函数。


三、SQL语句的注释和注意事项

注释可以帮助我们更好地阅读SQL语句,也利于别人读懂我们的语句,是SQL语句的重要组成部分。注释分为单行注释和多行注释。

  • 单行注释:

db291a398d1d560994b4d242cff822c1.png

红框里面的就是注释,注释内容前面加-- ,两个横杠和一个空格,空格别忘记了。

  • 多行注释:

a346dd4427731ecc027b78630e8aa853.png

红框里面的就是注释,注释内容前面加/*(斜杠和星号),注释内容后面加*/(星号和斜杠)。

SQL书写规则注意事项:

  • 列名命名时不能有空格,列名不加单引号;名称只能使用字母、数字、下划线构成,并且只能以字母作为开头,此外名称不能有重复
  • 英文的列名和表名不区分大小写,但是为了SQL语句便于理解,建议是:关键字大写,表名的首字母大写,其余(列名等)小写
  • SQL语句以分号(;)结尾
  • 所有符号都是英文半角状态输入

四、运算符号

SQL有三大类运算符号:算数运算符,比较运算符,逻辑运算符

1、算数运算符:

91dbedee4242daa2492dfe1ff3b0fa37.png

实例1:现在有一个名为score的成绩表,我想用百分比去表示他们的成绩:

SELECT 学号,成绩,
成绩/100 AS 百分比成绩
FROM score;

3fd6e16ff360dcac85780d2b5614a166.png

2、比较运算符:

f8a72834b98ac6a35e2ca3c7000bfbba.png
不一定所有的SQL系统都支持以上运算符,具体要参照使用手册

实例1:我想要找出成绩小于60分的数据,那么查询语句为:

SELECT 学号,成绩 
FROM score
WHERE 成绩 < 60;

0121197afba9446bd5548293480f92f1.png

实例2:我想从student表中找出出生日期小于1990-01-01的数据,那么查询语法为:

SELECT 姓名,出生日期
FROM student
WHERE 出生日期 < '1990-01-01';

ba312144b0797ff0c135196680b3c525.png

3、逻辑运算符:

242d3129d698fc75e1498a9f40172554.png

实例1:我想要找出成绩大于等于60且小于等于90的数据,那么查询语法为:

SELECT 学号,成绩
FROM score
WHERE 成绩>=60 AND 成绩<=90;

8df5d6a6e657a136cd44535d0e7ca8d1.png

也可以用以下查询语法进行查询,查询结果是一样的:

SELECT 学号,成绩
FROM score
WHERE 成绩  BETWEEN 60 AND 90;-- 包括60和90这两个值

BETWEEN匹配的是范围内的所有值,包括指定的开始和结束值。

此外,对于编程来说,同一个查询目的可以用好几种实现方式,自己可以多思考,多比较,找出最简洁有效的办法,不断优化自己写的查询语句。

实例2:我想要找出成绩小于等于60和大于等于90的数据,那么查询语法为:

SELECT 学号,成绩
FROM score
WHERE 成绩<=60 OR 成绩>=90;

0ff0d8030394b10be60f94017c6f1c3b.png

实例3:我想找出姓名是猴子和马云的出生日期,那么查询语法为:

SELECT 姓名,出生日期
FROM student
WHERE 姓名 IN ('猴子','马云');

50071c2af8e7a6967c8a639d93b5a315.png

实例4:我想找出姓名不是猴子和马云的出生日期,那么查询语法为:

SELECT 姓名,出生日期
FROM student
WHERE 姓名 NOT IN ('猴子','马云');

51275ade668a9c13bac6bd0e69a389ed.png

实际是in语句是or语句的简便写法,实例4的语句可以换成or来写,只是用in来写相对更简洁。


五、字符串的模糊查询

我们用like来进行字符串的模糊查询,下面我们一起通过实例来进行分析学习。

实例1:查询姓‘猴’的学生名单,查询语句为:

SELECT *
FROM student
WHERE 姓名 LIKE '猴%';-- 其中%号表示任意字符串的意思

cb62f8592644d8b8c53d51a8aa3156a9.png

实例2:查询姓名中最后一个字是‘猴’的学生名单,查询语句为:

SELECT *
FROM student
WHERE 姓名 LIKE '%猴';

b951dd2435e1663b3ecd727503cd7078.png

实例3:查询姓名中带‘猴’的学生名单,查询语句为:

SELECT *
FROM student
WHERE 姓名 LIKE '%猴%';

cd76aac7fd217b801f3590a45334d29d.png

这样姓名中只要有‘猴’字的学生名单都被找出来了。

实例4:查询姓‘王’的学生名单,并且姓名是三个字的,查询语句为:

SELECT *
FROM student
WHERE 姓名 LIKE '王__';

需要注意的是上面语法中王后面接了两个下划线,一个下划线表示任意一个字符,我们接下来看一下查询结果:

fe7586c0c0ad73cc8cdb844496cf82da.png

只出现了一个王思聪的数据,王猴的数据就不会出现,因为我们查询的是姓名是三个字的,王猴只有两个字。

最后,以上所有的查询操作都不会修改原表格的数据,它类似于Excel的筛选功能,所以自己练习的时候可以大胆尝试。

欢迎大家看看我写的其他MySQL基础知识系列文章,希望对你们有所帮助!

1、MySQL基础入门知识

假装在念书:MySQL基础入门知识​zhuanlan.zhihu.com
41086a1f13f4915f63d7b9329d688dae.png

3、MySQL基础知识—汇总查询

假装在念书:MySQL基础知识—汇总查询​zhuanlan.zhihu.com
41086a1f13f4915f63d7b9329d688dae.png

4、MySQL基础知识—复杂查询

假装在念书:MySQL基础知识—复杂查询​zhuanlan.zhihu.com
41086a1f13f4915f63d7b9329d688dae.png

5、MySQL基础知识—多表查询

假装在念书:MySQL基础知识—多表查询​zhuanlan.zhihu.com
41086a1f13f4915f63d7b9329d688dae.png

六、实践出真知

现在我们打开SQLZOO网站:https://sqlzoo.net/,点击下面图片红色框选部分,开始习题练习,进行查询语句的练习:

5b17568f32550ea18559f07bd1c92809.png

第一部分、SELECCT基础知识习题:

第一题代码:

SELECT population FROM world
WHERE name = 'Germany';

87a1f4b2777d8f156f0ba2b17ecd5f79.png

第二题代码:

SELECT population FROM world
WHERE name IN ('Sweden','Norway','Denmark');

39034e0e3029d2533652240db6f9b495.png

第三题代码:

SELECT name,area
FROM world
WHERE area BETWEEN 200000 AND 250000;

a66a98c15eae687d4c6b02c16e983060.png

第二部分、从世界中选择习题:

第一题代码:

SELECT name, continent, population 
FROM world;

d017015123adb3fb9620a188da06a6ca.png

第二题代码:

SELECT name FROM world
WHERE population >= 200000000;

f931c6807e7d26bd2a20cfb26edf5c96.png

第三题代码:

SELECT name,gdp/population
FROM world
WHERE population >= 200000000;

c88d239c65e117dabbab8104c6eceeb4.png

第四题代码:

SELECT name,population/1000000 
FROM world
WHERE continent = 'south america';

c439f87537e84dab8ea960203db1f080.png

第五题代码:

SELECT name,population
FROM world
WHERE name IN ('France','Germany','Italy');

d77e4eb693f924e721d979fe7e2ee65c.png

第六题代码:

SELECT name
FROM world
WHERE name LIKE ('%United%');

3689d42d72a4bd072bc84845838f4b0b.png

第七题代码:

SELECT name,population,area
FROM world
WHERE area >= 3000000 or population >= 250000000;

e11e98b67a9e8fc51f1159f71a9942f9.png

第八题代码:

SELECT name,population,area
FROM world
WHERE area >= 3000000 xor population >= 250000000;

dee94baf87eb2605f573782d987a2927.png

第九题代码:

SELECT name,ROUND(population/1000000,2),ROUND(gdp/1000000000,2)
FROM world
WHERE continent = 'South America';

870f4eb528676e2e60f50441258a17f6.png

第十题代码:

SELECT name,round(gdp/population,-3)
FROM world
WHERE gdp >= 1000000000000;

58739c48f68a86e747b58556e2739169.png

第三部分、SELECT names(字符串模糊查询练习)

练习网址:http://zh.sqlzoo.net/wiki/SELECT_names/zh

第一题代码:

-- 找出以Y字母开头的国家
SELECT name
FROM world
WHERE name LIKE 'Y%';

f043315e92a4bd24c008d804edfc63bd.png

第二题代码:

SELECT name 
FROM world
WHERE name LIKE '%Y';

588045cc691371d7e4f1e45d2b3a19ec.png

第三题代码:

SELECT name 
FROM world
WHERE name LIKE '%x%';

0520e638fd36fd57c06c5017ad5ef7aa.png

第四题代码:

SELECT name 
FROM world
WHERE name LIKE '%land';

64ee696fa96151515f08b7fab843a31c.png

第五题代码:

SELECT name 
FROM world
WHERE name LIKE 'C%ia';

9416b79a8e7bc9d341e88351c2394cf8.png

第六题代码:

SELECT name 
FROM world
WHERE name LIKE '%oo%';

286666fd22a8e6aacd04597863f74815.png

第七题代码:

SELECT name
FROM world
WHERE name LIKE '%a%a%a%';

5f0a6ec174b88a9efde8f8a5c1243fdc.png

第八题代码:

SELECT name FROM world
WHERE name LIKE '_t%'
ORDER BY name;

ea78d3b550aa15c265c658e9d860f2fd.png

第九题代码:

SELECT name FROM world
WHERE name LIKE '%o__o%';

5c42fbdf3135377cde799e8b24f3c3e7.png

第十题代码:

SELECT name FROM world
WHERE name LIKE '____';

091de6e554de9f0858730b2be138b31b.png

第十一题代码:

SELECT name
FROM world
WHERE name = capital;

f1cc89beacdb4dbbd351ef9d6ab884b5.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值