MySQL的基本操做php
1.名詞介紹mysql
以Excel文件舉例:sql
數據庫:能夠看做是整個excel文件。shell
數據表:能夠看做是一個excel文件中的工做表。數據庫
行(記錄):能夠看做是一個工做表中的一行vim
列(字段):能夠看做是一個工做表總的一列瀏覽器
2.庫操做bash
操做語句(不區分大小寫):服務器
SHOW DATABASES; 顯示當前MySQL中所有的數據庫微信
CREATE DATABASE 庫名; 建立數據庫
DROP DATABASE 庫名; 刪除數據庫
USE 庫名; 切換數據庫
eg:建立b1數據庫 create datebase b1;
刪除b1數據庫 drop datebase b1;
3.表操做
表操做時必須先use 數據庫
操做語句:
SHOW TABLES; 顯示當前數據庫中全部的表名(
DESC 表名; 描述一個數據表(查看錶結構)
DROP TABLE [IF EXISTS] 表名; 刪除一個數據表
CREATE TABLE 表名稱 在當前數據庫下建立數據表
(
列名稱1 數據類型 [NOT NULL AUTO_INCREMENT],#不能爲空,且遞增
列名稱2 數據類型,
列名稱3 數據類型,
....,
PRIMARY KEY(主鍵字段名)
);
常見的數據類型:int(整型)[數字]、char(定長字符)[字母]、varchar(不定長字符)
主鍵通常就是序號所在的那一列(主鍵不能重複)
eg1:建立數據表(去test庫中建立)表名xg,要求字段:Id字段,11位整型,不爲空自增,主鍵Username字段,varchar類型,20長度,Password字段,char類型,32長度
create table xg
(
Id int(11) not null auto _increment,
Username varchar(20),
Password char(32),
Primary key(id),
);
eg2:查看錶結構 desc xg;
刪除表結構 drop table xg;
4.記錄/字段操做
(1) 增長記錄
用法:INSERT INTO 表名稱 VALUES (值1, 值2,....);
INSERT INTO 表名稱 (列1, 列2,...) VALUES (值1, 值2,....);
Values中除數字之外(可加),其餘的字符都要加‘’(引號)
密碼加密:https://tool.chinaz.com/tools/md5.aspx
eg:往數據表t1表中新增一個記錄username爲zhangsan,password爲123456(加密結果E10ADC3949BA59ABBE56E057F20F883E)
insert into t1(username,password)values(‘zhangsan’,’ E10ADC3949BA59ABBE56E057F20F883E’);
(2) 更新記錄
用法:UPDATE 表名稱 SET 列名稱1 = 新值1,列名稱2 = 新值2… WHERE 列名稱 = 某值;
注意條件,不指定默認所有,是否寫錯或者漏寫
eg:使用更新語句更新id大於等於2的記錄,將其密碼改成:25F9E794323B453885F5181F1B624D0B
Update xg set password = ‘25F9E794323B453885F5181F1B624D0B’ where id >= 2;
(3) 查詢記錄
用法:select 列名稱1,列名稱2… from 表名稱 where 條件; 查看指定
Select * from 表名稱 where 條件; 查看所有
eg:查詢用戶名和密碼,而且id=2
select username,password from xg where id=2;
(4) 刪除記錄
用法:delete from 表名稱 where 列名稱 = 值;
eg:刪除id=2的記錄
delete from xg where id=2;
5.備份與還原
(1) 備份(導出)
全量備份(數據+結構):#mysqldump -uroot -p123456 -A > 備份文件路徑
指定庫備份(數據+結構):# mysqldump -uroot -p123456 庫名 > 備份文件路徑
多個庫備份(數據+結構):# mysqldump -uroot -p123456 --databases db1 db2 > 備份文件路徑
eg1:備份整個數據庫
eg2:每分鐘自動備份一次test數據庫
mkfile test20.sh #建立可執行的文件(ls查看)
vim test20.sh #編輯文件
#!/bin/bash #指定shell解釋器
filename=test_`date +’%Y%m%d%H%M%S’`」.sql」#定義文件名
定義文件名經常使用格式:庫名_日期時間.sql
Mysqldump -uroot -p密碼 test > /root/$filename #備份test庫
crontab -e #編輯計劃任務
* * * * * /root/test20.sh #計劃任務(詳見自有服務2)
(2) 還原(導入)
兩種方式:mysql命令行source方法(爲主)和 系統命令行方法
① 還原所有數據庫
mysql命令行:mysql> source 備份文件路徑
系統命令行:mysql -uroot -p123456 < 備份文件路徑
② 還原單個數據庫(需指定數據庫)
mysql命令行:mysql> use 庫名
mysql> source 備份文件路徑
系統命令行:mysql -uroot -p123456 庫名 < 備份文件路徑
③ 還原單個數據庫的多個表(需指定數據庫)
mysql命令行:mysql> use 庫名
mysql> source 備份文件路徑
系統命令行:mysql -uroot -p123456 庫名 < 備份文件路徑
④ 還原多個數據庫,(一個備份文件裏有多個數據庫的備份,此時不須要指定數據庫)
mysql命令行:mysql> source 備份文件路徑
系統命令行: mysql -uroot -p123456 < 備份文件路徑
eg:人爲刪除xg表(模擬數據表丟失),而後經過最後一次備份還原數據表
drop table xg; #刪除表(show tables;驗證)
source /root/最後一次記錄的表 #還原表(show tables;驗證)
eg:須要還原sql文件到test庫(mobile.sql 31萬條數據)
user test #建立庫
source /usr/local/src/mobile.sql #還原文件
select * from mobile; #查看文件
set names utf-8; #設置Mysql鏈接字符集(顯示漢字)
6.mysql的遠程管理
兩大類:B/S架構、C/S架構。
B/S:B是指瀏覽器,S是指服務器。例如:百度搜索應用就屬於BS架構軟件
C/S:C是指客戶端,S是指服務器。例如:QQ、電腦端微信等應用程序都是CS架構
(1) 在BS中個典型的管理工具:PMA(phpMyAdmin)
PMA網盤獲取:https://pan.baidu.com/s/184m20RNC1tEYIzYEzJhTCg 提取碼:5ezv
(2) 在CS中典型的管理工具:navicat、mysql workbrach
Navicat網盤獲取:https://pan.baidu.com/s/1r3wyTAxDSa3j62OrAiTVOw 提取碼:ofgb
若出現這種問題:
a. 先進入數據庫選擇mysql數據庫
b. 執行sql語句:select host,user from user;
c. 將其中的一個記錄的host值改成「%」,表示能夠容許任何地方登陸
d. 刷新權限表(mysql> flush privileges;)或者重啓mysql
e. navicat登陸成功