数据操作-查询

创建数据表
drop table if exists students;  创建数据表之前先删除同名的table
create table students (
  studentNo varchar(10) primary key,
  name varchar(10),
  sex varchar(1),
  hometown varchar(20),
  age tinyint(4),
  class varchar(10),
  card varchar(20)
)

准备数据
insert into students values
('001', '王昭君', '女', '北京', '20', '1班', '340322199001247654'),
('002', '诸葛亮', '男', '上海', '18', '2班', '340322199002242354'),
('003', '张飞', '男', '南京', '24', '3班', '340322199003247654'),
('004', '白起', '男', '安徽', '22', '4班', '340322199005247654'),
('005', '大乔', '女', '天津', '19', '3班', '340322199004247654'),
('006', '孙尚香', '女', '河北', '18', '1班', '340322199006247654'),
('007', '百里玄策', '男', '山西', '20', '2班', '340322199007247654'),
('008', '小乔', '女', '河南', '15', '3班', null),
('009', '百里守约', '男', '湖南', '21', '1班', ''),
('010', '妲己', '女', '广东', '26', '2班', '340322199607247654'),
('011', '李白', '男', '北京', '30', '4班', '340322199005267754'),
('012', '孙膑', '男', '新疆', '26', '3班', '340322199000297655')

查询所有字段
select * from 表名
例:
select * from students
查询指定字段
在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中
select 列1,列2,... from 表名

-- 表名.字段名
select students.name,students.age from students

-- 可以通过 as 给表起别名 
select s.name,s.age from students as s

-- 如果是单表查询 可以省略表明
select name,age from students

- 使用as给字段起别名
select studentNo as 学号,name as 名字,sex as 性别 from students
消除重复行
在select后面列前使用distinct可以消除重复的行
select distinct 列1,... from 表名;
例:
select distinct sex from students;

条件查询

使用where子句对表中的数据筛选,符号条件的数据会出现在结果集中
语法如下:
select 字段1,字段2... from 表名 where 条件;
例:
select * from students where id=1;
where后面支持多种运算符,进行条件的处理
比较运算
逻辑运算
模糊查询
范围查询
空判断
比较运算符
等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>

例1:查询小乔的年龄

select age from students where name='小乔'
例2:查询20岁以下的学生

select * from students where age<20
例3:查询家乡不在北京的学生

select * from students where hometown!='北京'
练习:

1、查询学号是'007'的学生的身份证号
2、查询'1班'以外的学生信息
3、查询年龄大于20的学生的姓名和性别

逻辑运算符
and
or
not
例1:查询年龄小于20的女同学

select * from students where age<20 and sex='女'
例2:查询女学生或'1班'的学生

select * from students where sex='女' or class='1班'
例3:查询非天津的学生

select * from students where not hometown='天津'
练习:

1、查询河南或河北的学生
2、查询'1班'的'上海'的学生
3、查询非20岁的学生

模糊查询
like
%表示任意多个任意字符
_表示一个任意字符

例1:查询姓孙的学生

select * from students where name like '孙%'
例2:查询姓孙且名字是一个字的学生

select * from students where name like '孙_'
例3:查询叫乔的学生

select * from students where name like '%乔'
例4:查询姓名含白的学生

select * from students where name like '%白%'
练习:

1、查询姓名为两个字的学生

select * from students where name like '--'   两个下划线代表两个字
2、查询姓百且年龄大于20的学生

select * from students where name like '百%' and age >20
3、查询学号以1结尾的学生

select * from students where studentNo like '%1'

范围查询
in表示在一个非连续的范围内
例1:查询家乡是北京或上海或广东的学生

select * from students where hometown in('北京','上海','广东')
between ... and ...表示在一个连续的范围内
例2:查询年龄为18至20的学生

select * from students where age between 18 and 20
练习:

1、查询年龄在18或19或22的女生
2、查询年龄在20到25以外的学生

空判断
注意:null与''是不同的
判空is null

例1:查询没有填写身份证的学生

select * from students where card is null
判非空is not null
例2:查询填写了身份证的学生

select * from students where card is not null

排序

为了方便查看数据,可以对数据进行排序
语法:
select * from 表名
order by 列1 asc|desc,列2 asc|desc,...
将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推
默认按照列值从小到大排列
asc从小到大排列,即升序
desc从大到小排序,即降序

例1:查询所有学生信息,按年龄从小到大排序

select * from students order by age
例2:查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序

select * from students order by age desc,studentNo
练习:

1、查询所有学生信息,按班级从小到大排序,班级相同时,再按学号再按学号从小到大排序

