MySQL 基础命令总结

2018年12月18日16:38:44 发表评论 5,157 views

数据库是我们日常工作中必不可少的产品,那我们就简单介绍下它们:

数据库产品介绍:
- Oracle,甲骨文公司的产品。 当前最流行应用最广泛的数据库软件。和java语言兼容非常好。适合中大型,中大应用。
- SQL Server: 是微软公司的产品。window平台应用非常广泛。和c#,net平台兼容非常好。
- DB2: IBM公司的产品。IBM服务器--> UNIX -> DB2- > Websphere
- MySQL:开源组织的产品。甲骨文公司的产品。免费!!!和java语言兼容非常好!适合中小企业,中小应用
- mariaDB :数据库管理系统是MySQL的一个分支,API和命令行兼容mysql,并使用XtarDB取代innoDB。

今天我们主要讲下:最为常用的Mysql基础命令,以及面试中可能会被问的重点。

一、数据库日常操作流程

MySQL 基础命令总结

1、登陆数据库。

mysql -uroot -poldboy123 -S /data/3307/mysql.sock   ##多实例
mysql -uroot -poldboy123   #单实例

2.查看数据库版本及当前登录用户是什么。

第一问:查看mysql 版本五种方法:
1. 命令行mysql -V
MySQL 基础命令总结
2. 登录mysql 显示
MySQL 基础命令总结
3. MySQL中输入status 字段中有
MySQL 基础命令总结
4. mysql> select version();
MySQL 基础命令总结
5. mysql --help|grep version #帮助中查看
MySQL 基础命令总结
第二问:查看当前用户

mysql> select user();

MySQL 基础命令总结

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

1问:创建GBK字符集数据库(通过help取查询,获取语法 就方便多了 help create database )

CREATE database qiuyuetao  CHARACTER SET gbk COLLATE  gbk_chinese_ci;

2问:查看数据类型

show CREATE database qiuyuetao;

MySQL 基础命令总结

4.创建用户qiuyuetao,使之可以管理数据库oldboy。

法1:

grant all on qiuyt.* to 'qiuyt'@'localhost' IDENTIFIED BY  '123456';

法:2:

CREATE USER qiuyt@'localhost' IDENTIFIED BY  '123456';
GRANT ALL ON qiuyt.* TO 'qiuyt'@'localhost';

5.查看创建的用户oldboy拥有哪些权限。

解答:

show grants for  oldboy@localhost;

用法 :help show grants
MySQL 基础命令总结

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

select user,host from mysql.user;

MySQL 基础命令总结

7.进入指定数据库(qiuyt)

use qiuyt;

8.创建一innodb引擎字符集为GBK表test,字段为id和namevarchar(16),查看建表结构及SQL语句。

CREATE TABLE `test` (
  `id` int(4) NOT NULL,
  `name` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

指定引擎与字符集GBK,varchar默认为空

问题2:查看建表结构

mysql> desc test

MySQL 基础命令总结
问题3:查看创建表的sql的语句

mysql> use oldboy
mysql> show create table test;

9.插入一条数据 1,qiuyt

解答:

insert into test values(1,'qiuyt');

10.批量插入数据 2,老男孩,3,etiantian。要求中文不能乱码。

mysql> insert into test values(2,'老男孩'),(3,'etiantian');

MySQL 基础命令总结

11.查询插入的所有记录,查询名字为oldboy的记录。查询id大于1的记录。

解答:
问1:查询插入的所有记录

mysql> select * from test;

问2:查询名字为oldboy的记录

mysql> select * from test where name=('oldboy');

#字符串加单引号,数字不加引号
MySQL 基础命令总结
问3:查询id大于1的记录

mysql> select * from test where id>1;

MySQL 基础命令总结

12.把数据id等于1的名字oldboy更改为oldgirl。

mysql> update test set name='oldgril' where id=1;

MySQL 基础命令总结
说明:#update更新的意思,test是表 set 输出 name字段=oldgirl ,where应用到 id=1
sql语句翻译:将id=1 的name字段更新为oldgirl

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

首选要查看表结构,判断是用after还是frist参数。

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

#help alter table 查看用法,add 后有2个参数 after 代表在...之后; first 在第一个
MySQL 基础命令总结

14.备份oldboy库及MySQL库。

mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock --events -B oldboy>/opt/oldboy_$(date +%F).sql
-B `指定oldboy库`,恢复时候不需要指定库
 mysqldump -uroot -poldboy123 -S /data/3307/mysql.sock --events  -A >/opt/3307_all_$(date +%F).sql
-A `备份整个mysql`

15.删除表中的所有数据,并查看。

法1:

truncate table test;

这个是物理删除 1次清空
法2:

 delete from test;

逻辑删除,一条条的删 很慢

mysql> select * from test;

MySQL 基础命令总结

16.删除表test和oldboy数据库并查看

mysql> DROP TABLE test;  ##删表
mysql> DROP DATABASE oldboy;   #删库

17.Linux命令行恢复以上删除的数据。

mysql -uroot -poldboy123 -S /data/3307/mysql.sock  </opt/oldboy_2017-05-03.sql
#上面-B 指定数据库备份的,所以直接恢复即可
#注意< 符号的方向
  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: