人因梦想而伟大,又因坚持梦想而成长。|

TomLove

园龄:1年11个月粉丝:1关注:1

MySQL 期末总结

MYSQL

一、对表结构进行操作

1.主键

1)添加主键

-- 1. 主键
/*
方式一: 创建表的时候在字段后面 + primary key
方式二: 写完字段之后在指定主键, 创建标的字段下面
[constraint <约束名>] primary key
*/
use mydb1;
create table emp1(
eid int,
ename varchar(20),
deptId int,
salary double,
constraint pk1 primary key(eid) -- constraint pk1 可以省略
)
insert into emp1(eid, name, deptId, salary) values(1001,"张三",001,5000.0);
-- 2. 联合主键
-- 主键由一张表中的多个字段组成
-- 一张表只能有一个主键, 联合主键也是主键
-- 相应的格式如下
create table emp2(
eid char(4),
ename varchar(20),
salary double,
constraint pk2 primary key(eid, ename) -- constraint pk2 可以省略
)

2)删除主键

一个表不需要主键约束的时候将主键从表中删除

单列主键和联合主键都可以用它删除

alter table <数据表名> drop primary key;

2.自增长约束 auto_increment

当主键被定义自增长之后,这个主键就不要用户在输入数据了,而是由操作系统根据定义自动赋值,没增加一条记录,主键会自动一相同的步长增长

在创建表的时候

字段 数据类型 auto_increment

  1. 默认情况下 auto_increment 的初值为 1,每增加一条记录,字段值自动 + 1

  2. 一个表中只能有一个字段使用自增长约束,且该字段必须有唯一索引,以避免序号重复(即为主键或者主键的一部分)

  3. 自增长约束字段必须非空 即 not null

  4. auto_incredment 只能是整数类型

  5. 约束字段的最大值受该字段的数据类型约束,如果达到上限 , auto_incredment 就会失效

3.非空约束 not null

在创建表的时候指定 字段名 数据类型 not null

创建表时候用 alter 再去指定 alter table 表名 modify 字段 类型 not null

4.唯一约束 unique

唯一约束是指定所有记录中的字段不能重复出现

在创建表的时候指定 字段名 数据类型 unique

创建表之后再去指定 alter table 表名 add constraint 约束名 unique(列)

5.默认约束

MYSQL 的默认约束用来指定某列的默认值

在创建表的时候添加 字段名 数据类型 default 默认值

创建表之后用 alter 进行 alter table 表名 modify 列名 类型 default 默认值

6.零填充约束(zerofill)

插入数据时,该字段的额长度小于定义的长度时,就会在该字段补上相应 0

zerofill 默认值是 int(0)

当时用 zerofill 时,默认会追加 unsigned(无符号)属性,使用 unsigned 之后,数值范围是原来的值的 2 倍

create table t_user(
id int zerofill, -- 零填充
name varchar(20)
)
-- 删除
alter table t_user modify id int;
-- 插入一条数据看看效果
insert into t_user values(1, "张三");

image-20231205222105844

7.约束总结

二、DQL

1.基本的查询小左

2.运算符

算数运算符 说明
+ 加法运算
- 减法运算
* 乘法运算
/ 或 DIV 除法运算,返回商
% 或 MOD 求余运算,返回余数

image-20231205223656673

image-20231205223751102

算数运算之后要起别名

3.模糊查询

1) like

% : 表示任意多个字符

_ : 表示一个字符

4.排序查询

order by 用到这个关键字

select
字段1, 字段2....
from 表名
order by 字段 [asc | desc], 字段2 [asc | desc].....

asc 表示升序 desc 表示降序 默认是 升序

order by 用在字句中可以支持 任意个字段, 表达式, 函数, 别名

order by 放在查询语句最后面, LIMIT 除外

5.聚合查询

image-20231205225721556

聚合查询对 null 的处理

1) count 函数

​ 如果 count 函数的参数为 * ,则统计所有的记录个数

2) sum 和 avg 对 null 的处理

​ 忽略 null 的存在,就好像该记录不存在

3) max 和 min 同样忽略 null 的存在

6.分组查询

select 字段1, 字段2,.... from 表名 group by 分组字段 having 分组条件;

如果需要进行分组的话, select 后面只能出现分组字段, 和 聚合函数

分组之后的条件筛选 having

  1. 分组之后如果需要对条件进行筛选必须使用 having
select 字段....
from ....
where ....
group ...
having ....

7.分页查询

分页查询在项目开发中常见,由于数据量 大, 显示屏长度有限,因此对数据采用分页显示的方式

列如:每一页显示 5 条,第一页显示 1~5, 第二页显示 6 ~ 10

-- 方式一 显示前 n 条
select 字段... from 表名 limit n;
-- 方式二
select 字段.... from 表名 limit m, n;
-- m : 整数, 表示从 第几条索引开始 计算方式 (当前页面 - 1) * 每页显示的条数
-- n : 整数 表示查询多少条数据

本文作者:TomLove

本文链接:https://www.cnblogs.com/tomlove/p/18000162

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   TomLove  阅读(35)  评论(0编辑  收藏  举报
   
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起