数据库笔记

数据库中主要操作:查询

查询的基本语法

select * as 别名 from 表名;

from关键字后面写表名,表示数据来源于是这张表
select后面写表中的列名,如果是*表示在结果中显示表中所有列
在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中
如果要查询多个列,之间使用逗号分隔

在select后面列前使用distinct可以消除重复的行
select distinct gender from students;

条件 where

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

where 后面条件可以用到比较运算符 逻辑运算符

  1. 比较运算符
    等于=
    大于>
    小于<
    大于等于>=
    小于等于<=
    不等于!=或<>

例如
查询编号大于3的学生
select * from students where id>3;
查询学生叫张三
select * from students where name = '张三';

  1. 逻辑运算符
    and 与
    or 或
    not 非

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

查询姓黄的学生
select * from students where name like '张%';
查询姓黄并且名字是一个字的学生
select * from students where name like '张_';
查询姓黄或叫靖的学生
select * from students where name like '张%' or name like '%张%';

  1. 范围查询
    关键字 in between
    in表示在离散值之间选取
    select * from students where id in(1,2,3,4); 查询学生表中id=1,2,3,4信息
    between ... and...表示在连续值中选取
    select * from students where id between 3 and 8;

  2. 空查询 null
    null 与 ' ' 有区别,null表示什么也不存储,' '存啦空格字符串
    is null 判断为空
    is not null 判断非空

统计函数

为了快速统计数据,提供5个聚合函数

count(*) 表示统计总行数,()里面也可写成列名,统计这一列行数
select count(*) from students;

max(列名) 此列最大值

min(列名) 此列最小值

sum(列名) 列求和

avg(列名) 列平均值

分组

关键字 group by
按照列名分组,该列中相同数据分到一组,分组后可以做统计运算

select 列1,列2 , ...,统计函数 ... from 表名 group by 列1,列2...

分组后的数据筛选

关键字 having

对比where与having
here是对from后面指定的表进行数据筛选,属于对原始数据的筛选
having是对group by的结果进行筛选

语法:

select 列1,列2,聚合... from 表名
group by 列1,列2,列3...
having 列1,...聚合...

排序

关键字 order by

为了方便查看数据,可以对数据进行排序
语法:

select * from 表名
order by 列1 asc|desc,列2 asc|desc,...

将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推

默认按照列值从小到大排列
asc从小到大排列,即升序
desc从大到小排序,即降序

查询男生学生信息,按学号降序

select * from students
where gender=1 
order by id desc;

获取部分行

关键字 limit

当数据量过大时,在一页中查看数据是一件非常麻烦的事情
语法

select * from 表名
limit start,count

从start开始,获取count条数据
start索引从0开始

你可能感兴趣的:(数据库笔记)