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

embedded/2024/11/17 7:33:27/

一、客户端和数据库操作

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/embedded/138199.html

相关文章

从二维到一维:动态规划矩阵问题的优化之道

动态规划中的矩阵问题是非常经典的应用场景&#xff0c;比如最小路径和问题。这类问题很自然地可以想到使用二维 dp 数组来求解。 我们定义&#xff1a; dp[i][j] 表示从矩阵的第 i行第 j列到右下角的最小路径和。 基本解法 求解过程从右下角开始&#xff0c;向左上角遍历&am…

第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字

文章目录 第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字TCP设备的OPEN和USE命令关键字TCP设备的OPEN和USE命令关键字 第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字 TCP设备的OPEN和USE命令关键字 可以使用位置参数(如上所述)或关键…

python爬虫获得店铺的所有商品

在编写Python爬虫以获取店铺的所有商品信息时&#xff0c;通常涉及到发送HTTP请求、解析响应内容以及处理API返回的数据。以下是一个详细的Python爬虫示例&#xff0c;用于获取店铺的商品信息。这个示例假设API返回的是JSON格式的数据&#xff0c;并且需要API密钥进行认证。 步…

mybatis在mapper.xml中怎么处理大于、小于、不等于号

第一种方法&#xff1a; 使用转义字符 大于号>>大于等于号>>小于号<< 小于等于号<<与&&amp;双引号"&quot;单引号&apos; 第二种方法&#xff1a; 使用<![CDATA[ ]]> 因为xml格式遇到这种格式会把方括号里的内容原样输…

2024华为java面经

华为2024年Java招聘面试题目可能会涵盖Java基础知识、核心技术、框架与工具、项目经验以及算法与数据结构等多个方面。以下是考的内容。 一、Java基础知识 Java中有哪些基本数据类型&#xff1f; Java为什么能够跨平台运行&#xff1f; String是基本数据类型吗&#xff1f;能…

相机光学(四十四)——ALL-PD和PDAF

1.PDAF&#xff08;Phase Detection Auto Focus&#xff09; PDAF是相位检测自动对焦技术的缩写&#xff0c;它是一种在数码相机和智能手机摄像头中使用的自动对焦技术。   PDAF的原理是根据CIS&#xff08;CMOS图像传感器&#xff09;不同像素的相位差信息&#xff0c;判断出…

Ubuntu23.10下解决C语言调用mysql.h问题

Ubuntu23.10下解决C语言调用mysql.h问题 导语环境准备问题和解决方案总结参考文献 导语 在学习C语言和MySQL的调用的时候遇到包和版本的问题&#xff0c;由于使用的书很老&#xff08;10年的&#xff09;&#xff0c;因此很多MySQL的包已经过时&#xff0c;在查找很多资料和询…

算法【Java】—— 动态规划之简单多状态 dp 问题

按摩师 https://leetcode.cn/problems/the-masseuse-lcci 状态表示&#xff1a;根据经验和题目要求&#xff0c;达到 i 位置的时候&#xff0c;预约时间最长 接着我们细分状态表示&#xff1a;在遍历数组的时候&#xff0c;到达 i 位置的时候&#xff0c;又两种情况&#xff…