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 检索数据相关推荐

  1. Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用

    Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用 1,首先切换到Oracle用户,并进入数据库#sql / as sysdba2,启动数据库,并连接样例及表格,启动命令#s ...

  2. 数据库基础知识——SELECT 语句(检索数据)

    SQL使用 SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写.SQL是一种专门用来与数据库通信的语言. SQL 语言特点: SQ ...

  3. mysql insert into select大量数据插入比较慢_史上最全MySQL锁机制

    本文主要记录学习MyISAM 和 InnoDB 这两个存储引擎. 为什么要学习锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制. 因为数据也是一种供许多用户共享的资源,如何保证数据并发访问的 ...

  4. 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 查询满足某个条 ...

  5. mysql-3 检索数据(1)

    SELECT 语句 SELECT检索表数据,必须至少给出两条信息--------想选择什么,以及从什么地方选择. 检索一个列 SELECT prod_name FROM products; 上述语句利 ...

  6. mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...

  7. Oracle入门(十四G)之PL / SQL中检索数据

    一.PL / SQL中检索数据 (1)PL / SQL中的SQL语句 可以在PL / SQL中使用以下几种SQL语句: •SELECT从数据库检索数据. •DML语句,例如INSERT,UPDATE和 ...

  8. MySQL检索数据(过滤+通配符+正则表达式)

    [0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review "MySQL的基础知识": [1]检索数据 1)检索单个列:sele ...

  9. 4-2   ADO.NET-查询和检索数据1

    4-2          ADO.NET-查询和检索数据<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offic ...

最新文章

  1. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一1.1 生成执行计划
  2. hdu4845 状态压缩BFS
  3. C++primer 9.2.1节练习
  4. 弄懂CNN,然后提升准确率4.21-4.27
  5. c语言sigaction,使用sigaction(),c
  6. python direct_Python-RabbitMQ-direct(广播模式)
  7. 查看linux中某个端口(port)是否被占用***
  8. 至强E5系列CPU后面的数字含义
  9. 让微积分穿梭于工作与学习之间(7):我自认为牛逼的成果之三:直接用定义求正切函数的导数
  10. win10系统备份教程
  11. (34)[NIPS15] Teaching Machines to Read and Comprehend
  12. 中文计算机期刊影响因子排名,最新计算机类中文核心期刊影响因子排名
  13. rcond--矩阵可逆的条件数估值
  14. 机器学习常用小代码块
  15. 34岁测试工程师面试美团遭拒:只招30岁以下,能加班但工资要求不高的....
  16. 2018 ACM-ICPC Syrian Collegiate Programming Contest(部分题解,待补)
  17. 结对编程项目——最长英语单词链
  18. android 即时通讯 心跳
  19. window系统区别
  20. VS2019未定义标识符detect该怎么解决

热门文章

  1. 两阶提交、三阶提交、TCC框架
  2. 【安全】Web指纹识别
  3. img标签图片按照比例大小缩放
  4. Python+OpenCV 识别银行卡卡号
  5. CentOS 7 LVM创建与使用
  6. 计算机word资料,怎样快速找到电脑中的Word文档
  7. ANIMO 03 汉化补丁
  8. 数学建模竞赛中的两个技巧
  9. flutter 输入自动转大写,只能输入大写或数字;
  10. chromedriver与GOOGLE浏览器对应版本