MySQL
文章平均质量分 64
最全MySQL知识点整理!
耀个丸子~
这个作者很懒,什么都没留下…
展开
-
【MySQL】视图
view,由查询结果形成的一个虚拟的表。视图不能索引,也不能有关联的触发器。作用:●重用SQL语句●简化查询语句,隐藏复杂的SQL例如经常使用的几个数据就可以当作一个表存下来,但是试图是不可以加索引的。原创 2024-05-23 09:25:37 · 233 阅读 · 0 评论 -
【MySQL】游标
cursorcursor,使用游标可以对存储过程或函数中的查询结果进行逐行处理。创建游标后,可以使用open语句打开游标,开始执行游标指定的查询语句并生成结果集。在游标打开得到结果集后,可以使用fetch语句访问它的每一行。游标处理完成后,应关闭游标,释放游标使用的内存和资源。原创 2024-05-22 14:56:36 · 227 阅读 · 0 评论 -
【MySQL】InnoDB中的锁
加行锁可以解决不可重复读,但是解决不了幻读,加范围数可以解决幻读;排他锁在写入的时候自动加入。但是别人读不到,影响效率。这时候用快照解决,读的是上一个版本,共享锁和排他锁●共享锁(S Lock):读锁,允许事务读取数据●排他锁(X Lock):也叫独占锁,写锁,允许事务删除或更新数据如果事务获取了某个数据的共享锁,其他事务可以立即获得该数据的共享锁,这种情况叫锁兼容。如果事务获取了某个数据的共享锁或排他锁,其他事务想要获取该数据的排他锁,必须要等到该行的锁释放掉。原创 2024-05-23 09:34:41 · 489 阅读 · 0 评论 -
【MySQL】自定义函数
function。原创 2024-05-22 14:49:23 · 183 阅读 · 0 评论 -
【MySQL】*索引
加快查找速度,因为它把地址存下来,建立一个数据结构,如果是最基础的数据结构还是慢,再利用一些算法和数据结构。index,是存储引擎用于快速找到数据的一种数据结构。MySQL默认使用InnoDB存储引擎,该存储引擎是最重要、使用最广泛的,除非有非常特别的原因需要使用其他存储引擎,否则优先考虑InnoDB。索引优点:●减少服务器需要扫描的数据量●帮助服务器避免排序和临时表●索引可以将随机I/O变为顺序I/O,提高查询性能如果字段长度特别长,就不适合整个字段作为索引了。原创 2024-05-23 09:22:59 · 958 阅读 · 0 评论 -
【MySQL】事务
事务A按id>5的条件进行多次查询,在多次查询中间,事务B插入了一条id为6的数据,事务A多次查询的。在SQL标准中定义了四种隔离级别,每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。●原子性(atomicity):事务是最小工作单元,不可再分,事务的所有操作要么全部提交成功,要么全部失败回滚,不可能只执行其中的一部分操作。,前后结果不一样就叫做不可重复读。事务A多次查询同一行数据,在多次查询中间,事务B对该行数据进行了修改,事务A多次查询同一行的数据就会不一致。原创 2024-05-23 09:31:18 · 744 阅读 · 0 评论 -
【C++】触发器
trigger写一个SQL语句时要触发另一个SQL语句trigger,在表的插入(insert)、更新(update)、删除(delete)操作发生时自动执行MySQL语句创建触发器时需要给出的信息:●触发器名●在操作前还是操作后触发(beforelafter)●被什么操作触发(insert/updateldelete)●关联的表使用触发操作的数据:● insert:可通过new访问被插入的行,before insert可以更新new中的值(允许更改被插入的值)。原创 2024-05-22 18:15:46 · 333 阅读 · 0 评论 -
【MySQL】*三范式
normal form 标准形式范式是关系型数据库设计的一种规范,目标是消除冗余,建立结构合理的数据库,从而提升数据存储和使用的性能。原创 2024-05-23 09:27:46 · 422 阅读 · 0 评论 -
【MySQL】存储过程
可移植性差:存储过程通常依赖于特定的数据库平台和版本,不同的数据库系统之间存储过程的语法和特性可能有差异,导致存储过程的可移植性较差。●in(默认)︰输入参数,存储过程的输入值,从外部传递给存储过程,存储过程内部是只读的,不能修改它的值。数据一致性:存储过程可以实现复杂的数据操作和事务处理,确保数据的一致性和完。●out:输出参数,存储过程的返回值,存储过程可以修改它的值并将其返回。安全控制:存储过程可以对数据库中的数据进行严格的访问控制和权限管理。开发调试复杂:需要通过特定的工具和技术进行,不方便调式。原创 2024-05-22 14:34:25 · 276 阅读 · 0 评论 -
【MySQL】约束
外键为表中的某一字段,该字段是另一表的主键值,外键用来在两个表的数据之间建立联结,一个表中可以有一个或多个外键。外键的作用是保持数据的一致性、完整性。3.主键只能有一个字段。o插入数据时,先插入父表数据,再插入子表数据。●外键字段可以为null,外键为空的数据也叫孤儿数据。o创建表时先创建父表,再创建子表。o删除时先删除子表,再删除父表。●有了外键引用之后,表分为父表和子表。●子表外键类型要与父表外键类型—致。非空,并且没给默认值,会报错。3.不适用可能修改的列作为主键。2.主键的值不应该被修改。原创 2024-05-21 12:37:37 · 381 阅读 · 0 评论 -
【MySQL】连接查询
自连接:在一个连接查询中,涉及的两个表都是同一张表的查询,自连接是一种特殊的连接查询,它指相互连接的表在物理上为同一张表,在逻辑上分为两张表。多表连接查询就是从多个表中获取数据,若两张表进行连接查询的时候没有任何条件限制,最终的查询结果总数是两张表记录的乘积,该现象称为笛卡儿积现象。A表和B表能够完全匹配的记录查询出来之外,将其中一张表的记录无条件的完全查询出来,对方表没有匹配的记录时,会自动模拟出null值与之匹配。根据连接条件从多个表中查询选择数据,显示这些表中与连接条件相匹配的行,组合成新的记录。原创 2024-05-21 20:01:08 · 404 阅读 · 0 评论 -
【MySQL】正则表达式
regexpregexp操作符,regexp操作符后面跟的就是正则表达式,正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。like和regexp的区别like 匹配整个列,如果被匹配的文本仅在列值中出现(没有配合其他通配符),like将不会找到它。regexp在列值内进行匹配,如果被匹配的文本在列值中出现,regexp将会找到它,相应的行将被返回。原创 2024-05-22 14:22:26 · 363 阅读 · 0 评论 -
【MySQL】子查询
子查询,嵌套在其他SQL语句内的查询语句,且必须出现在圆括号内(查询一般指select语句)。子查询的结果可以作为外层查询的过滤条件或计算字段。原创 2024-05-22 14:02:40 · 616 阅读 · 0 评论 -
【MySQL】表
字段:名字,类型,约束●整型●浮点型和定点型●日期时间类型 ●字符型查看表修改表插入、更新、删除、查询单条insert语句插入多条数据比多条insert语句快。更新表结构用alter 修改的是名字类型更新数据用update 修改的是值记得加where限制条件,否则更新整个表中的每一条数据 同样,不加限制条件会删除整个表中每—条数据。物理删除,无法恢复。注意:在对update或 delete使用where前,应该先用s原创 2024-05-21 12:15:38 · 279 阅读 · 0 评论 -
【MySQL】数据库的前提准备
●数据库管理系统(Database Management System,DBMS)︰数据库系统中对数据进行管理的软件系统。●数据库(Database,DB)︰按照特定的数据结构来组织、存储和管理数据的仓库。●表(Table):某种特定类型数据的结构化清单。●列(Column)或字段:表由一个或多个列组成,每个列有对应的数据类型。●行(Row)或记录:表中的数据是按行存储的,每行存储一条数据(记录)。●主键(Primary Key) : 一列(或一组列),它的值能够唯一区分表中每一行。原创 2024-05-20 15:23:18 · 748 阅读 · 0 评论 -
【MySQL】函数
●substr(str, n, len):截取子字符串,字符串str 从n的位置截取长度为len的字符串,如果n为负数,则子字符串的位置起始于字符串结尾的n个字符。●concat_ws(x,s1, s2,...):指定分隔符的字符连接函数,x是连接分隔符,如果分隔符为null,则结果为null。●round(x, y=O):四舍五入,将×四舍五入y位小数, y不传返回整数,y为负数时,保留x值到小数点左边y位。●curtime()/current_time():获取当前时间,HH:MM:SS格式。原创 2024-05-21 14:10:09 · 853 阅读 · 0 评论 -
【MySQL】分组查询
group by 分组后面不能用where 可以用having。原创 2024-05-21 14:14:07 · 257 阅读 · 0 评论 -
【MySQL】高级查询
●union自动去除了重复的行,如果允许重复行,请使用union all。2.查询1981年之后入职的员工,并按照员工薪水sal升序排序。10.查询所有的员工编号、员工名以及所有的部门编号和部门名。5.查询员工薪水在2000到3000的,按降序排列。8.查询出员工中薪水在5-8名的员工信息。1.按照员工的入职日期先后进行降序排序。3.按照部门升序,薪水降序显示员工信息。●每个查询必须包含相同数量的列。7.查询薪水最高的三名员工信息。6.取员工中前五人的数据。9.查询所有领导的编号。原创 2024-05-21 12:54:00 · 277 阅读 · 0 评论 -
【MySQL】基本查询
第二行和第四行结果相同,因为要验证的是3000和最低工资,最高工资的大小关系,3000比最高工资都低,那么一定比最低工资低。8.查询薪资等级中最低 losal或最高薪资hisal大于等于3000的薪资等级grade。3.查询sal大于1800,并且部门代码deptno为20或30的员工。7.查询薪资等级grade为2的最低薪资losal和最高薪资hisal。3.查询sal为1600到3000的员工编号、姓名、薪水。9.查询薪资等级grade为2或3或5的薪资等级信息。原创 2024-05-20 16:29:28 · 952 阅读 · 0 评论