MySQL數據庫基礎篇之入門基礎命令
在日常工作與學習中,無論是開發、運維、還是測試,對于數據庫的學習是不可避免的,同時也是日常工作的必備技術之一。在互聯網公司,開源產品線比較多,互聯網企業所用的數據庫占比較重的還是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面試精講視頻等。