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. 修改表
- 添加列
Alter Table 表名 Add 列名1 列数据类型 [After 列名2];
该语句表示将数据类型为列数据类型的叫做列名1的列插入到列名2后面,如果去掉[]中的内容,则表示插入到末尾。
如果想插入为第一列,则可以用:
Alter Table 表名 Add 列名 列数据类型 first- 修改列
Alter Table 表名 Change 列名 新名 新类型;
该语句表示将叫做列名的列改名字,改成新名,且数据类型修改为新类型。- 删除列
Alter Table 表名 Drop 列名;
很直白了,就是删除表中叫做列名的那一列。- 重命名表
Alter Table 表名 Rename 新表名;
简单粗暴不解释。- 删除整张表
Drop Table 表名;- 删除整个数据库
Drop Database 数据库名;- 修改自增量的值
Alter Table 表名 Auto_increment=0;
这样做之后,插入的第一条数据自增量会为0+1 =1。
12. 修改用户密码
- mysqladmin -u 用户名 -p password
这条语句是退出MySql之后用的,之后会要求输入旧密码,输入正确后再输入两次新密码即可。
这是一条华丽的分割线。暂时先记录这么多吧,后续再来。