学习MySQL 02.
发布日期:2021-05-10 23:24:20 浏览次数:24 分类:精选文章

本文共 2124 字,大约阅读时间需要 7 分钟。

MySQL数据库操作指南

自定义起始值

MySQL数据库支持自增列,允许开发者自定义起始值和步长。自增列通常用于记录唯一的主键值,MySQL默认起始值为1,步长为1。此外,还可以通过设置会话或全局变量,来实现自定义起始值和步长。

设置自增列的起始值

可以通过ALTER TABLE命令来修改表内自增列的起始值。例如:

ALTER TABLE t1 AUTO_INCREMENT = 2

设置自增列的步长

对于自增列的步长,可以通过以下方式实现:

  • 会话级别设置:
  • SET SESSION auto_increment_increment=2;  // 设置步长为2  
    SET SESSION auto_increment_offset=10; // 设置起始值,默认不建议修改
    1. 全局级别设置:
    2. SET GLOBAL auto_increment_increment=2;  // 设置步长为2  
      SET GLOBAL auto_increment_offset=10; // 设置起始值,默认不建议修改

      唯一索引与主键

      唯一索引与主键的功能类似,均用于保证数据唯一性。然而,主键不能为null,而唯一索引可以允许为空。唯一索引还能提高查询效率。联合索引可以用于联合唯一约束,避免空值冲突。

      外键设计

      外键关系主要分为一对一、一对多和多对多。对于一对多或多对多关系,可以通过检查约束(CHECK)来避免误列,但这并非强制约束。如果需要确保一对多关系的唯一性,可以使用联合唯一约束。

      MySQL操作指南

      以下是MySQL常用操作的语法示例:

      插入语句

      INSERT INTO tb(name, age) VALUES("alex", 18), ("root", 20);

      数据复制

      INSERT INTO tb2(name, age)
      SELECT name, age FROM tb;

      删除语句

      DELETE FROM tb WHERE id > 2 AND name = "alex";

      更新语句

      UPDATE tb SET name = "alex" WHERE id > 2 AND name = "xx";

      查询语句

      SELECT * FROM t1;  // 查询所有字段
      SELECT id, name FROM t1; // 仅查询指定字段
      SELECT id, name AS cname FROM t1 WHERE id > 2 OR name = "xx"; // 别名查询

      通配符查询

      SELECT * FROM tb1 WHERE name LIKE "%a&%";  // 查询含有指定字符的数据
      SELECT * FROM tb1 WHERE name LIKE "%a_%"; // 查询以特定字符结尾的数据

      分页查询

      SELECT * FROM tb1 LIMIT 10;  // 偏移0页,默认显示第一10条
      SELECT * FROM tb1 LIMIT 10, 20; // 偏移10页,显示下20条
      SELECT * FROM tb1 LIMIT 20 OFFSET 10; // 偏移10条,显示下20条

      排序操作

      SELECT * FROM tb ORDER BY id DESC;  // 按id倒序排列
      SELECT * FROM tb ORDER BY id ASC; // 按id升序排列
      SELECT * FROM tb ORDER BY id DESC LIMIT 10; // 按id降序排列显示前10条

      分组与聚合

      SELECT count(id), part_id FROM userinfo5 GROUP BY part_id;  // 按part_id分组并计算id数量
      SELECT count(id), max(id), part_id FROM userinfo5 GROUP BY part_id HAVING count(id) > 1; // 按条件筛选分组结果

      连表查询

      SELECT * FROM userinfo5, department5 WHERE userinfo5.part_id = department5.id;  // inner join 示例
      SELECT * FROM userinfo5 LEFT JOIN department5 ON userinfo5.part_id = department5.id; // left join 示例
      SELECT * FROM userinfo5 RIGHT JOIN department5 ON userinfo5.part_id = department5.id; // right join 示例

      排序与连接操作

      通过排序和连接操作,可以显著提升查询效率。对于多表连接,建议优先使用INNER JOIN,并结合LEFT JOINRIGHT JOIN根据需求选择合适的关联类型。

      数据库操作是数据库开发的核心内容,熟练掌握SQL语法和优化技巧,可有效提升数据库性能和开发效率。

    上一篇:学习MySQL 03
    下一篇:ant中vue-table的使用(排序 搜索筛选)

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月19日 14时49分48秒