美文网首页
数据库笔记2-单表查询

数据库笔记2-单表查询

作者: 照照寒 | 来源:发表于2016-10-15 22:04 被阅读0次
students courses reports

在sql server中(不区分大小写):

1.单表无条件查询

select * from students;

查找students中的全部数据,*是全部的意思,可以换成表中的某一列或多列;

select sname,2016-sage birthyear,lower(sno) lsno from students;

查找的同时可以计算,重新命名,控制大小写;

select distinct sage from students;

查找出不重复的数据;

select count(distinct sdept),min(sage),max(sage),avg(sage) from students;

聚合函数 count,sum,avg,min,max分别计算列上值的个数,数值总和,平均值,最小值,最大值。

2.单表带条件查询。

select sname from students where sage between 18 and 20;
select sname from students where sage in(18,19,20);```

带条件查询的三种写法。

```select sname from students where sname like '王%';
select sname from students where sname like '王____';```

模糊字符匹配,查找姓王的同学的全名。通配符%代表一个任意长度的字符串,_代表单个字符,一个汉字由两个字符组成,所以此处加了四个字符串。

```select sname from students where sname not like '王%'; ```

当然也可以利用字符匹配查找不姓王的数据,只需在like前面加not。用'='的地方可以like替换,不过效率会降低。

```select cname from courses where cname like 'DB\_设%' escape '\';```

当要查询的数据中确切的部分中含有通配符则应用escape进行转义,如果不进行转义,就会查找出无用的数据,比如要查找以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。如果不进行转义,就会出现如下情况:
![没有转义](https://img.haomeiwen.com/i2670618/174c6b2b91ce4595.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

```select sno,cno from reports where grade is  null;```

查找存在记录但是空值的数据。这种方法不能全部找出没有值的数据,因为没有值也可能记录成 'null'或'_'。

>3.分组查询和排序查询。

```select cno,avg(grade) from reports group by cno;```

group by 是分组查询,把一个表按照一定列上值相等的原则分组,然后分别对每个组进行操作。分组查询经常配合聚合函数一起使用,聚合函数在每个组中进行运算,然后每个组返回一个结果。

```select cno,avg(grade) group by cname having count(*)>=3;```

having子句用于group by后对每一组进行条件判断,满足having条件的组被选出来。

*【摘自网络】*使用Group By子句的时候,一定要记住下面的一些规则:
1)不能Group By非标量基元类型的列,如不能Group By text,image或bit类型的列
2)**Select指定的每一列都应该出现在Group By子句中,除非对这一列使用了聚合函数;**
3)不能Group By在表中不存在的列;
4)进行分组前可以使用Where子句消除不满足条件的行;
5)使用Group By子句返回的组没有特定的顺序,可以使用Order By子句指定次序。

```select * from students order by sdept asc,sage desc;```

order by查询结果排序。查找所有学生信息,按系名升序,同一系的按年龄降序。desc是降序,asc是升序,没写的时候默认升序,升序把空值放在最后,降序把空值放在最前面。

>总结:无论怎样写查找语句,得到的结果都是一张表,所以写语句时要注意你写的能不能构成一张表。




相关文章

  • MySQL学习笔记二之单表查询与多表查询

    title: MySQL学习笔记二之单表查询与多表查询tags: MySQL 数据库categories: MyS...

  • 数据库笔记2-单表查询

    在sql server中(不区分大小写): 1.单表无条件查询 select * from students; 查...

  • 延迟加载

    意义 在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。 如果查询单...

  • mysql表关系

    mysql数据库 知识要点: 单表查询 子查询 联表查询 事务 在进行查询之前,我们要先建好关系表,并往数据表中插...

  • mybatis高级映射——(延迟加载)

    一.什么是延迟加载 延迟加载:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查...

  • 单表查询的演变

    单表查询是互联网业务中常用的手段.引入单表查询后,数据库负责简单读取数据,应用需要解决如何将查询落到核心表上! 现...

  • mysql,库管理与表管理1

    关于数据库的操作 (以下操作均在MySQL中进行) 表管理 单表查询 有条件的查询:

  • Python+MySQL数据库操作(PyMySQL)

    安装mysql驱动 连接数据库 建表 插入 查询 Python查询Mysql使用 fetchone() 方法获取单...

  • 分库分表

    数据库分表可以解决单表海量数据的查询性能问题,分库可以解决单台数据库的并发访问压力问题。 分库分表目前有很多的中间...

  • DDL-数据表操作

    查询 查询当前数据库所有表 查询表结构 查询指定表的建表语句 创建

网友评论

      本文标题:数据库笔记2-单表查询

      本文链接:https://www.haomeiwen.com/subject/apdoyttx.html