在平常工做與學習中,不管是開發、運維、仍是測試,對於數據庫的學習是不可避免的,同時也是平常工做的必備技術之一。在互聯網公司,開源產品線比較多,互聯網企業所用的數據庫佔比較重的仍是MySQL。mysql
在剛剛出爐的 2019 年3月份數據庫流行度排行榜上,第一梯隊的前三個數據庫產品都得到了顯著的加分增加。面試
其中 Oracle 上升了15.12分,MySQL上升了30.96分,SQL Server則上升了 7.79分。如下是前20位的數據庫榜單:redis
因此,民工哥,將公衆號所推送的MySQL數據庫的文章,統一整理作成一個學習進階的集合,在此分享給各位讀者。各位讀者朋友以爲文章對你在學習MySQL數據庫的路上有所幫助,請動動小手轉發分享出去。讓更多的小夥伴們一塊兒參與學習,你們共同成長,一塊兒奔跑在技術的路上。sql
有須要加入民工哥組建的技術交流羣的讀者朋友們,可在公衆號後臺回覆:「加羣」數據庫
數據——公司的生命線,所以在大多數的互聯網公司,都在使用開源的數據庫產品,MySQL也所以關注度與使用率很是的高,因此作爲運維的屌絲們,掌握它的一些基本操做仍是必要的,那麼今天就來侃一侃一些經常使用的基礎命令,走過的、路過的,就不要再錯過了,掌握的、沒掌握的,也不要再扔民工哥雞蛋了哦,呵呵.........
今後篇文章開始將要給你們帶來另外一個系列的文章:Mysql數據庫系列,總共分爲如下四個大類:
一、基礎篇
二、中級篇
三、優化篇
四、企業架構篇微信
登錄數據庫就不介紹了哦,好比說想作建立的數據庫的操做,不知道命令,就能夠查看幫助信息架構
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
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 | +----------------------------+
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)
當數據庫建立完成後,就須要建立用戶,以供須要鏈接數據庫的人員使用與操做數據庫,不可能人人使用root登錄,因此權限設置也是很重要的ide
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
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面試精講視頻等。