在日常工作与学习中,无论是开发、运维、还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一。在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL。
在刚刚出炉的 2019 年3月份数据库流行度排行榜上,第一梯队的前三个数据库产品都获得了显著的加分增长。
其中 Oracle 上升了15.12分,MySQL上升了30.96分,SQL Server则上升了 7.79分。以下是前20位的数据库榜单:
所以,民工哥,将公众号所推送的MySQL数据库的文章,统一整理做成一个学习进阶的集合,在此分享给各位读者。各位读者朋友觉得文章对你在学习MySQL数据库的路上有所帮助,请动动小手转发分享出去。让更多的小伙伴们一起参与学习,大家共同成长,一起奔跑在技术的路上。
有需要加入民工哥组建的技术交流群的读者朋友们,可在公众号后台回复:「加群」
数据——公司的生命线,因此在大多数的互联网公司,都在使用开源的数据库产品,MySQL也因此关注度与使用率非常的高,所以做为运维的屌丝们,掌握它的一些基本操作还是必要的,那么今天就来侃一侃一些常用的基础命令,走过的、路过的,就不要再错过了,掌握的、没掌握的,也不要再扔民工哥鸡蛋了哦,呵呵.........
从此篇文章开始将要给大家带来另一个系列的文章:Mysql数据库系列,总共分为以下四个大类:
1、基础篇
2、中级篇
3、优化篇
4、企业架构篇
1、使用帮助信息
登陆数据库就不介绍了哦,比如说想做创建的数据库的操作,不知道命令,就可以查看帮助信息
- mysql> help create;
- Many help items for your request exist.
- To make a more specific request, please type 'help <item>',
- where <item> is one of the following
- topics:
- CREATE DATABASE #最简单的创建命令
- CREATE EVENT
- CREATE FUNCTION
- CREATE FUNCTION UDF
- CREATE INDEX
- CREATE LOGFILE GROUP
- CREATE PROCEDURE
- CREATE SERVER
- CREATE TABLE
- CREATE TABLESPACE
- CREATE TRIGGER
- CREATE USER
- CREATE VIEW
- SHOW
- SHOW CREATE DATABASE
- SHOW CREATE EVENT
- SHOW CREATE FUNCTION
- SHOW CREATE PROCEDURE
- SHOW CREATE TABLE
- SPATIAL
2、创建、删除、查看数据库
- mysql> create database test_data;
- #创建默认字符集的数据库(默认是拉丁字符集)
- Query OK, 1 row affected (0.02 sec)
- mysql> show databases like "test%";
- +------------------+
- | Database (test%) |
- +------------------+
- | test_data |
- +------------------+
- 1 rows in set (0.00 sec)
创建gbk字符集的数据库
- mysql> create database test_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
- Query OK, 1 row affected (0.04 sec)
- mysql> show create database test_gbk;
- #查看创建数据库的语句
- +----------+----------------------------------------------+
- | Database | Create Database |
- +----------+------------------------------------------------------------------+
- | test_gbk | CREATE DATABASE `test_gbk` /*!40100 DEFAULT CHARACTER SET gbk */ |
- +----------+----------------------------------------------+
- 1 row in set (0.00 sec)
删除数据库
- mysql> drop database test_data;
- Query OK, 0 rows affected (0.07 sec)
- mysql> show databases;
- +----------------------------+
- | Database |
- +----------------------------+
- | information_schema |
- | test_gbk |
- +----------------------------+
3、连接数据库
- mysql> use test_gbk;
- #相当于cd命令,切换到数据库进行操作
- Database changed
- mysql> select database();
- #查看当前连接的数据库,相当于pwd
- +------------+
- | database() |
- +------------+
- | test_gbk |
- +------------+
- 1 row in set (0.00 sec)
- mysql> select user();
- #查看当前连接数据库的用户,相当于whoami
- +--------------------+
- | user() |
- +-------------------+
- | root@localhost |
- +--------------------+
- 1 row in set (0.00 sec)
4、创建用户、授权、收回权限
当数据库创建完成后,就需要创建用户,以供需要连接数据库的人员使用与操作数据库,不可能人人使用root登陆,所以权限设置也是很重要的
- mysql> grant all on test_gbk.* to 'testuser'@'localhost' identified by '123456';
- #创建用户并all权限给在test_gbk库所有表,密码‘123456’
- Query OK, 0 rows affected (0.00 sec)
- mysql> flush privileges;
- #刷新权限,使权限生效
- Query OK, 0 rows affected (0.00 sec)
- mysql> show grants for 'testuser'@'localhost';
- #查看用户有哪些权限
- +-----------------------------------------------------------------------------------------------------------------+
- | Grants for testuser@localhost |
- +-----------------------------------------------------------------------------------------------------------------+
- | GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
- | GRANT ALL PRIVILEGES ON `test_gbk`.* TO 'testuser'@'localhost' |
- +-----------------------------------------------------------------------------------------------------------------+
- 2 rows in set (0.00 sec)
收回权限
- mysql> revoke insert,update,select,delete on test_gbk.* from 'testuser'@'localhost';
- #将以上权限收回
- Query OK, 0 rows affected (0.00 sec)
- mysql> show grants for 'testuser'@'localhost';
- +----------------------------------------------------------------------------------------------------+
- | Grants for testuser@localhost |
- +----------------------------------------------------------------------------------------------------+
- | GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
- | GRANT CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `test_gbk`.* TO 'testuser'@'localhost' |
- +------------------------------------------------------------------------------------------------------------------------------+
- 2 rows in set (0.00 sec)
注:原来不知道all权限到底是哪些权限,采用这种方法之后,应该就清楚了
SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER
5、创建、删除表
- mysql> create table test(id int(4)not null,name char(20)not null);
- #建表,并且建立两个字段
- Query OK, 0 rows affected (0.06 sec)
- mysql> show tables;#查看表
- +--------------------+
- | Tables_in_test_gbk |
- +--------------------+
- | test |
- +--------------------+
- 1 row in set (0.00 sec)
- mysql> desc test; #查看表结构
- +-------+----------+------+-----+---------+-------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+----------+------+-----+---------+-------+
- | id | int(4) | NO | | NULL | |
- | name | char(20) | NO | | NULL | |
- +-------+----------+------+-----+---------+-------+
- 2 rows in set (0.01 sec)
- mysql> create table test1(id int(4)not null,name char(20)not null);
- Query OK, 0 rows affected (0.01 sec)
- mysql> show tables;
- +------------------------+
- | Tables_in_test_gbk |
- +------------------------+
- | test |
- | test1 |
- +--------------------+
- 2 rows in set (0.00 sec)
删除表
- mysql> drop tables test;
- Query OK, 0 rows affected (0.00 sec)
- mysql> show tables;
- +--------------------+
- | Tables_in_test_gbk |
- +--------------------+
- | test1 |
- +--------------------+
- 1 row in set (0.00 sec)
查看建表
- mysql> show create table test1\G
- *************************** 1. row ***************************
- Table: test1
- Create Table: CREATE TABLE `test1` (
- `id` int(4) NOT NULL,
- `name` char(20) NOT NULL
- ) ENGINE=MyISAM DEFAULT CHARSET=gbk
- 1 row in set (0.00 sec)
基础的操作命令就介绍这么多,都是一些常用的必备命令
关注 民工哥技术之路 微信公众号对话框回复关键字:1024 可以获取一份最新整理的技术干货:包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELK Stack、机器学习、BAT面试精讲视频等。