【架构师面试-大厂内部面试题-3】-MySQL基础命令面试大全40题

做完这40道题,再也不用担心MySQL命令了,废话不多说,咱们直接上干货!!!

1. 开启 MySQL 服务

service mysqld start

/init.d/mysqld start

safe_mysql &

2.关闭 MySQL 服务

service mysqld stop

/etc/init.d/mysqld stop

mysqladmin -uroot -p123456 shutdown

3. 检测端口是否运行

lsof -i:3306

netstat -tunlp|grep 3306

ss -tulnp|grep 3306

4. 为 MySQL 设置密码或者修改密码。

方法一

mysqladmin -u root -p123456 password 'abc123' #比较常用

方法二(sql 语句修改)

update mysql.user set password=password(123456) where user='root' and host ='localhost';

flush privileges;

方法三(sql 语句修改)

set password=password('abc123');

5. 登陆 MySQL 数据库。

单实例登陆

mysql -uroot -p123456

多实例登陆

mysql -uroot -p123456 -S /data/3306/mysql.sock

6. 查看当前数据库的字符集

show variables like "%charac%";

7. 查看当前数据库版本

# mysql -V

select version();

8. 查看当前登录的用户。

select user();

9. 创建 GBK 字符集的数据库 smallstudent,并查看已建库完整语句

create database smallstudent default character set gbk;

show create database smallstudent;

10. 创建用户 smallstudent,使之可以管理数据库 smallstudent

grant select,update,insert,delete,alter on smallstudent.* to smallstudent@'localhost' i dentified by '123456';

11. 查看创建的用户 smallstudent 拥有哪些权限

show grants for smallstudent@'localhost';

12. 查看当前数据库里有哪些用户

select user,host from mysql.user;

13. 进入 smallstudent 数据库

use smallstudent();

14. 创建一个 innodb GBK 表 test,字段 id int(4)和 name varchar(16)

create table test (id int(4),name varchar(16)) engine=InnoDB default charset=gbk;

15. 查看建表结构及表结构的 SQL 语句

desc test;

show create table test\G

16. 插入一条数据“1,smallstudent”

insert into test (id,name) values (1,'smallstudent');

17. 再批量插入 2 行数据 “2,老男孩”,“3,smallstudentedu”

insert into test (id,name) values (2,'老男孩'),(3,'smallstudentedu');

18. 查询名字为 smallstudent 的记录

select * from test where name='smallstudent';

19. 把数据 id 等于 1 的名字 smallstudent 更改为 bigstudent

update test set name='bigstudent' where id=1;

20.在字段 name 前插入 age 字段,类型 tinyint(2)

alter table test add age tinyint(2) after id;

21. 不退出数据库,完成备份 smallstudent 数据库

system mysqldump -uroot -p123456 -B -x -F --events smallstudent >/opt/bak. sql

22. 删除 test 表中的所有数据,并查看

delete from test;

23. 删除表 test 和 smallstudent 数据库并查看

drop table test;

drop database smallstudent;

24. 不退出数据库恢复以上删除的数据

system mysql -uroot -p123456 </opt/bak.sql

25. 把库表的 GBK 字符集修改为 UTF8

alter database smallstudent default character set utf8;

alter table test default character set utf8;

26. 把 id 列设置为主键,在 Name 字段上创建普通索引。

alter table test add primary key(id);

方法一:

alter table test add index index_name(name);

方法二:

create index index_name on test(name);

27. 在字段 name 后插入手机号字段(shouji),类型 char(11)。

alter table test add shouji char(11) after name;

28. 所有字段上插入 2 条记录(自行设定数据)

insert into test (id,age,name,shouji) values ('4','27','wangning','13833573773');

insert into test (id,age,name,shouji) values ('5','30','litao','13833573773');

29. 在手机字段上对前 8 个字符创建普通索引

方法一:

alter table test add index index_shouji(shouji(8));

方法二:

create index index_shouji on test(shouji(8));

30. 查看创建的索引及索引类型等信息。

show index from test\G

31. 删除 Name,shouji 列的索引。

alter table test drop index index_name;

alter table test drop index index_shouji;

32. 对 Name 列的前 6 个字符以及手机列的前 8 个字符组建联合索引。

create index index_name_shouji on test(name(6),shouji(8));

33. 查询手机号以 135 开头的,名字为 smallstudent 的记录(提前插入)。

select * from test where name='smallstudent' and shouji like "135%";

34. 查询上述语句的执行计划(是否使用联合索引等)。

explain select * from test where name="smallstudent" and shouji like "135%" \G

35. 把 test 表的引擎改成 MyISAM。

alter table test engine=myisam; #myisam 不区分大小写

36. 收回 smallstudent 用户的 select 权限。

revoke select on smallstudent.* from smallstudent@'localhost';

37. 删除 smallstudent 用户。

drop user smallstudent@'localhost';

38. 删除 smallstudent 数据库。

drop database smallstudent;

39. 使用 mysqladmin 关闭数据库。

mysqladmin -uroot -p123456 shutdown

40. MySQL 密码丢了,请找回?

# pkill mysql #先关闭 mysql 服务

#使用--skip-grant-tables 启动 mysql,忽略授权登陆验证

# mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &

# mysql #此时再登陆,已经不需要密码了

update mysql.user set password=password('abc123') where user='root' and host="localhost"; #设置新的密码

flush privileges;

# mysql -uroot -pabc123 #再次用新设置的密码登陆即可

如果您觉得文章有帮助,欢迎点赞收藏加关注,一连三击呀,感谢!!☺☻

上一篇:JAVA程序读取Mysql 数据库Json字段乱码问题


下一篇:Java基础——第七节(while循环)