MySQL基本命令记录


MySQL基础命令记录

为了更好地学习MySQL,本文只记录在命令行下的操作。


1. 进入数据库

  • mysql -D 数据库名 -h 目的主机IP -u 用户名 -p
    按回车键之后会提示输入密码,输入正确即可用指定账号登入到指定主机的某一数据库中。若是要进入本机的数据库,则可省略-h 目的主机IP
    同时,也可以直接在该命令后面直接输入密码再按回车键,不过此时密码会以明文显示,如果这时候有人在背后瞄几眼的话→_→,你懂的。
  • 也可以使用mysql -h 目的主机IP -u 用户名 -p进入数据库后,再用use 数据库名;命令(分号表示该语句结束)进入指定的数据库。
  • 如果在输入密码的时候,报出错误提示类似于:ERROR 1045 (28000): Access denied for user ‘hwf’@’localhost’ (using password: YES),则表示密码输入错误。

2. 查询现有的所有数据库名

  • show databases;

3. 查询当前选中的数据库的所有表名

  • show tables;

4. 创建一个数据库

  • Create Database 数据库名 Character Set UTF8;
    创建一个字符编码为UTF8的数据库

5. 创建数据库表

  • 例如建立一个只具有id、name、age的学生表:
    Create Table Student (
    id int(10) unsigned not null primary key,
    name char(10) not null,
    age int(3) unsigned not null
    )Engine InnoDB, Character Set UTF8;
  • 其中,Student是建立的表名,接下来第一列表示该列名称为id,类型是长度为10的无符号整数,不能为null,是主键,第二列表示该列名称为name,类型是长度为10的char类型,不能为null,第三列表示该列名称为age,类型是长度为3的无符号整数,不能为null。Engine InnoDB表示该表的引擎是InnoDB,也可改成MYISAM。Character Set指定字符集为UTF8。若不写not null则默认该列属性值可以为null。

6. 插入数据

  • Insert Into 表名[(列名1,列名2,… ,列名n)] values(值1,值2,… ,值n);
    其中,[]中的内容可以省略,省略的话默认是全部列,如果只要插入指定列的值,则可加上[]中的信息指定,且列名的位置与值的位置是一一对应的。

7. 查询数据

  • Select * From 表名 [Where 条件];
    其中,*表示选择所查表的所有列的信息,也可以指定所要的列。[]中的内容可以省略,省略的话表示不加查询条件,即查询所有,加上Where的话可以限定所要查询的条件。
  • 举例:
    查询Student表中所有的学生学号:
    Select id from Student;
    查询Student表中所有年龄大于20岁,且不超过22岁的学生的姓名:
    Select name From Student Where age>20 And age<=22;

8. 更新数据

  • Update 表名 Set 列名=新值 [Where 条件];
    这条命令将会把所有满足条件的数据对应的列赋值为新值。

9. 删除数据

  • Delete From 表名 [Where 条件];
    这条命令将删除表中所有满足条件是数据。
  • PS:一般建议是用虚拟删除,即在表中增加一列,用1表示已删除,如果是1,则在后续操作都加以判断,跳过该数据。

10. 清空表的所有数据

  • Delete From 表名;
  • Truncate Table 表名;
    差异比较:
    Delete操作的效果有点类似于将MySQL表中的所有记录一条一条删除,直到删完,同时会记录服务器log,而Truncate则是整体删除,且不写入服务器log,所以Truncate效率比Delete要高。另外,Truncate不会激发触发器(存储过程、触发器的知识后续再记录,先留着),自增字段会被重置为初始值,重新从1开始记录,而Delete则相反。

11. 修改表

  1. 添加列
    Alter Table 表名 Add 列名1 列数据类型 [After 列名2];
    该语句表示将数据类型为列数据类型的叫做列名1的列插入到列名2后面,如果去掉[]中的内容,则表示插入到末尾。
    如果想插入为第一列,则可以用:
    Alter Table 表名 Add 列名 列数据类型 first
  2. 修改列
    Alter Table 表名 Change 列名 新名 新类型;
    该语句表示将叫做列名的列改名字,改成新名,且数据类型修改为新类型
  3. 删除列
    Alter Table 表名 Drop 列名;
    很直白了,就是删除表中叫做列名的那一列。
  4. 重命名表
    Alter Table 表名 Rename 新表名;
    简单粗暴不解释。
  5. 删除整张表
    Drop Table 表名;
  6. 删除整个数据库
    Drop Database 数据库名;
  7. 修改自增量的值
    Alter Table 表名 Auto_increment=0;
    这样做之后,插入的第一条数据自增量会为0+1 =1。

12. 修改用户密码

  • mysqladmin -u 用户名 -p password
    这条语句是退出MySql之后用的,之后会要求输入旧密码,输入正确后再输入两次新密码即可。

这是一条华丽的分割线。暂时先记录这么多吧,后续再来。


猜你喜欢

转载自blog.csdn.net/feng964497595/article/details/79642157