SQL查询语句(一)
基本查询
SELECT * FROM <tablename>;
SELECT是SQL关键字,SQL关键字是不区分大小写的,但是表名是区分大小写的。SELECT关键字表示查询操作,而*表示查询所有字段。FROM是SQL关键字,表示从哪张表查询。tablename是表名。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。另外MySQL要求每条SQL语句的结束都需要加上分号。
例如:
SELECT * FROM students;
SELECT语句还可以单独使用,通常用来检查当前数据库连接是否有效。通常是使用SELECT 1;来进行判断。
去除重复结果集。
它可以筛选出字段的所有可能的结果。例如:
结果表明,students表中的性别只有男和女两种。
结果表明,students表中的的class_id只有1,2,3这三种结果。
计算:
例如,我想计算数学和英文的总成绩,那么使用如下语句即可。
SELECT name,math,english,math+english FROM students;
上面的查询结果在成绩都存在的情况下,都是正确的,但是当其中一项为NULL之后,计算的成绩之和也是NULL。这可能和我们的预期不太一致。我们希望成绩和是81.00. 好在SQL提供了IFNULL()来替换NULL为相应的值。例如:
SELECT name,math,english,IFNULL(math,0)+IFNULL(english,0) FROM students;
上述语句中,将math字段中的NULL值替换为0,同理,english字段的NULL值也被替换为0。
起别名
查询结果显示的字段名可能像上面那样,非常难看。不过SQL提供了起别名。起别名使用关键字as,不过as可以省略。下面这两条语句是等价的。
SELECT name as 姓名,math as 数学,english as 英语,math+IFNULL(english,0) as 总分 FROM students;SELECT name 姓名,math 数学,english 英语,math+IFNULL(english,0) 总分 FROM students;
经过起别名之后,看起来就舒服很多了。
条件查询
SELECT语句可以通过WHERE
条件来设定查询条件。格式如下:
SELECT * FROM <tablename> WHERE <condition>;
WHERE是SQL的关键字,condition是限制条件。
例如:
SELECT * FROM students WHERE score >= 90;
其中条件表达式可以使用AND,OR,NOT关键字来进行条件之间的组合。AND,OR,NOT的意思和C语言中的&&,||,! 没有区别。下面来分别展示一下相关的查询实例。实际上在SQL中使用&&,||,!也是可以的,但是不建议这么做。而是建议使用AND,OR,NOT关键字。同时SQL支持比较操作,
>=(大于等于)
>(大于)
<=(小于等于)
<(小于)
=(等于),注意,这里的判断是否相等是一个等号,而不是C语言中的双等号。
!=(不等于),SQL还提供了<>作为不等于,不常用。
IN(),在括号里的选项都会匹配到。例如:SELECT * FROM students WHERE id IN(1,2);这将查询出id为1和2的所有数据。
如果某个字段为NULL,那么判断是NULL的写法为:SELECT * FROM students WHERE english IS NULL;判断不是NULL的语法是:SELECT * FROM students WHERE english IS NOT NULL;
SELECT * FROM students WHERE score >= 80 AND id = 1;
SELECT * FROM students WHERE score >= 90 OR score <= 60;
SELECT * FROM students WHERE NOT id = 3;
AND, NOT, OR之间存在优先级关系。NOT优先级最高,其次是AND,最后是OR。同1样,和C语言中建议的一样,我们在使用它们的时候,为了使程序方便阅读,建议加上括号。例如:
SELECT * FROM students WHERE (NOT class_id = 3) AND (score >= 80);
模糊查询
模糊查询使用关键字LIKE进行。单个匹配符是"_",多个匹配符是"%"。
首先,给数据库插入几条记录,如下:
INSERT INTO students(class_id,name,gender,math,english) VALUES(2,"马化腾",'M',97.23,91.24),(3,"马云",'M',64.74,98.75),(5,"马德",'M',54.74,78.41);INSERT INTO students(class_id,name,gender,math,english) VALUES(3,"两马化
云腾",'X',NULL,NULL);
插入之后,数据库如下所示:
SELECT * FROM students WHERE name LIKE "%马%";
SELECT * FROM students WHERE name LIKE "马%";
SELECT * FROM students WHERE name LIKE "马_";
SQL查询语句(一)相关推荐
- SQL查询语句 select 详解
查询select: 1.单表查询 2.多表查询 3.嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询*************************** ...
- MySQL番外篇:一条SQL查询语句是如何执行的?
在面试的过程中,有的面试官会给出一条简单的SQL查询语句,让简单说一下执行的过程. SELECT * FROM emp where age=30; 以下问MySQL的基本架构图,从中可以看出SQL语句 ...
- SQL查询语句总是先执行SELECT?你们都错了。。。
来源 | infoq.cn/article/Oke8hgilga3PTZ3gWvbg 很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别人解释什么是窗口函数,我在网上搜索"是否 ...
- R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句
R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录
- SQL 查询语句总是先执行 SELECT?你们都错了
很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟别人解释什么是窗口函数,我在网上搜索"是否可以对窗口函数返回的结果进行过滤"这个问题,得出的结论是"窗口函数 ...
- SQL 查询语句总是先执行 SELECT?
点击上方"朱小厮的博客",选择"设为星标" 后台回复"1024"领取惊喜资料 很多 SQL 查询都是以 SELECT 开始的.不过,最近我跟 ...
- SQL查询语句基础构成
本文是基本的SQL查询语句用法,内容主要来自Alan Learning SQL这本书第3章,包括select,from,where,group by,having,order by六个查询子句,后续会 ...
- 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- 怎么做mysql查询系统_mysql数据库系统学习(一)---一条SQL查询语句是如何执行的?...
一.第一节:一条sql查询语句是怎样执行的 5.5.5版本以后,默认使用存储引擎为InnoDB 不使用查询缓存,MySQL8.0没有查询缓存这个功能 总体来说:MySQL分为service层和存储引擎 ...
- 没错,纯SQL查询语句可以实现神经网络
我们熟知的SQL是一种数据库查询语句,它方便了开发者在大型数据中执行高效的操作.但本文从另一角度嵌套SQL查询语句而构建了一个简单的三层全连接网络,虽然由于语句的嵌套过深而不能高效计算,但仍然是一个非 ...
最新文章
- matlab-矩阵应用
- 超级实用!用Python写股票分析工具
- 人工智能领域论文常见基本概念笔记
- Language modeling tutorial in torchtext
- SQL索引碎片整理脚本
- eclipse 连接 mysql
- ubuntu16 安装opencv
- Lotus开发之Lotus Notes中域的验证
- 关于mpvue 切换页面数据没清空
- Kettle连接mysql错误 org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException
- C#获取标准北京时间
- Linux在线词典问题,linux中goldendict发声词典播放报错问题解决方案
- jk女孩被人偷拍知名企业代码泄露, 原来是属性注解模式(Attribute Annotation Pattern)兴风作浪
- 电子元器件行业经销商管理平台高效协同,优化经销商系统渠道链条
- 【kafka专栏】使用shell脚本快速安装kafka集群(含视频)
- CF #689(Div. 2) B - Find the Spruce
- 人工智能中的认识导航技术
- 操作Oracle类型CLOB和BLOB
- android 数据刷新问题,RecyclerView数据不刷新问题
- Java接受前端的base64,转换失败。base64转图片互相转换