MySQL的基本操作

发布于:2025-05-01 ⋅ 阅读:(23) ⋅ 点赞:(0)
  1. 显示所有数据库

     SHOW DATABASES;

    系统默认数据库:

    数据库名 用途
    information_schema 存储 MySQL 服务器元数据(如数据库、表、列信息),只读
    mysql 存储用户权限、密码、日志等核心数据(不要随意修改!
    performance_schema 用于监控 MySQL 性能指标(如查询耗时、锁等待等)
    sys 基于 performance_schema 的简化视图,提供更友好的性能分析
  2. 创建数据库

     CREATE DATABASE 数据库名;
  3. 选择/使用数据库

     USE 数据库名;
  4. 删除数据库

     DROP DATABASE 数据库名;
  5. 查看当前使用的数据库

     SELECT DATABASE();

表操作

  1. 显示当前数据库中的所有表

     SHOW TABLES;
  2. 创建表

     CREATE TABLE 表名 (
       列名1 数据类型 [约束],
       列名2 数据类型 [约束],
       ...
     );

    下面是一个典型的用户信息表的创建示例,包含了常见的字段类型和约束:

     CREATE TABLE users (
         id INT AUTO_INCREMENT PRIMARY KEY,
         username VARCHAR(50) NOT NULL UNIQUE,
         password CHAR(60) NOT NULL,
         email VARCHAR(100) NOT NULL UNIQUE,
         age TINYINT UNSIGNED,  
         gender ENUM('男', '女', '其他') DEFAULT '其他',
         register_time DATETIME DEFAULT CURRENT_TIMESTAMP,
         last_login TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP,
         status TINYINT DEFAULT 1 COMMENT '0-禁用 1-正常',
         INDEX idx_username (username),
         INDEX idx_email (email)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';
     ​
     ​
     1、id - 主键  INT 整数类型  AUTO_INCREMENT 自动增长  PRIMARY KEY 设为主键
     2、username - 用户名  VARCHAR(50) 可变长度字符串,最多50字符  NOT NULL 不能为空 UNIQUE 唯一约束,所有非 NULL 的值必须唯一。
     3、password - 密码(存储哈希值)  CHAR(60) 固定长度字符串,适合存储密码哈希
     4、email - 电子邮箱  VARCHAR(100) 可变长度字符串  NOT NULL + UNIQUE 不能为空且唯一
     5、age - 年龄  TINYINT UNSIGNED 无符号小整数(0-255)
     6、gender - 性别  ENUM 枚举类型,只能取指定值  DEFAULT '其他' 默认值
     7、register_time - 注册时间  DATETIME 日期时间类型  DEFAULT CURRENT_TIMESTAMP 默认当前时间
     8、last_login - 最后登录时间  TIMESTAMP 时间戳类型  NULL ON UPDATE CURRENT_TIMESTAMP 更新时自动设置为当前时间
     9、status - 状态 TINYINT 小整数 DEFAULT 1 默认值 COMMENT 字段注释
     ​
     表级设置:
     ENGINE=InnoDB 使用InnoDB存储引擎
     DEFAULT CHARSET=utf8mb4 使用UTF8MB4字符集(支持emoji)
     COMMENT 表注释
     INDEX 创建索引提高查询效率
  3. 添加字段

     ALTER TABLE users 
     ADD COLUMN mobile VARCHAR(15) COMMENT '手机号码' AFTER email;
     ​
     详细解析:
     ALTER TABLE users:表示要修改名为 users 的表
     ADD COLUMN:添加一个新列(字段)
     mobile:新字段的名称
     VARCHAR(15):字段数据类型,可变长度字符串,最多15个字符
     COMMENT '手机号码':为字段添加注释说明
     AFTER email:指定新字段放在 email 字段后面
     FIRST:将字段添加为表的第一列
     ​
     可以一次性添加多个字段,用逗号分隔
  4. 查看表结构

     DESC 表名;

     SHOW COLUMNS FROM 表名;
  5. 删除表

     DROP TABLE 表名;
  6. 添加记录

     省略列名的插入(需提供所有列的值)
     INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);
     ​
     NSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
     ​
     插入多行:
     INSERT INTO 表名 (列1, 列2, ...) 
     VALUES 
         (值1, 值2, ...),
         (值1, 值2, ...),
         (值1, 值2, ...);

    示例(向 users 表插入数据):

     INSERT INTO users (username, email, age, gender) VALUES ('张三', 'zhangsan@example.com', 25, '男');
  7. 查询记录

     //查询所有记录:
     SELECT * FROM 表名;
     ​
     //指定字段名,查询某些字段:
     SELECT 列名1, 列名2 FROM 表名;
     ​
     //使用 WHERE 子句来添加条件筛选记录
     SELECT * FROM 表名 WHERE 条件;
     ​
     //使用 LIMIT 可以限制返回记录的数量:
     SELECT * FROM 表名 LIMIT 10;
  8. 删除记录

     //删除所有记录:
     DELETE FROM 表名;
     ​
     //通过 WHERE 子句删除符合条件的记录:
     DELETE FROM 表名 WHERE 条件;
     ​
     //使用 LIMIT 来限制删除的记录数量:
     DELETE FROM 表名 WHERE 条件 LIMIT 10;(前 10 条记录)
     ​
     //删除表中的所有记录并重置自增计数:
     TRUNCATE TABLE 表名;(会删除所有记录,并且会将自增计数器重置为 1。)

网站公告

今日签到

点亮在社区的每一天
去签到