美文网首页
2021-11-02 RD4 review SQL

2021-11-02 RD4 review SQL

作者: JSleefat | 来源:发表于2021-11-02 15:57 被阅读0次

安装

  • 服务mysql
  • 可视化软件 navicat

关系模型

  • 主键
PRIMARY KEY BIGINT NOT NULL AUTO_INCREMENT
  • 外键
ALTER TABLE students
ADD CONSTRAINT fk_class_id
FOREIGN KEY (class_id)
REFERENCES classes (id);
  • 索引
ALTER TABLE students
ADD INDEX idx_score (score);

查询数据

  • 基本查询
SELECT * FROM students;
  • 条件查询
SELECT * FROM students WHERE score >=80;
  • 投影查询
SELECT id, name, score FROM students
  • 排序
SELECT id, name, score FROM students 
ORDER BY score DESC
  • 分页查询
SELECT id, name, score FROM students 
ORDER BY score DESC
LIMIT 3 OFFSET 0;
  • 聚合查询
SELECT count(*) FROM students;
  • 多表查询
SELECT * FROM students, classes;
  • 连接查询
  1. 内连接
SELECT s.id, s.name, c.name class_name, s.score
FROM students s
INNER JOIN classes c
ON s.class_id = c.id;
  1. 外连接
SELECT s.id, s.name, c.name class_name, s.score
FROM students s
RIGHT OUT JOIN classes c
ON s.class_id = c.id;

修改数据

  • INSERT
  1. 单条记录
INSERT INTO students( class_id, name, score) VALUES (2, 'wang', 80);
  1. 多条记录
INSERT INTO students( class_id, name, score) VALUES 
(2, 'wang', 80),
(2, 'wang', 80);
  • UPDATE
UPDATE students SET score = '88' WHERE id = 1
  • DELETE
DELETE FROM students WHERE score = '99'

事务

数据库事务具有ACID这4个特性

  • A: Atomic 原子性
    将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行
  • C: Consistent 一致性
    事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100
  • I: Isolation 隔离性
    如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离
  • D: Duration 持久性
    事务完成后,对数据库数据的修改被持久化存储

普通事务

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

回滚

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
ROLLBACK;

资料参考:

相关文章

网友评论

      本文标题:2021-11-02 RD4 review SQL

      本文链接:https://www.haomeiwen.com/subject/oezxzltx.html