MySQL必知必会面试题 基础
1、登录数据库
(1)、单实例
mysql -uroot -poldboy
(2)、多实例
mysql -uroot -poldboy -S /data/3306/mysql.sock
2、查看数据库版本及当前登录用户是什么
mysql> select version(); 查看版本
mysql> select user(); 查看用户
3、创建GBK字符集的数据库oldboy,并查看已建库的完整语句
mysql> create database oldboy character set gbk collate gbk_chinese_ci;
mysql> show create database oldboy\G
4、创建用户oldboy,使之可以管理数据库oldboy
第一种方法:
mysql> grant all on oldboy.* to oldboy@’localhost’ identified by ‘123456’;
mysql> select user,host from mysql.user;
第二种方法:
mysql> grant all on oldboy.* to oldboy@’192.168.1.%/255.255.255.0’ identified by ‘123456’;
mysql> select user,host from mysql.user;
第三种方法:
mysql> create user ‘abc’@’localhost’ identified by ‘123456’;
mysql> grant all on oldboy.* to ‘abc’@’localhost’;
5、查看创建的用户oldboy拥有哪些权限
mysql> show grants for abc@localhost;
mysql> show grants for oldboy@localhost;
mysql> show grants for oldboy@localhost\G
6、查看当前数据库有哪些用户
mysql> select user,host from mysql.user;
7、进入oldboy数据库
mysql> use oldboy
8、创建一innodb引擎字符集为GBK表test,字段为id和namevarchar(16),查看建表结构及SQL语句
mysql> create table test(
-> id int(4),
-> name varchar(16)
-> )ENGINE=innodb default charset=gbk;
Query OK, 0 rows affected (0.02 sec)
第一种方法:
mysql> desc test;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(4) | YES | | NULL | |
| name | varchar(16) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
第二种方法:
mysql> show columns from test;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(4) | YES | | NULL | |
| name | varchar(16) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
查看表权限
mysql> show create table test;
9、插入一条数据 1,oldboy
mysql> insert into test values(1,'oldboy');
mysql> select * from test;
+------+--------+
| id | name |
+------+--------+
| 1 | oldboy |
+------+--------+
1 row in set (0.00 sec)
10、批量插入数据 2,老男孩,3,etiantian。ç要求中文不能乱码
mysql> insert into test values(2,'老男孩'),(3,'etiantian');
Query OK, 2 rows affected (0.07 sec)
Records: 2 Duplicates: 0 Warnings: 0
查看创建情况
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | oldboy |
| 2 | 老男孩 |
| 3 | etiantian |
+------+-----------+
3 rows in set (0.00 sec)
11、查询插入的所有记录,查询名字为oldboy的记录。查询id大于1的记录。
(1)第一种方法
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | oldboy |
| 2 | 老男孩 |
| 3 | etiantian |
+------+-----------+
3 rows in set (0.00 sec)
(2)第二种方法
mysql> select * from test where name='oldboy';
+------+--------+
| id | name |
+------+--------+
| 1 | oldboy |
+------+--------+
1 row in set (0.00 sec)
(3)第三种方法
mysql> select * from test where id>1;
+------+-----------+
| id | name |
+------+-----------+
| 2 | 老男孩 |
| 3 | etiantian |
+------+-----------+
2 rows in set (0.00 sec)
12、把数据id等于1的名字oldboy更改为oldgirl
mysql> update test set name='oldgirl' where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
查看修改情况
mysql> select * from test;
+------+-----------+
| id | name |
+------+-----------+
| 1 | oldgirl |
| 2 | 老男孩 |
| 3 | etiantian |
+------+-----------+
3 rows in set (0.00 sec)
13、在字段name前插入age字段,类型tinyint(2)
mysql> alter table test add age tinyint(2) after id;
Query OK, 3 rows affected (0.04 sec)
Records: 3 Duplicates: 0 Warnings: 0 mysql> desc test;
+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+| id | int(4) | YES | | NULL | |
| age | tinyint(2) | YES | | NULL | |
| name | varchar(16) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
14、备份oldboy库及MySQL库
mysqldump -uroot -poldboy -S /data/3306/mysql.sock --events -B oldboy mysql >/opt/mysql_back.sql
cat /opt/mysql_back.sql
15、删除表中的所有数据,并查看
第一种mysql> delete from test;
第二种mysql> truncate table test; mysql> select * from test;
Empty set (0.00 sec)
16、删除表test和oldboy数据库并查看
mysql> drop table test; 删除表
mysql> drop database test; 删除库
17、Linux命令行恢复以上删除的数据
mysql -uroot -poldboy -S /data/3306/mysql.sock </opt/mysql_back.sql
18、把GBK字符集修改为UTF8(可选,注意,此题有陷阱)
mysql> show variables like 'character_set_%';
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /application/mysql-5.5.49/share/charsets/ |
由配置文件设置
+--------------------------+-------------------------------------------+8 rows in set (0.00 sec)
思想:
1、停止MySQL,单例可以使用/etc/init.d/mysqld(编译的话需要设置,yum安装就会出现)
多实例:/data/3306/mysql shutdown或者是/data/3306/mysql stop 这个需要我们自己写脚本。官方有参考
2、cp /etc/my.cnf /etc/my.cnf.bak,修改前做备份,这是个好习惯。
修改my.cnf
vi /etc/my.cnf
在[client]下添加,client为控制客户端的,没试过,没有的可以不需要加。
default-character-set=utf8
在[mysqld]下添加,mysqld为控制服务器端的,改过了,OK。
default-character-set=utf8
3.重启:yum安装可以使用/etc/init.d/mysqld start 多实例要使用/data/3306/mysql restart(多实例详细介绍见下一篇文章)
4.show variables like ‘%char%’;查看
19、MySQL密码丢了,如何找回实战?
单实例
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables --user=mysql &
mysql
修改完密码重启
/etc/init.d/mysqld restart
多实例
/data/3306/mysql stop 无法停止
killall mysqld
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables --user=mysql &
update mysql.user set password=password('oldboy456') where user='root' and host='localhost';
flush privileges;
mysql 登录
mysqladmin -uroot -poldboy shutdown
/etc/init.d/mysqld start
原创申明:老男孩教育公众号文章均出自老男孩教育老师及学员原创,转载请联系miaokm@oldboyedu.com。
MySQL必知必会面试题 基础的更多相关文章
- 【MySQL 基础】MySQL必知必会
MySQL必知必会 简介 <MySQL必知必会>的学习笔记和总结. 书籍链接 了解SQL 数据库基础 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文 件或一 ...
- 《MySQL必知必会》[01] 基本查询
<MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...
- 你必知必会的SQL面试题
写在前面的话 本文参考原博<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 1>和<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 2>进行练习 ...
- 《MySQL必知必会》整理
目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...
- MySQL使用和操作总结(《MySQL必知必会》读书笔记)
简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...
- mysql 必知必会总结
以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础. 200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...
- MySql必知必会内容导图
<MySQL必知必会>从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用.子查询.正则表达式和基于全文本的搜索.存储过程.游标.触发器.表约束,等等.通过重点突出的章节,条理 ...
- 读《MySQL必知必会》我学到了什么?
前言 最近在写项目的时候发现自己的SQL基本功有些薄弱,遂上知乎查询MYSQL关键字,期望得到某些高赞答案的指点,于是乎发现了 https://www.zhihu.com/question/34840 ...
- MySQL必知必会(第4版)整理笔记
参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
随机推荐
- 如何修改vos2009/vos3000的web端口?
vos 2009. VOS 3000 2120 -2138版本在这里 /usr/apache-tomcat-5.5.15/conf 编辑 server.xml 找到 <!-- Define a ...
- Spring Data 自动生成
之前一直用的mybatis逆向自动生成,由于最近学习springdata,所以看了一下springdata的自动生成,基本与mybatis一致,不同的也许就是逆向生成代码(实体类,mapper等)和正 ...
- CRMEB系统就是集客户关系管理+营销电商系统,能够真正帮助企业基于微信公众号、小程序实现会员管理、数据分析,精准营销的电子商务管理系统。可满足企业新零售、批发、分销、等各种业务需求。
**可以快速二次开发的开源小程序商城系统源码**源码开源地址:https://github.crmeb.net/u/LXT 项目介绍: CRMEB系统就是集客户关系管理+营销电商系统,能够真正帮助企业 ...
- TYVJ 1288 飘飘乎居士取能量块
背景 9月21日,pink生日:9月22日,lina生日:9月23日,轮到到飘飘乎居士(狂欢吧,(^__^) 嘻嘻--). 描述 9月21日,今天是pink的生日,飘飘乎居士当然要去别人的领土大闹一番 ...
- 1.java安全框架SHIRO
1. shiro介绍 Apache Shiro是一个强大且易用的java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移 ...
- vue.js $set的使用 数组
[javascript] view plain copy <!DOCTYPE html> <html lang="en"> <head> < ...
- Mysql Event 自动分表
create table TempComments Like dycomments; 上述 SQL语句创建的新表带有原表的所有属性,主键,索引等. 自动分表怎么做呢? 使用上述语句自动创建分表. 那么 ...
- mysql数据库之存储过程入门
引用:百度百科 存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存 ...
- 关于MVC4.0版本以上的RegisterBundles用法
public class BundleConfig { //新建了一个项目文件,打开App_Start下的BundleConfig看看, public static void RegisterBund ...
- 编译带加密功能的sqlite
以为编译wxsqlite是很难的事情,竟然这么顺利. 1.下载wxsqlite代码,解压(wxcode.sourceforge.net/components/wxsqlite3/) 2.下载Prema ...