Mysql中的select语句的使用

232 阅读4分钟

1.DQL --重点

1.1基础查询

 基本语法:[]可有可无 只要写了 前后顺序不能颠倒
 select 查询的字段,字段2,...   from 表名或者视图名
 [where 分组前条件]
 [group by 分组的字段]
 [having 分组后条件]
 [order by 排序的字段 升序(ASC)或降序(DESC)]
 [limit [起始下标,]行数];

1.2 where子句

就是将前面的查询结果做第一次筛选

 1.查询范围      mysql逻辑运算符: and or not
 select * fromwhere 成绩>60;
 select * frmo 表 where 成绩>60 and 成绩<80
 -- 属于闭区间 包括80和90
  select * frmo 表 where between 60 and 80
 2.筛选是否为null值
 select * fromwhere 字段 is null
 select * fromwhere 字段 is not null
 3.筛选不等于
 select * fromwhere 科目编号 !='java';
 select * fromwhere 科目编号 <>'java';  --不存在 ><
 4.筛选等于  或者等于多个值
 select * fromwhere 部门编号=20;
 -- 统计10 30 50部门的员工信息
 select * fromwhere 部门编号=10 or 部门编号=20 or 部门编号=50
 -- 简化写法 in()函数 等价于或者的意思
 select * fromwhere 部门编号 in(10,30,50);

1.3 like子句

如果做查询时,这个条件如果不具体

 语法:
 select 查询字段 fromwhere 字段 like ???;
 - :表示一个字符 一般情况确定 位数时使用
 % :可以表示0-n个字符 一般情况下不确定位数时使用
 比如:
 '%a' : 是a字符结尾
 'a%' : 是a字符开头的
 'a__': 长度是3 以a字符开头
 '%a_': 倒数第二个字符是a
 '%a%': 包含a字符的内容   后期做搜索功能最多的实现

1.4 union子句

mysql中union用于链接多个select语句的结果集 最终合并成一个结果集

特点: 浙西select语句如果有重复的数据会自动去重,并且还可以实现数据库列转行

 语法:
 select 字段1,字段2 from 表
 union
 select 字段1,字段2 from 表
 语法2:如果不想去除多个结果集重复数据 使用union all

注:要求多个查询语句的个数必须是一样的,跟字段类型没有关系

1.5 order by子句

数据库本身的数据默认无序的,因为不知道该用什么规则排序,如果想排序 需要通过关键字order by来实现,并且排序关键字是有先后顺序的 一般是写在除了limit语句的最后

 语法:
 order by 排序的字段 排序规则:
 排序规则: ASC升序(默认值) DESC降序

1.6 limit子句

limit是mysql中用于通过下标(索引值)来限定查询条数的一种方式,它后期也是实现数据分页非常重要的途径,并且limit一般要写在sql语句末尾

 语法:
 limit [起始索引值,]查询条数;
 比如:查询一张表 每页实现5条 查询第三页数据
 limit 10,5 //10表示下标为10的数据开始查询,查询5条
 比如:查询一张表 前10条数据
 limit 0,10;或者 limit 10;

2.mysql约束

约束:

  • 非空约束:not null 保证字段不能为空

  • 默认约束:default保证字段一定会有值,如果没有插入 设置成默认值 如果插入null也算插入了值

  • 唯一约束:unique 保证字段唯一性 但是数据是可以为空的,并且 唯一约束 还会自动添加唯一索引

  • 检查性约束:check 是用于给字段做一些简单校验 但是mysql会失效,语法是通过的 但是没有效果

  • 主键约束:primary key(pk) 用于控制数据唯一的方式,主键约束自带唯一和非空两种功能 但是主键约束每张表只能写一个 并且主键约束也会自动添加索引 叫做主键索引

  • 外键约束:foreign key(fk) 定义在具有父子关系的子表中,子表中的外键必须对应父表中的主键(或者唯一键) 目的是为了确保数据的完整性 并且外键可以重复可以为null

    前提:添加外键时,一定是先创建父表再创建子表

 1.
 2.表已存在 添加约束
 alter table 
 alter table 表名 modify  字段 加字段类型 not null;
 alter table 表名 add 字段 check();
 alter table 表名 alter column 字段 set default 12;
 alter table 表名 add foreign key(city_id) references city(id);