Mysql知识点合集2

一、向表evaluate的成绩列添加成绩,从表grade中的成绩一列提取记录

INSERT INTO evaluate(evaluate.point)

SELECT grade.point FROM grade

格式:insert into 表名1(表名1.列名)

           select 表名2.列名 from 表名2

在使用insert语句插入数据时,表达式的数据类型和表格中对应各列的数据类型必须一一对应

二、MySQL 中不直接支持的 FULL OUTER JOIN 操作 

MySQL 8.0.25 不支持 FULL OUTER JOIN,因此执行报错。FULL OUTER JOIN 是一种在 MySQL 中并不直接支持的连接类型,通常需要通过 UNION 来实现。

为了得到所需的结果,你可以使用以下方式来模拟 FULL OUTER JOIN

  1. 使用 LEFT JOINRIGHT JOIN 结合 UNION
  2. 对每个 LEFT JOINRIGHT JOIN 的结果集去重

示例:

CREATE TABLE student_table (
    id INT,
    name VARCHAR(50),
    birth DATE,
    sex VARCHAR(10)
);

INSERT INTO student_table (id, name, birth, sex) VALUES
('1004', '张三', '2000-08-06', '男'),
('1009', '李四', '2000-01-01', '男'),
('1010', '李四', '2001-01-01', '男'),
('1006', '王五', '2000-08-06', '女'),
('1008', '张三', '2002-12-01', '女'),
('1012', '张三', '2001-12-01', '女'),
('1011', '李四', '2002-08-06', '女');

 模拟 FULL OUTER JOIN 的查询

SELECT t1.*, t2.*
FROM (SELECT * FROM student_table WHERE sex = '男') t1
LEFT JOIN (SELECT * FROM student_table WHERE sex = '女') t2
ON t1.name = t2.name
UNION
SELECT t1.*, t2.*
FROM (SELECT * FROM student_table WHERE sex = '男') t1
RIGHT JOIN (SELECT * FROM student_table WHERE sex = '女') t2
ON t1.name = t2.name;
  • 张三(男)会匹配到两个张三(女),产生两行。
  • 李四(男)会匹配到一个李四(女),产生两行。
  • 王五(女)没有匹配的男生,会产生一行。一共5 行。

三、count()函数

count()函数有两种使用方式:1、使用count(*)对表中的行数进行计数,此种用法不忽略null值;2、使用count(column)对特定列中具有值的行进行计数,此种用法忽略null值。

四、修改表结构ALTER TABLE 

对表的结构修改属于。DDL语句。常用公式。

添加列: ALTER TABLE   表名   add 字段名

修改列:  ALTER TABLE   表名   modify 字段名

删除列:  ALTER TABLE   表名   drop 字段名

与INSERT不同:INSERT 语句用于向表中插入数据行,而不是修改表结构

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

五、IN 与 BETWEEN  AND

1、in(30,40) 代表的不是范围30~40,而是类似一个数组[30,40],放在 where 子句后面就是查看要查询的数据中是否存在30或40

2、between...and...就是范围

六、数据库管理系统中的锁模式

A. 共享锁(Shared Lock)

  • 共享锁允许多个事务同时读取资源,但不允许修改。多个共享锁可以同时存在于同一资源上,但不能与排他锁同时存在。

B. 更新锁(Update Lock)

  • 更新锁是一种特殊的锁,用于避免死锁情况。它允许一个事务读取资源,并准备对其进行修改。如果资源上的更新锁被一个事务持有,则其他事务只能获得共享锁,但不能获得排他锁或另一个更新锁。

C. 排他锁(Exclusive Lock)

  • 排他锁确保只有一个事务能够修改资源。当一个事务持有排他锁时,其他事务不能获得任何类型的锁(共享锁、更新锁、或排他锁)在该资源上。这确保了同一资源不会同时进行多重更新。

D. 架构锁(Schema Lock)

  • 架构锁用于确保表结构的稳定性,比如在进行 DDL 操作(如 ALTER TABLE)时。它不直接用于数据修改操作。

七、TRUNCATE函数 与 ROUND函数

ROUND() 函数用于把数值字段舍入为指定的小数位数;

TRUNCATE() 函数是按照小数位数进行数值截取,没有四舍五入。

 

相关推荐

  1. 侧开知识2

    2024-07-18 20:22:04       18 阅读
  2. MySQL技术

    2024-07-18 20:22:04       33 阅读
  3. 计算机网络知识【王道计算机考研】

    2024-07-18 20:22:04       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 20:22:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 20:22:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 20:22:04       58 阅读
  4. Python语言-面向对象

    2024-07-18 20:22:04       69 阅读

热门阅读

  1. crontab文件只能有一个吗

    2024-07-18 20:22:04       22 阅读
  2. Linux系统如何安装pip pip3

    2024-07-18 20:22:04       21 阅读
  3. 深入解析:conda 与 pip 使用全攻略

    2024-07-18 20:22:04       20 阅读
  4. c字符串转go字符串

    2024-07-18 20:22:04       20 阅读
  5. Maxwell同步mysql binlog日志执行的几条数据库命令

    2024-07-18 20:22:04       20 阅读
  6. Andrey‘s Tree

    2024-07-18 20:22:04       21 阅读
  7. 2.设计模式--创建者模式--单例设计模式

    2024-07-18 20:22:04       19 阅读
  8. 编程中的智慧之设计模式二

    2024-07-18 20:22:04       22 阅读