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必知必会面试题 基础的更多相关文章

  1. 【MySQL 基础】MySQL必知必会

    MySQL必知必会 简介 <MySQL必知必会>的学习笔记和总结. 书籍链接 了解SQL 数据库基础 什么是数据库 数据库(database):保存有组织的数据的容器(通常是一个文 件或一 ...

  2. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  3. 你必知必会的SQL面试题

    写在前面的话 本文参考原博<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 1>和<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 2>进行练习 ...

  4. 《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 ...

  5. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  6. mysql 必知必会总结

    以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...

  7. MySql必知必会内容导图

    <MySQL必知必会>从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用.子查询.正则表达式和基于全文本的搜索.存储过程.游标.触发器.表约束,等等.通过重点突出的章节,条理 ...

  8. 读《MySQL必知必会》我学到了什么?

    前言 最近在写项目的时候发现自己的SQL基本功有些薄弱,遂上知乎查询MYSQL关键字,期望得到某些高赞答案的指点,于是乎发现了 https://www.zhihu.com/question/34840 ...

  9. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

  10. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

随机推荐

  1. tflearn中num_epoch含义就是针对所有样本的一次迭代

    In tensorflow get started code: import tensorflow as tf import numpy as np features = [tf.contrib.la ...

  2. bzoj1699

    st表 我还不会st表 f[i][j]表示[i,i+2^j)区间的最值 构造就像lca一样f[i][j]=f[i][j-1] f[i][j]=max(f[i][j-1],f[i+(1<<( ...

  3. 0604-面向对象、类与对象、类、static、构造方法/析构方法

    一.面向对象 1.面向过程:一个人分步骤完成某个事情 2.面向对象:某件事情拆分为多个任务,由每个对象独立完成,最后调用整合为一个完整的项目 3.三要素:继承.封装.多态. 封装:私有化属性 提供公共 ...

  4. Servlet初始化与异步支持

    Shared libraries(共享库) / runtimes pluggability(运行时插件能力) 1.Servlet容器启动会扫描,当前应用里面每一个jar包的 ServletContai ...

  5. CSS3 中弹性盒模型--容器的属性

    1.display : flex | inline-flex注意,设为 Flex 布局以后,子元素的float.clear和vertical-align属性 将失效. 2.flex-direction ...

  6. Blender插件加载研究

    目标 [x] 解析Blender插件代码加载原理, 为测试做准备 结论 采用方法3的方式, 可以在测试中保证重新加载子模块, 是想要的方式, 代码如下: _qk_locals = locals() d ...

  7. Java中的常用类有哪些

    1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...

  8. MySQL学习笔记之左连接

     MySQL的左连接 #左连接,以左表为基表 select class1.stuid,class1.stuname,sex,course from class1 left join course on ...

  9. 5.13会话技术Cookie---Session

    .会话技术: 1.会话:一次会话中包含多次请求和相应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2.功能:在一次会话的范围内的多次请求间,共享数据 3.方式: 1.客 ...

  10. 深入浅出java多态

    所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个 ...