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() 函数是按照小数位数进行数值截取,没有四舍五入。

 

Linux 安装 MySQL 的步骤如下: 1. 下载 MySQL安装包,在 MySQL 官网下载对应版本的安装包。 2. 安装依赖,在终端输入命令:sudo apt-get install libaio1 3. 解压缩安装包,在终端输入命令:sudo tar -zxvf MySQL-5.7.19-linux-glibc2.12-x86_64.tar.gz 4. 创建数据库目录,在终端输入命令:sudo mkdir /usr/local/mysql 5. 将解压缩的文件移动到数据库目录下,在终端输入命令:sudo mv mysql-5.7.19-linux-glibc2.12-x86_64/* /usr/local/mysql/ 6. 创建软连接,在终端输入命令:sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 7. 初始化数据库,在终端输入命令:sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 8. 启动 MySQL,在终端输入命令:sudo /usr/local/mysql/support-files/mysql.server start 9. 设置 MySQL 开机自启,在终端输入命令:sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server 10. 登录 MySQL,在终端输入命令:mysql -u root -p, 然后输入 root 密码(默认为空密码)。 完成了上述步骤就可以使用 MySQL 了。 注意:以上步骤仅为大致操作流程,实际安装过程中可能会有一些变化。 如果有任何问题请确保你的系统是最新的并且确保你使用的是正确的版本的安装包,这个版本需要与你的Linux版本相对应。 还有在进行上述操作之前需要保证你已经安装了系统必要的依赖包,如gcc,make等。 安装完成之后为了保证数据安全,请修改初始密码并且做好备份。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值