select * from students order by class asc,studentNo asc

数据库查询之条件排序相关推荐

  1. 数据库查询之条件查询

    条件 使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: select * from 表名 where 条件; 例: select * from students wh ...

  2. 1为数据库查询的数据中加一排序号,2判断为查询出来的字段赋值

    @Overridepublic String getSqlByFileCodeForExport(String strTime, String strCompany) {StringBuffer st ...

  3. sql server排序慢_SQL 查询调优之 where 条件排序字段以及 limit 使用索引的奥秘

    (给数据分析与开发加星标,提升数据技能) 作者:风过无痕-唐 www.cnblogs.com/tangyanbo/p/6378741.html 奇怪的慢sql 我们先来看2条sql 第一条: sele ...

  4. php是根据html中的值查询数据条件_FleaPHP框架数据库查询条件($conditions)写法总结...

    本文实例讲述了FleaPHP框架数据库查询条件($conditions)写法.分享给大家供大家参考,具体如下: 在FleaPHP中,凡是用到数据库查询的函数,都需要查询条件参数$conditions, ...

  5. MySQL数据库查询排序

    MySQL数据库查询排序 一.按关键字排序 1.1 单字段排序 1.1.1 按分数排序,默认不指定是升序排序 1.1.2 按分数降序排序 结合where进行条件过滤,筛选地址是nanjing的学生按分 ...

  6. sql datetime 加一天_PowerQuery数据库Sql.Database条件查询

    焦棚子的文章目录 请点击下载附件 1.应用场景 底层数据在数据库(sql server数据库,其他数据库同理,下文不再说明.)中,Excel中有查询的字段,需要在数据库中查询相关信息: 2.举个栗子 ...

  7. SQL Server数据库查询区分大小写、全半角——排序规则的应用(转载)

    SQL Server数据库查询区分大小写.全半角--排序规则的应用 因为偶然的原因,需要在INNER JOIN联表时,让对应字段进行区分大小写的比较.而默认情况下建立的Sql Server数据库是不区 ...

  8. php,tp5关键词,分词模糊查询并根据查询条件排序

    php,tp5关键词,分词模糊查询并根据查询条件排序 1.大概需求是我这边搜索"维修工",需要先搜索维修工再搜索维修,用一般模糊查询的话会导致维修的词出不来,所有这边需要先进行分词 ...

  9. SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询

    实验目标: 1.掌握指定列或全部列查询 2.掌握按条件查询 3.掌握对查询结果排序 4.掌握使用聚集函数的查询 5.掌握分组统计查询 一.请完成书中实验7.1,并完成以下问题. 1.查询所有学生的姓名 ...

最新文章

  1. android点击输入法会把底部顶上去的解决办法
  2. http 400错误
  3. 关于mysql数据库中存放中文字段乱码问题解决方案
  4. python字典内置方法_柳小白Python学习笔记 12 内置方法之字典方法
  5. libcare Hello World测试例
  6. win7主机与linux虚拟机共享方法之右键添加Sharing Options
  7. python爬知识星球付费数据_python抓取知识星球精选帖,制作为pdf文件
  8. 无法保存此文档。它可能是只读的,或者正在被其他应用程序使用
  9. Window系统怎么如何激活?详细版
  10. java appkey_Java全栈工程师 风袖 appkey
  11. NetCore mysql Connection open error . The given key ‘25971‘ was not present in the dictionary
  12. Nginx服务器软件学习记录
  13. 华硕P8H61-M+i3-3220 +GTX650
  14. ManjaroArch 自动挂载NTFS分区
  15. 学习SEO就到SEOWHY,SEO十万个为什…
  16. 这4款神级软件 最好用的软件
  17. nginx软件安装部署
  18. Python 实现视频裁剪(附代码) | Python工具
  19. Struts2报错Caused by: java.lang.NoSuchMethodException: bean.Student.init()
  20. 【转载】有限域的构造之常见本原多项式

热门文章

  1. 开源IoT操作系统Mynewt使用简介
  2. 【Linux】【Kernel】BUG: scheduling while atomic问题分析
  3. 亚马逊云科技的AI新引擎,如何助力企业应对“乌卡时代”?
  4. 小王梦游记五---最美丽的湖
  5. 拼多多评价过滤哪些内容?应该怎么办?
  6. web安全的一句话木马
  7. 用glRotatef函数转动对象
  8. 命名实体识别(NER)知识汇总
  9. 论文Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems阅读笔记
  10. 基于COLA架构创建运输微服务应用和DDD领域建模