MYSQL基本操做:php
RDBMS功能:mysql
一、數據庫建立、刪除除sql
二、建立表、刪除表、修改表數據庫
三、索引的建立、刪除apache
四、用戶和權限bash
五、數據增、刪、改服務器
六、查詢socket
Mysql登陸命令:ide
-u USERNAME # 指定用戶名,不加默認爲root工具
-p # 密碼,不加默認爲空
-h MYSER_SERVER # 指定服務器,不指定默認爲localhost或者-h 127.0.0.1
# mysql -u root -p -h localhost # 回車會讓輸入密碼,mysql默認root的密碼爲空
客戶端和服務器在同一臺機器上的鏈接方式:
Linux: socket
Windows: memory
Mysql客戶端與服務器交互方式:
一、交互式模式
二、批處理模式:執行mysql腳本
交互式模式中的命令類別:
2. 一、客戶端命令
2. 二、 服務器端命令:都必須使用語句結束符,默認爲分號;
數據庫數據類型:
一、字符型:
CHAR(n):固定長度n,最大256字符
VARCHAR(n):小於等於n的可變長度,最大65536個字符
BINARY(n):區分大小寫的固定長度
VARBINARY(n):區分大小寫的可變長度
TEXT(n):文本格式大對象,批量數據
BLOB(n):二進制格式大對象
二、數值型:
2.一、整型:
TINYINT:1個字節的範圍,即8位(範圍在-128到128之間)
SMALLINT:2個字節
MEDIUMINT:3個字節
INT:4個字節
BIGINT:5個字節
2.二、浮點型:
FLOAT
DOUBLE
三、修飾符:
UNSIGNED:正數或0
NOT NULL:不能爲空
四、 日期時間:
DATE
TIME
DATETIME
STAMP:時間戳
數據庫語言,MYSQL經常使用命令:
一、DDL:Data Defination Lanuage: 數據定義語言
CREATE, ALTER, DROP
1.一、 建立數據庫:
CREATE DATABASE db_name;
CREATE DATABASE [IF NOT EXISTS] db_name;
mysql> CREATE DATABASE jmmj; # 建立一個數據庫 mysql> SHOW DATABASES; # 查看全部數據庫 mysql> CREATE DATABASE IF NOT EXISTS jmmj; # 假如不存在則建立該數據庫
1.二、刪除數據庫:
DROP DATABASE [IF EXISTS] db_name;
mysql> DROP DATABASE IF EXISTS jmmj; # 假如存在則刪除該數據庫
1.三、建立表:
CREATE TABLE tb_name(col1,col2,...);
mysql> USE jmmj # 使用哪一個數據庫 mysql> CREATE TABLE test(name CHAR(20) NOT NULL,age TINYINT UNSIGNED,gender CHAR(1) NOT NULL); # 建立表test
1.四、查看某數據庫中的表:
SHOW TABLES FROM db_name;
mysql> SHOW TABLES FROM jmmj; # 查看數據庫jmmj中的表
1.五、查看數據庫中的表結構:
DESC tb_name;
mysql> DESC test; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | name | char(20) | NO | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | gender | char(1) | NO | | NULL | | +--------+---------------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
1.六、 刪除表命令:
DROP TABLE tb_name;
1.七、修改表命令:
mysql> help ALTER TABLE; # 命令幫助
ALTER TABLE tb_name MODIFY|CHANGE|ADD|DROP ......
MODIFY:改字段屬性
CHANGE:改字段名稱
ADD:添加一個字段
DROP:刪除一個字段
mysql> ALTER TABLE test ADD classes VARCHAR(100) NOT NULL; # 添加一個classes的字段 mysql> DESC test; # 看看效果 +---------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+---------------------+------+-----+---------+-------+ | name | char(20) | NO | | NULL | | | age | tinyint(3) unsigned | YES | | NULL | | | gender | char(1) | NO | | NULL | | | classes | varchar(100) | NO | | NULL | | +---------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
二、 DML:Data Manapulate Language: 數據操做語言
INSERT, REPLACE, UPDATE, DELETE
2.一、 插入表中的行命令:
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING', NUM,...);
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING', NUM,...),('STRING',NUM,...);
mysql> INSERT INTO test (name,age,gender,classes) VALUE ('liming','19','m','one'); # 插入一行 mysql> INSERT INTO test VALUE ('han×××','18','m','one'); # 若是全部字段都插入則前面字段名能夠省略 mysql> INSERT INTO test (name,age,gender,classes) VALUE ('lintao','19','m','one'),('tom','','m','two'); # 還能夠批量插入 mysql> SELECT * FROM test; # 查看下效果 +-----------+------+--------+---------+ | name | age | gender | classes | +-----------+------+--------+---------+ | liming | 19 | m | one | | han××× | 18 | m | one | | lintao | 19 | m | one | | tom | 0 | m | two | +-----------+------+--------+---------+ 5 rows in set (0.00 sec)
2.二、 更新表中的行命令:
UPDATE tb_name SET column=value WHERE
mysql> UPDATE test SET gender='f' WHERE name='han×××'; # 修改字段name爲han×××的行的gender值爲f mysql> SELECT * FROM test; # 查看下效果 +-----------+------+--------+---------+ | name | age | gender | classes | +-----------+------+--------+---------+ | liming | 19 | m | one | | han××× | 18 | f | one | | lintao | 19 | m | one | | tom | 0 | m | two | +-----------+------+--------+---------+ 5 rows in set (0.00 sec)
2.三、 刪除表中的行命令:
DELETE FROM tb_name WHERE CONDITION;
mysql> DELETE FROM test WHERE name='liming';
三、SELECT:數據庫查詢語言
查詢表命令:
SELECT (col1,col2,...) FROM tb_name WHERE CONDITION
*: 全部字段
WHERE:沒有條件表示顯示全部行
mysql> SELECT * FROM test; # 查詢test表中的全部字段 +-----------+------+--------+---------+ | name | age | gender | classes | +-----------+------+--------+---------+ | han××× | 18 | f | one | | lintao | 19 | m | one | | tom | 0 | m | two | | liming | 20 | m | one | +-----------+------+--------+---------+ 4 rows in set (0.00 sec)
四、DCL:Data Control Language: 數據控制語言
GRANT, REVOKE
4.一、授予權限命令:
GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '666'; # 建立(GRANT若沒有則自動建立用戶)一個能夠在全部終端登陸的用戶root( root@'%'),設置密碼爲666,授予對全部庫中的所(*.*)有表全部的權限(ALL PRIVILEGES)
mysql> FLUSH PRIVILEGES; # 重讀權限
4.二、撤銷權限命令:
REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
4.三、查看受權命令:
SHOW GRANTS FOR 'USERNAME'@'HOST';
mysql> SHOW GRANTS FOR 'lee'@'%';
五、MYSQL用戶管理:
5.一、用戶存放位置:
mysql> SELECT User,Host,Password FROM mysql.user; +------+-----------+-------------------------------------------+ | User | Host | Password | +------+-----------+-------------------------------------------+ | root | localhost | *007D50CA06F69776D307B1BEC71CD73D0EA0999C | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | lee | % | *007D50CA06F69776D307B1BEC71CD73D0EA0999C | | root | % | *007D50CA06F69776D307B1BEC71CD73D0EA0999C | +------+-----------+-------------------------------------------+
5.二、建立用戶命令:
CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'];
HOST表示方式:注意這裏的host指定的是能以此用戶登陸服務器的客戶端的範圍,%表示全部主機
IP:
HOSTNAME:
NETWORK:
通配符:
_:匹配任意單個字符, 172.16.0._
%:匹配任意字符;
mysql> CREATE USER 'lee'@'%' IDENTIFIED BY '666'; # 建立用戶lee密碼爲666,能夠從任何客戶端登陸服務器
5.三、刪除用戶命令:
DROP USER 'USERNAME'@'HOST';
mysql> DROP USER lee@'%';
5.四、設定、修改用戶密碼:
一、mysql>SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('password');
mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('666'); mysql> FLUSH PRIVILEGES; # 重讀權限
二、# mysqladmin-uUSERNAME -hHOST -p password 'password'
三、mysql> UPDATE user SET Password=PASSWORD('password')WHERE USER='root' AND Host='127.0.0.1';
六、MYSQL圖形客戶端工具:
一、phpMyAdmin
# wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.zip # unzip phpMyAdmin-4.7.7-all-languages.zip # cp phpMyAdmin-4.7.7-all-languages /usr/local/apache/htdocs/ -rf # mv phpMyAdmin-4.7.7-all-languages/ phpmyadmin
http://192.168.8.8/phpmyadmin/ # 輸入對應地址便可以管理MYSQL了
二、Workbench
三、MySQL Front
四、Navicat for MySQL
五、Toad