MySql--增删改查表设计总结

devtools/2024/11/14 7:34:43/

一、客户端和数据库操作

1.登录 mysql -uroot -p

2.查看当前的数据库版本 show version();

3.显示所有的数据库 show databases;

4.创建数据库 create [if not exists] databases 数据库名 character set 字符编码集 collate 排序规则;

5.选择数据库 use 数据库名;

6. 查看当前选择了哪个数据库 select database();

7.删除数据库 drop [if exists] databases 数据名;

8.查看警告信息 show warnings;

9.退出 quit/exit

二、表操作

1.查看当前数据库中有哪些表 show tables;

2.创建一张新表 cteate table 表名(列表/字段名/数据类型[列表/字段名 数据类型]....);

3.查看表结构 desc 表名;

4.删除表 drop 表名;//非常危险的操作,不建议使用。

三、CRUD增删改查

1.新增 - 插入

  insert into 表名 [(列名[,列名]...)] values (值[,值]...);

  指定了多少列名,就需要指定多少值,值与列名一一对应,不指定列名,值的顺序与个数和表中所有的列一一对应。

2.查询操作

  a.全列查询 select * from 表名;//不加限制的查询会把表中所有数据查询出来

  b.指定列查询 select 列名[,列名]... from 表名;//推荐使用

  c.列为表达式的查询 select 列名/表达式 from 表名;

  d.别名查询 select 列名/表达式 [as] 别名 from 表名;//别名中如果包含空格,需要用单引号引出来。

  e. 去重查询 select distinc 列名[,列名]... from 表名;//如果列名有多个,去重时只有所有的列都相等,才会判定为重复,才会去重;

  f. 排序 select 列名[,列名]... from 表名 order by 列名 asc||desc;//asc升序,desc降序。

  g.条件查询 select 列名[,列名]... from 表名 where 列名/表达式 比较/逻辑运算符 order by 列名 asc||desc;

  h. 区间查询 select 列名[,列名]... from 表名 where 列名 between 开始条件 and 结束条件;//等价于 开始条件<=列的值<=结束条件。

  i. 模糊查询 select* from 表名 where 列名 like ‘%值_’;//%匹配任意字符,_匹配单个字符。

  j. 分页查询 select * from 表名 order by 列名 asc||desc limit num;//查询前num条记录。

                     select * from 表名 order by 列名 asc||desc limit start num;//从第start条开始,查询num条。

                     select * from 表名 order by 列名 asc||desc limit num offset start;//从第start条开始,查询num条数据。

四、更新

updata 表名 set 列名=值 where 条件 order by 子句 limit num;//如果不指定条件和limit的数量就会更新整表。

五、删除

delete from 表名 where 条件 order by 子句 limit num;//如果不指定条件和limit的数量就会删除整表的数据。

六、数据库约束

1.非空约束:NOT NULL 标记一个字段是否可以为空,指定了这个约束,字段就不能为空。

2.唯一约束:UNIQUE 标记一个字段的内容在当前列中唯一,不能重复,但是可以为NULL

3.主键约束:PRIMARY KEY,在约束的方式上相当于 NOT NULL +UNIQUE

4.默认约束:DEFAULT 当一个字段没有指定值时(为NULL时),不指定的列的值时,就用默认值去填充该列

5.外键约束:FOREIGN KEY 一个表中的字段与另一个表中的主键建立关联关系,当对表中的数据进行增删改的时候数据库会帮我们进行检查。

七、表的设计

三大范式

  1.第一范式:要求表的每一个列不可再分,有一个简单的方法,数据库中提供的数据类型可以描述这个字段,不满足第一范式的数据库就不是关系型数据库

  2.第二范式:在第一范式的基础上,消除部分函数依赖,只能出现在有复合主键的表中(多个候选键),如果有一个不满足第二范式的情况下会出现一些数据异常:数据冗余、更新异常、删除异常、新增异常

  3.第三范式:在第二范式的基础上,消除传递依赖

关系模型

  1.一对一关系:各自先建立各自的表,在其中一张表中加一个字段完成对另一张表的引用(建立关系)

  2.一对多关系:各自先建立各自的表,在一这一方设置一个主键,在多这一方加一个字段,两表建立引用关系。

  3.多对多关系:各自先建立各自的表,另外新加一张关系。 


http://www.ppmy.cn/devtools/133862.html

相关文章

10款PDF翻译工具的探索之旅:我的使用经历与工具特色!!

在如今的时代&#xff0c;PDF文件已经成为我们工作、学习和生活中不可或缺的一部分。但是&#xff0c;当遇到一些非母语或陌生语言的PDF文档时&#xff0c;这要怎么办呀&#xff01;这时候翻译工具就显得尤为重要了。这也是我所遇到过的难题&#xff0c;现在我将与大家分享几款…

每日一题C语言算法题——计算6

对于中国人来说6是一个很神奇的数字&#xff0c;计算 666666...666...666(n个6&#xff0c;5<n<10)的和。 输入格式: 输入一个n值&#xff0c;5<n<10 输出格式: 在一行中输出计算和的值&#xff0c;如果n的值小于5或者大于10&#xff0c;输出为“Error Input”…

【嵌入式】ESP32开发(一)ESP-IDF概述

文章目录 1 前言2 IDF环境配置3 在VS Code中使用IDF3.1 使用ESP-IDF例程3.2 底部按钮的作用【重要!】3.3 高级用法4 ESP-IDF框架分析5 从零开始创建一个项目5.1 组件(component)6 主要参考资料7 遇到的一些问题与解决办法8 对于ESP-IDF开发的一些感受1 前言 对于ESP32的开发…

xtu oj 聚会

文章目录 回顾代码思路 回顾 AB III问题 H: 三角数问题 G: 3个数等式 数组下标查询&#xff0c;降低时间复杂度1405 问题 E: 世界杯xtu 数码串xtu oj 神经网络xtu oj 1167 逆序数&#xff08;大数据&#xff09;xtu oj 原根xtu oj 不定方程的正整数解xtu oj 最多的可变换字符串…

移动硬盘需要格式化才能打开?详解原因与数据恢复方案

描述移动硬盘需要格式化才能打开 当我们尝试访问移动硬盘时&#xff0c;有时会遇到系统提示“需要格式化才能打开”的情况。这种提示通常意味着硬盘上的文件系统已损坏或无法被系统正常识别。一旦遇到这种情况&#xff0c;很多用户会感到焦虑&#xff0c;因为硬盘中可能存储了…

Logback 日志介绍及与Spring Boot 的整合 【保姆级教程】

Logback介绍 Logback是SpringBoot框架的默认的日志&#xff0c;内容如下图所示&#xff1a; Log4J 的创始人 Ceki Glc 和另一位 Log4J 贡献者 Sbastien Pennec 设计了 ​​logback。他们设计的 Logback 具有快速和通用的特性&#xff0c;可以在不同的环境下工作。 Logback 由…

11.9.2024刷华为

文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费&#xff0c;看毛线&#xff0c;莫名奇妙 HW这叼机构别搁这儿害人得不得&#xff1f; 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处&#xff0c;就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…

MySQL常用订单表复杂查询15例

MySQL常用订单表复杂查询15例 在电子商务平台中&#xff0c;我们通常需要处理大量的数据查询任务。本文将介绍十五个复杂的 MySQL 查询任务及其示例代码。需要mysql8.0.X以上环境进行测试&#xff0c;因为使用到了窗口函数。 假设我们有一个电子商务平台&#xff0c;包含以下…