MySQL编程知识点总结

一 .数据的插入,更新与删除

数据的插入:  

1.INSERT INTO VALUES 这是最简单和最常见的插入数据方法。语法如下:

 2.SERT INTO SELECT 该方法可以将一个表中的数据拷贝到另外一个表中。语法如下:

3.LOAD DATA INFILE 该方法可以从本地文件系统中导入数据到数据库中。语法如下:

 数据的更新:

1.UPDATE SET 该方法可以更新指定列的值,语法如下:

2.UPDATE JOIN 该方法可以更新多个表之间的关联数据,语法如下:

 

数据的删除:

1.DELETE FROM 该方法可以删除表中指定的记录,语法如下:

2. TRUNCATE TABLE 该方法可以删除表中的所有记录,但不删除表本身。与DELETE不同,TRUNCATE操作通常比DELETE操作更快,因为它不需要逐个删除记录,而是直接删除整个表中的数据。语法如下:

3.DROP TABLE 该方法可以删除整个表,包括表结构及其所有数据。语法如下:

二. 数据完整性的实现 

1.数据完整性的概念:

在数据库中,数据完整性(Data Integrity)指的是数据的准确性、一致性和有效性。为了保证数据的完整性,常见的方法包括以下几种:

(1)实体完整性 实体完整性(Entity Integrity)指的是表中每条记录都有一个唯一的标识符,即主键限制,可以保证每条记录的唯一性。同时,还可以使用非空约束,保证某个字段不为空。

(2)参照完整性 参照完整性(Referential Integrity)指的是用于保证表之间的关联关系和数据的一致性。通常使用外键(Foreign Key)来表示两个表之间的关联关系。通过约束外键的引用关系和级联操作,可以确保当父表中的数据发生变化时,子表中的外键也自动更新或删除。

(3)唯一性约束 唯一性约束(Unique Constraint)指的是保证某个字段的值唯一。使用唯一性约束,可以避免重复的数据出现,同时可以提高查询效率。

(4)检查约束 检查约束(Check Constraint)是一种对字段值进行逻辑判断的方法。使用检查约束,可以保证某个字段只能输入特定的值或符合特定的条件,例如日期格式、数字范围等。

 2.域完整性:

1.默认值约束:

添加默认值约束

删除默认值约束

 2.非空约束:

添加非空约束

修改非空约束

删除非空约束

 

3.实体完整性:

 1.主键约束:

修改表并指定主键

 

 删除主键约束

 

 2.唯一约束:

修改表并指定唯一约束

 

删除唯一约束

 

3.自增约束:

修改表并指定自增约束 MySQL中只支持将整型列改为自增列,所以修改表时只需添加AUTO_INCREMENT即可。语法如下:

 

4.参照完整性: 

1.修改表并指定外键约束 MySQL中的ALTER TABLE语句可以添加或删除外键约束。语法如下:

2.删除外键约束:

三. 单表查询

1.基础查询

查询一个表中的所有数据

查询特定列中的数据

 

2.条件查询

 3.排序查询

4.分组查询

四. 多表查询

1.连接查询:

内连接用于查询两个表中共有的数据,即只返回两个表中都存在的记录。

 左连接用于查询左表中的所有记录以及在右表中有匹配的记录。

右连接用于查询右表中的所有记录以及在左表中有匹配的记录。 

 

交叉连接用于查询左表和右表中的所有记录,并将匹配的记录合并在一起。 

2.子查询 :

标量子查询返回一个单一的值,通常在WHERE子句或SELECT列表中使用。

 列子查询返回一个列集合,在FROM子句中可以把它看作是一个虚拟表,也可以使用IN或ANY关键字来过滤数据。

行子查询返回一个行集合,在FROM子句中可以把它看作是一个虚拟表,可以使用JOIN操作来将其与其他表连接。

3.联合查询:

UNION UNION用于合并两个或多个结果集,去除重复行,并按照SELECT语句指定的顺序排序。

UNION ALL UNION ALL用于合并两个或多个结果集,不去除重复行。

 

4.将结果存入表中:

INSERT INTO 表名

SELECT查询语句

五. 视图与索引 

1.视图:

