select 检索数据
Select检索数据
数据查询语言DQL
简单查询
Select语句语法
Select
[distinct | all ]
查询的字段列表
from 查询的表列表
[where 条件语句]
[group by 子语 ]
[having 子语 ]
[order by 排序条件 ]
创建一个比较简单的表来学习简单sql查询:
create table test
(
id int ,
Name varchar(50),
num int ,
Time datetime,
Date date
)
INSERT INTO test VALUES (2, '刘岗', 2, '2016-9-18 11:54:26', '2016-6-2');
INSERT INTO test VALUES (3, '李安平', 3, '2016-9-18 11:54:32', '2016-9-14');
INSERT INTO test VALUES (4, '吴平台', 4, '2016-9-18 11:54:36', '2016-7-15');
INSERT INTO test VALUES (5, '张可可', 5, '2016-9-18 11:54:40', '2016-6-16');
INSERT INTO test VALUES (6, '陈如', 6, '2016-9-18 11:54:51', '2016-6-24');
INSERT INTO test VALUES (1, '吴顺', 1, '2016-9-18 11:55:15', '2016-8-11');
INSERT INTO test VALUES (7, '李渐立', 7, '2016-9-18 11:55:41', '2016-9-25');
比较运算符
=
>
>=
<
<=
<>,!= 不等于
select * from test where num >3
查出4,5,6
日期比较
select * from test where date > '2016-08-01'
结果:
逻辑运算符
and
select * from test where date > '2016-08-01' and date <'2016-08-15' and num = 1
结果:
And表示被查询的数据要满足所有的条件,才查出数据
Or
select * from test where date > '2016-08-01' or num =2
结果:
Or表示只要一个条件成立就才查出相应的数据
()的运算优先级
select * from test where num > 2 or date > '2016-06-13' and date < '2016-08-11'
结果:
select * from test where ( num > 2 or date > '2016-06-13' ) and date < '2016-08-11'
结果:
以上两个sql 用了or ,但是加上 () 和没加 () 的结果有差别。
()的运算优先级高于and
Not 表示非,取反的意思。Not 放在哪个条件前面,表示后面的一个条件组成的结果取反
select * from test where not num =2
表示num=2 的结果取反
结果:
select * from test where num = 7 or not date > '2016-09-13'
表示date > '2016-09-13' 的结果取反,查出的是小于9.13的数据 而num=7没有not 就不取反,即便时间大于13,也查出来
结果:
范围查询in
select * from test where num = 1 or num = 2 or num = 4
同等于:select * from test where num in (1,2,4)
取反 select * from test where not num in (1,2,4)
Or表示是满足某些指定条件, 如果条件很多,那么or就过长冗长,此时用in () 就很方便。
like模糊查询
%表示通配
select * from test where `name` like '李%'
结果:
select * from test where `name` like '%平%'
结果:
_表示匹配一个字符
select * from test where `name` like '陈_'
结果:
select * from test where `name` like '李__'
结果:
Null查询
先将一行数据设置为null
update test set num = null where id = 1
select * from test where num is null
结果:
Num是null的数据就会被查出
select * from test where num is not null
结果:
num是null的数据就不会被查出
范围查询betwwen ... And
select * from test where num BETWEEN 3 and 6
查出num的值从3到6的,包括3和6
同等于
select * from test where num >=3 and num <= 6
去重复字段查询distinct
先修改出一个相同的数据
update test set num =2 where id = 1
select num from test
以上结果中有两个2
使用DISTINCT 之后,重复的2就会不展示出来,这就是数据去重
select DISTINCT num from test
结果:
as 别名
as 是给列名取别名
select name as 名称 , num as 数量 from test
结果:
Order by 排序
order by .. desc 降序
order by .. asc 升序
select * from test order by num desc
按 num 降序
select * from test order by num asc
按 num 升序
注:1,null值在排序时被当成是最小值
2,当order by 后不带desc 或asc时 默认是升序
如:select * from test order by num
结果:
以列的位置来排序
select name , num ,id from test order by 3 asc
表示以查出来的第3列来排序,这里的第3列是id, 就相当于以id来排序。
结果:
还可以以别名来排序
select name as 名称 , num as 数量 from test order by 数量 desc
结果:
使用多个字段排序
select * from test order by num,name asc
按第一个字段进行排序,当第一个字段有重复的值时再对这些数据进行第二个字段排序。
嵌套查询
设计一个电商购物平台的案例来学习强大的select检索语句
select 检索数据相关推荐
- Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用
Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用 1,首先切换到Oracle用户,并进入数据库#sql / as sysdba2,启动数据库,并连接样例及表格,启动命令#s ...
- 数据库基础知识——SELECT 语句(检索数据)
SQL使用 SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写.SQL是一种专门用来与数据库通信的语言. SQL 语言特点: SQ ...
- mysql insert into select大量数据插入比较慢_史上最全MySQL锁机制
本文主要记录学习MyISAM 和 InnoDB 这两个存储引擎. 为什么要学习锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制. 因为数据也是一种供许多用户共享的资源,如何保证数据并发访问的 ...
- SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据
SQL基础操作_1_检索数据 目录 7.1.1 数据集 7.1.2 学生选课关系表 7.1.3 供应商关系表 7.2.1 从表中查询所有行和列 7.2.2 从表中查询部分行 7.2.3 查询满足某个条 ...
- mysql-3 检索数据(1)
SELECT 语句 SELECT检索表数据,必须至少给出两条信息--------想选择什么,以及从什么地方选择. 检索一个列 SELECT prod_name FROM products; 上述语句利 ...
- mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...
- Oracle入门(十四G)之PL / SQL中检索数据
一.PL / SQL中检索数据 (1)PL / SQL中的SQL语句 可以在PL / SQL中使用以下几种SQL语句: •SELECT从数据库检索数据. •DML语句,例如INSERT,UPDATE和 ...
- MySQL检索数据(过滤+通配符+正则表达式)
[0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review "MySQL的基础知识": [1]检索数据 1)检索单个列:sele ...
- 4-2 ADO.NET-查询和检索数据1
4-2 ADO.NET-查询和检索数据<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offic ...
最新文章
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一1.1 生成执行计划
- hdu4845 状态压缩BFS
- C++primer 9.2.1节练习
- 弄懂CNN,然后提升准确率4.21-4.27
- c语言sigaction,使用sigaction(),c
- python direct_Python-RabbitMQ-direct(广播模式)
- 查看linux中某个端口(port)是否被占用***
- 至强E5系列CPU后面的数字含义
- 让微积分穿梭于工作与学习之间(7):我自认为牛逼的成果之三:直接用定义求正切函数的导数
- win10系统备份教程
- (34)[NIPS15] Teaching Machines to Read and Comprehend
- 中文计算机期刊影响因子排名,最新计算机类中文核心期刊影响因子排名
- rcond--矩阵可逆的条件数估值
- 机器学习常用小代码块
- 34岁测试工程师面试美团遭拒:只招30岁以下,能加班但工资要求不高的....
- 2018 ACM-ICPC Syrian Collegiate Programming Contest(部分题解,待补)
- 结对编程项目——最长英语单词链
- android 即时通讯 心跳
- window系统区别
- VS2019未定义标识符detect该怎么解决