MySQL crash course reading notes

2020/10/02

记录一些在读这本书《mysql 必知必会》时一些重要的概念。


1. 了解数据库

2. MySQL 简介

MySQL 命令行登录

mysql -u root -p

3. 使用 MySQL

4. 检索数据

mysql 命令行必须加上分号来结束 sql 语句。 sql 语句不区分大小写,但是对关键字进行大写更易于阅读。

5. 排序检索 (order by)

order by 子句位于 from 子句之后。

6. 过滤数据 (where)

10. 计算字段

11. 数据处理函数

12. 汇总数据

13. 分组数据 (group by / having)

14. subquery

15. 联结表 (join)

16. 创建高级联结

  1. 使用表别名 (AS)

17. update and delete

18. alter table

19. view

20. 其他

  1. mysql 注释

    #
    --
    /* */
    
  2. 在一行代码中插入多条数据

    insert into table_name values (), (), ...
    
  3. mysql 修改表名 (两种方法)

    • rename
    RENAME TABLE table_name TO ano.er_table_name;
    
    • ALTER TABLE table_name RENAME TO another_name
  4. replace 更改数据

    UPDATE table_name
    SET field_name = REPLACE(field_name, from_data, to_data)
    where xxx;
    
  5. set 关键字更新列 (用逗号连接多个)

    set col_name=new_data, col_name2=new_data2...
    
  6. 创建表

    CREATE TABLE IF EXISTS table_name
    (xxx,
    xxx,
    xxx,
    PRIMARY KEY(pid));
    
  7. substr()

    substr(字符串,起始位置,长度) 起始位置 =截取的子串的起始位置(注意:字符串的第一个字符的索引是 1)。值为正时从字符串开始位置 开始计数,值为负时从字符串结尾位置开始计数。 长度 =截取子串的长度

  8. add column in table

    ALTER TABLE table_name
    ADD column_name datatype
    
  9. primary key and unique index

    主键约束比唯一索引约束严格,当没有设定主键时,非空唯一索引自动称为主键。对于主键和唯一索引的一些区别主要如下:

    • 主键不允许空值,唯一索引允许空值
    • 主键只允许一个,唯一索引允许多个
  10. in 和 exists

SELECT * FROM A WHERE id IN (SELECT id FROM B);
-- 执行顺序:子查询 B -> 生成临时表 -> 主查询 A 从临时表查
SELECT * FROM A WHERE EXISTS (SELECT 1 FROM B WHERE A.id = B.id);
-- 执行顺序:主查询 A 每行 -> 执行子查询验证 -> 返回结果

解释:先执行外查询,对外查询的每一行,执行子查询进行验证。


MySQL 必备神器–mycli(补全)