MySQL命令行速查手册(持续更新ing...)

诸神缄默不语-个人CSDN博文目录

最近更新时间:2023.6.15
最早更新时间:2023.6.5

  1. 大多命令需以;作为结尾
  2. (以下'localhost'都可以替换成实际IP地址)
  3. (``和’'的区别应该不大)
  4. 用户管理
    1. 修改密码:ALTER USER 'user_name'@'localhost' IDENTIFIED BY 'New-Password';
    2. 创建新用户:create user 'New-Username'@'localhost' identified by 'New-Password';
      @后面的参数是指可以登录的IP地址:如果是"%",则表示可以在任意IP登录。(注意MySQL很狗的一点是接不同的@就算是不同的用户,所以需要不同的授权才行,所以别用*了没用的)
    3. 将某一数据库的所有权力赋给某一用户:grant all privileges on database_name.* to 'user_name'@'localhost';
      flush privileges;
    4. 查看指定用户的权限:SHOW GRANTS FOR 'user_name'@'localhost';
      在这里插入图片描述
  5. 查看数据库:show databases;
    在这里插入图片描述
  6. 创建新数据库:create DATABASE New-DatabaseName;
  7. 转换数据库环境:use database_name(也可以在进入MySQL命令行环境时用-p指定)
  8. 查看数据库中所有表:show tables;
  9. 创建表:(我后来发现如果用Flask的话直接用Python语言创建也挺好的,这个可以查看我写的另一篇博文:在云服务器上安装MySQL (MariaDB) 数据库并与Python连接和互动
    1. 示例
    CREATE TABLE `users` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `phone_number` varchar(255) COLLATE utf8_bin NOT NULL,
        `password` varchar(255) COLLATE utf8_bin NOT NULL,
        `email` varchar(255) COLLATE utf8_bin,
        `memo` varchar(255) COLLATE utf8_bin,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
    AUTO_INCREMENT=1 ;
    
    1. 约束
      1. not null:不能为空
      2. auto_increment:会在插入对应样本时自动递增对应的值,1,2,3,…这样下去
      3. default:对每个样本,给该列一个默认值
        1. timestampdefault current_timestamp
    2. 属性
      1. int()
      2. varchar()
      3. text
      4. timestamp
      5. 布尔类型:MySQL没有官方的布尔类型,用TINYINT(1)就行。举例:
        alter table Papersadd columnis_legalAI TINYINT(1) default 0;1
  10. 修改表
    1. 增加列
    alter table `users` add column `nickname` varchar(20) ;
    
  11. 查询表
    1. 查询全部内容:select * from 表名
    2. limit 限制返回行数:SELECT * FROM table_name LIMIT 10;(返回表中前10行:基于表中数据的物理存储顺序的)
    3. 查询最后10条数据:SELECT * FROM table_name ORDER BY id DESC LIMIT 10;id是一个自增的主键,也可以替换成其他顺序递增的列)
    4. where 条件查询
      SELECT * FROM Papers WHERE LOWER(title) = LOWER('这是一个示例标题')
    5. 查询一个表中的记录数:SELECT COUNT(*) FROM table_name;
      请注意,COUNT(*)函数会计算表中的所有记录,包括那些值为NULL的记录。如果你只想要计算某个特定列的非NULL值的数量,你可以使用COUNT(column_name),其中column_name是你想要计算的列的名称。
    6. distinct 去重
      SELECT DISTINCT 列名 FROM your_table;
    7. 将查询内容创建新表:create table new_table as 查询语句
  12. delete(不可逆)
    删除表中的所有数据(但不删除表本身):DELETE FROM table_name;
  13. truncate(不可逆):你想要删除表中的所有数据,并且重置所有的自增字段
TRUNCATE TABLE table_name;
  1. SQL函数
    1. lower()
    2. REGEXP
    3. replace(列名,被替换的字符串,替换后的字符串)
  2. 常见报错信息
    1. ERROR 1054 (42S22): Unknown column '列名' in 'field list':在尝试更新一个表中不存在的列
  3. 本文撰写过程中使用的其他参考资料
    1. MySQL创建数据库_mysql创建root_Oliver9887的博客-CSDN博客
    2. MySQL长文本存储类型 - 简书
    3. MySQL :: MySQL 8.0 Reference Manual :: 11.2.5 Automatic Initialization and Updating for TIMESTAMP and DATETIME
    4. Mysql default CURRENT_TIMESTAMP & on update CURRENT_TIMESTAMP区别_走向自由的博客-CSDN博客
    5. MySQL插入数据自动生成时间 - 简书
    6. mysql table 中增加列的SQL语句_sql新增一列_猎人在吃肉的博客-CSDN博客
    7. 在MySQL中用root用户创建新的用户并为之授予权限_mysql root_微步_ym的博客-CSDN博客
    8. MYSQL中的COLLATE_collate mysql_言慢行善的博客-CSDN博客
    9. 【MySQL】命令行遇到 ‘> 而无法结束语句编辑的解决方案_mysql怎么结束语句_星拱北辰的博客-CSDN博客:解决方案是'\c
    10. mysql基础 create table 在指定数据库创建表 - 墨天轮

  1. MySQL boolean类型 - MySQL教程 ↩︎

猜你喜欢

转载自blog.csdn.net/PolarisRisingWar/article/details/131042562