当前位置: 首页 > news >正文

MySQL进阶:深入理解数据约束与优化查询

MySQL管理数据库

创建数据库

CREATE DATABASE IF NOT EXISTS 数据库名;

删除数据库

DROP DATABASE 数据库名;

表的管理

查看所有表
 use 数据库名; 选中一个数据库show tables;
创建表:student(整数id,字符串name,整数age)
CREATE TABLE sutdent (id int, name varchar(20), age int);
查看一个表结构
desc 表名;
查看创建表的sql语句
SHOW CREATE TABLE 表名;
修改表结构

向学生表中添加1列remark varchar(100)

    ALTER TABLE student ADD remark varchar(100)

删除学生表列remark

    ALTER TABLE student DROP remark;

修改表student名字为student1

REANME TABLE sutdent TO student1;
删除表
DROP TABLE 表名;

管理数据:数据增删改DML

插入数据

    INSERT INTO 表名 (字段名1, 字段名2..) VALUES (值1, 值2...);

修改数据

    UPDATE 表名 SET 字段名=新的值 WHERE 条件;

删除表中的所有数据

DELETE FROM 表名;
1.排序:
select * from 表名 order by 字段名 asc(升序默认的)/desc(降序),字段名 asc(升序默认的)/desc(降序),..
2.聚合函数:
count(*) 根据列统计行数
sum(字段名)求某一列和值
max(字段名)某一列最大值
min(字段名)某一列最小值
avg(字段名)某一列平均值
3.分组:按照哪列分组,那么那一列的字段值相同就被分为一组
select * from 表名 where 条件 group by 字段名 having 条件
4.分页查询
select * from 表名 limit 起始索引,每页显示的行数;起始索引 从0开始,对应第一行
5.约束:1)主键约束:字段名 类型 primary key auto_increment特点:唯一  非空2)唯一约束:字段名 类型 unique3)非空约束:字段名 类型 not null4)默认值约束:字段名 类型 default 默认值 5)外键约束:约束外键,在多表中具有外键。【constraint 外键约束名】 foreign key(外键对应的字段名) references 主表(主键);6)多表关系:1)一对多:将一方的主键作为多方的外键2)多对多:创建从表(中间表)维护两张主表的关系,在从表中至少要有两列来自于主表的主键作为外键3)一对一:将任意一方的主键作为另一方的外键

第一部分(约束和表设计)

1、DQL查询语句-limit语句(掌握)

能够掌握limit语句的使用

作用:

LIMIT`是`限制`的意思,所以`LIMIT`的作用就是限制查询记录的条数。

LIMIT语句格式:

select * from 表名 limit  offset, row_count;
mysql中limit的用法:返回前几条或者中间某几行数据
-- 1 表示分页查询的索引,对应数据表是第二行数据,4表示每页显示4条数据
select * from 表名 limit 1,4。
1表示索引,注意这里的索引从0开始。对应表中第一行数据
4表示查询记录数。
上述就表示从第2条记录开始查询,一共查询4条,即到第5条。

查询学生表中数据,跳过前面1条,显示4条

我们可以认为跳过前面1条,取4条数据
SELECT * FROM student3 LIMIT 1,4;

LIMIT语句的使用格式?

1、

SELECT 字段 FROM 表名 LIMIT 索引, 显示条数;
索引:从0开始,一直变化
显示条数:每页显示的行数,固定不变的

2、

SELECT 字段名(5) FROM 表名(1) WHERE 条件(2) GROUP BY 分组列名(3) HAVING 条件(4) ORDER BY 排序列名(6) LIMIT 跳过行数, 返回行数(7);
执行顺序:1234567

2、数据库约束的概述

讲解

数据库约束的作用

对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。

约束种类
  • PRIMARY KEY: 主键约束
  • UNIQUE: 唯一约束
  • NOT NULL: 非空约束
  • DEFAULT: 默认值 了解
  • FOREIGN KEY: 外键约束

3、主键约束(掌握)

通常不用业务字段作为主键,单独给每张表设计一个id的字段,把id作为主键。主键是给数据库和程序使用的,不是给最终的客户使用的。所以主键有没有含义没有关系,只要不重复,非空就行

创建主键

主键:PRIMARY KEY

主键的特点

  • 主键必须包含唯一的值
  • 主键列不能包含NULL值

创建主键方式:

字段名 字段类型 PRIMARY KEY

在已有表中添加主键(了解)

ALTER TABLE 表名 ADD PRIMARY KEY(字段名);

4、主键自增

主键如果让我们自己添加很有可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值

    字段名 字段类型 PRIMARY KEY AUTO_INCREMENT

AUTO_INCREMENT` 表示自动增长(字段类型必须是整数类型)

5、唯一约束

唯一约束的作用

在这张表中这个字段的值不能重复

唯一约束的基本格式
字段名 字段类型 UNIQUE

6、非空约束

这个字段必须设置值,不能是NULL

非空约束的基本语法格式

字段名 字段类型 NOT NULL

主键约束和唯一约束并且非空的区别: id primary key 主键约束 可以实现主键自增,一般数据表只有id是主键约束 name unique not null 唯一并且非空 不能实现主键自增 数据表中很多字段都可以是唯一 非空

7、默认值

字段名 字段类型 DEFAULT 默认值

相关文章:

  • Linux增加一个回收站功能(实用功能)
  • 算法复杂度之时间复杂度
  • PMA TB40-1 限温器Temperature limiter TB 40-1 手测
  • SpringBoot整合JPA实现CRUD详解
  • 【珠海一号卫星】
  • 鼎阳加油-IOC关键技术问题的解决记
  • 柯桥韩语学校|韩语每日一词打卡:회갑연[회가변]【名词】花甲宴
  • 怎么通过AI大模型开发一个网站?
  • 计算机网络回顾
  • 【WRF运行第三期】服务器上运行WRF模型(官网案例-Hurricane Matthew)
  • 科技云报到:以数据“价值三角”为擎,探索数据治理实践路径
  • 基于Springboot投稿和稿件处理系统设计与实现
  • list模拟实现(部分)
  • 什么是托管安全信息和事件管理 SIEM?
  • 机器学习-朴素贝叶斯
  • 「译」Node.js Streams 基础
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Angularjs之国际化
  • CAP理论的例子讲解
  • Create React App 使用
  • iOS 系统授权开发
  • JAVA之继承和多态
  • JS学习笔记——闭包
  • Netty源码解析1-Buffer
  • Odoo domain写法及运用
  • PHP面试之三:MySQL数据库
  • SpringBoot 实战 (三) | 配置文件详解
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 基于游标的分页接口实现
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 盘点那些不知名却常用的 Git 操作
  • 如何在 Tornado 中实现 Middleware
  • 实习面试笔记
  • 使用Gradle第一次构建Java程序
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 学习ES6 变量的解构赋值
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 译米田引理
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​queue --- 一个同步的队列类​
  • ​比特币大跌的 2 个原因
  • "无招胜有招"nbsp;史上最全的互…
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)springboot教学评价 毕业设计 641310
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十五)、把自己的镜像推送到 DockerHub
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全