MySql学习笔记

返回上一级 2026-1-14 #SQL# #数据库
2026-01-13

SQL 通用语法

  1. SQL 语句可以单行或多行书写, 必须以分号(;)结尾
  2. SQL 语句可以使用空格或缩进增强可读性, 不影响执行结果。
  3. MySQL 中 SQL 语句 不区分大小写, 但 关键字建议使用大写
  4. 注释写法:
    • 单行注释: -- 注释内容# 注释内容 (MySQL 特有)
    • 多行注释: /* 注释内容 */

学习理解:SQL 本身对格式并不敏感,但良好的书写规范 会极大降低维护成本,这一点在多人协作中尤为重要。

SQL 分类

  • DDL(数据定义语言): 用来定义数据库对象 (数据库、表、字段)
    • DDL-数据库操作
      • 查询(查询所有数据库)
      • SHOW DATABASES;
      • 创建
      • CREATE DATABASE 数据库名;
      • 删除
      • DROP DATABASE 数据库名;
      • 使用
      • USE 数据库名;
    • DDL-表操作
      • 查询(查询所有表)
      • SHOW TABLES;
      • 创建表
      • CREATE TABLE 表名(字段 字段类型);
      • 查看表结构
      • DESC 表名;
      • 查看建表语句
      • SHOW CREATE TABLE 表名;
      • 删除表
      • DROP TABLE 表名;
  • DML(数据操作语言): 用来对表中数据进行 增(INSERT)、删(DELETE)、改(UPDATE)
    • DML-插入数据
      • INSERT INTO students VALUES (...);
    • DML-修改数据
      • UPDATE students SET score=90 WHERE id=1;
    • DML-删除数据
      • DELETE FROM students WHERE score < 60;
  • DQL(数据查询语言): 用来查询数据库表中的数据
    • DQL-基础查询
      • SELECT * FROM students;
    • DQL-条件查询
      • SELECT * FROM students WHERE score >= 60;
    • DQL-分组查询
      • SELECT className, AVG(score) FROM students GROUP BY className;
    • DQL-子查询
      • SELECT * FROM students WHERE score > (SELECT AVG(score) FROM students);
  • DCL(数据控制语言): 用来控制数据库用户权限
    • GRANT SELECT ON test.* TO 'user'@'localhost';
    • REVOKE SELECT ON test.* FROM 'user'@'localhost';