创建视图:

  • CREATE VIEW语句需要具有CREATE VIEW权限;
  • 视图的数据是基于其定义的SELECT语句中的数据推算出来的,不会像普通表一样存储数据,这意味着对视图的操作实际上会影响到底层表中的数据;
  • 视图可以像普通表一样进行SELECT、UPDATE、DELETE和INSERT等操作,但是存在一些限制,如不能引用临时表、不能使用ORDER BY子句和GROUP BY子句等;
  • 应该注意,视图可以被另一个视图所引用,从而构建更复杂的查询,但是过度使用视图会影响查询性能,应该谨慎使用。

2.索引:

创建索引 语法:

删除索引 语法:

 六. 数据库编程

 1.函数:

分为内置函数和自定义函数

内置函数分为

  • CONCAT():用于将两个或多个字符串连接为一个字符串。
  • SUBSTR():用于截取字符串的一部分。
  • REPLACE():用于替换字符串中的子串。
  • ROUND():用于对一个数字进行四舍五入。
  • ABS():用于返回一个数字的绝对值。
  • POW():用于计算一个数字的指定次幂。
  • NOW():用于获取当前日期和时间。
  • DATE_FORMAT():用于将日期和时间格式化为指定的字符串。
  • DATEDIFF():用于计算两个日期之间的差值。

创建自定义函数语句:

  • 创建自定义函数需要具有相应的权限;
  • 函数名应该具有描述性,并且不能与系统内置函数或关键字重名;
  • 函数的参数和返回类型可以是任意 MySQL 数据类型,但是需要与函数体中的代码保持一致;
  • 在函数体中可以使用 DECLARE 语句声明局部变量,用于存储中间结果;
  • 在函数体中可以使用 IF、WHILE、FOR、CASE 等语句构建复杂的逻辑,完成具体的计算或处理任务。

 2.存储过程及应用:

存储过程的概念:

MySQL 存储过程是一种预编译的代码块,它包含了多条 SQL 语句和控制逻辑,可以像执行函数一样被调用。存储过程可以接受输入参数和返回输出结果,在数据库端执行,可以提高数据处理效率和安全性。

存储过程可以完成复杂的业务逻辑,例如根据一系列条件查询数据、进行数据转换和计算、执行批量操作等,可以通过 CALL 语句调用存储过程,并传递必要的参数。

创建存储过程语句:

调用存储过程需要使用 CALL 语句 

3.变量

 在 MySQL 中创建变量使用的是 SET 语句或 DECLARE 语句

 MySQL 中的变量可以是以下主要数据类型:

  • 整数型(INT)
  • 浮点数型(FLOAT)
  • 字符串型(VARCHAR)
  • 日期型(DATE, DATETIME, TIMESTAMP)
  1. 变量的作用范围:MySQL 中的变量可以分为会话变量和局部变量两种。会话变量在整个会话中都可见,而局部变量只在特定的块或存储过程中可见。
  2. 变量的生命周期:MySQL 中的变量有两种生命周期:一种是会话周期,在连接建立后一直保持到连接关闭;另一种是块级周期,在代码块中声明的变量只在该块中有效,块执行完毕后会被自动删除。

MySQL 中可以使用 SELECT 或 SET 语句来获取或修改变量的值

4.控制流程:

 IF 语句根据条件判断是否执行特定的语句块。

CASE 语句也是一个条件分支结构,可以在有多个条件时选择执行哪段代码。

WHILE 语句是循环执行语句块直至条件不成立。

LOOP 语句用于循环执行语句块,直到达到指定条件才停止循环。

REPEAT 语句是另一种循环结构,不同于 WHILE 和 LOOP 循环只在条件满足时继续循环,REPEAT 循环在条件满足时停止。

IFNULL 函数用于返回第一个非空值。如果第一个参数不为空,则返回第一个参数的值,否则返回第二个参数的值。

5.触发器 :

创建触发器的语法如下:

BEFORE 和 AFTER 触发器

MySQL 中有两种触发器类型:BEFORE 和 AFTER,它们的区别在于触发的时间不同。BEFORE 触发器是在 INSERT、UPDATE 或 DELETE 操作执行前自动触发,而 AFTER 触发器则是在操作执行完成后自动触发。

NEW 和 OLD 变量

在触发器中,可以使用 NEW 和 OLD 变量来引用即将插入或修改的数据和旧的数据。NEW 引用新数据,OLD 引用旧数据。在 INSERT 操作中,只有 NEW 变量;在 UPDATE 操作中,旧值存储在 OLD 变量中,新值存储在 NEW 变量中;在 DELETE 操作中,只有 OLD 变量。

DISABLE 和 ENABLE 触发器

DROP 触发器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值