自學 linux——14.mysql的基本操做

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

密碼解密:https://www.cmd5.com/

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登陸成功

相關文章
相關標籤/搜索