MySql基本操作教程

 

一、MySQL數據庫的安裝

1.Windows下的安裝

2.Linux下的安裝

3.MAC下的安裝

二、開始使用MySQL數據庫

0.簡單理解MySQL數據庫

1.在命令行中進入MySQL數據庫

2.查看已有的數據庫

3.創建自己的數據庫

4.選擇要操作的數據庫

5.在數據庫中創建數據庫表

6.MySQL數據庫、數據庫與數據庫表

三、操作數據庫中的數據庫表

1.向數據表中添加數據

1)關於列名稱

2)關於數據類型

3)關於not null

4)關於primary key

2.查詢數據庫表中的數據

1)查詢表中全部數據

2)查詢表中特定列的數據

3)按特定條件查詢表中的數據

3.修改數據庫表中的數據

4.刪除數據庫表中的數據

5.修改數據庫表

1)修改數據庫表中的列

2)添加數據庫表的列

3)刪除數據庫表的列

4)重命名數據庫表

5)刪除數據庫表

6.刪除數據庫

四、進階操作

1.修改MySQL數據庫的登陸密碼

2.在登陸MySQL數據庫時指定要操作的數據庫

3.通過文件的方式創建數據庫表

一、MySQL數據庫的安裝

1.Windows下的安裝

2.Linux下的安裝

3.MAC下的安裝

關於MySQL數據庫的安裝,這裏就不給出了,我想在網上百度一番,肯定能找到很多詳細的安裝步驟的,我這裏再給出來,顯然就會有些多餘了,所以還是自己動手去找一下吧,相信不會很難的。

但無論是Windows下還是Linux,又或者是MAC book上,對於MySQL數據庫的操作指令肯定都是一樣的,所以如果這裏你要學習MySQL數據庫的基本指令操作,用哪種平臺都是沒有關係的,下面的操作,爲了方便,我是直接在Linux下面操作(MAC book買不起,WindowsDOS複製操作傷不起)。

二、開始使用MySQL數據庫

0.簡單理解MySQL數據庫

好了,終於可以開始學習MySQL數據庫的基本操作了,但在開始之前,如果你以前對MySQL或者對數據庫沒有任何一點概念的話,你還是得知道一些東西。現階段不需要太多的理論知識,你只需要知道,MySQL數據庫可以幫你存儲類似下面的一張二維關係表:

是的,我想你對這張表已經再熟悉不過了,在Excel上你一定見過用它來存儲類似的學生信息表,我們下面通過相關的操作,就要在MySQL數據庫中存儲上面這張表的內容。(當然MySQL數據庫的作用可不是隻能存儲這樣一張表了,這些就要看大家以後的需求了。) 

1.在命令行中進入MySQL數據庫

我們的操作都是在命令行中進行的,所以保證你可以進入命令行界面(對於Windows,開始菜單--運行--輸入cmd,即可調出命令行界面,LinuxMAC的就不用多說了哈。)

在命令行中進行如下的命令操作就可以進入到MySQL數據庫中:

1

2

xpleaf@xpleaf-machine:~$ mysql -h localhost -u root -p

Enter password:

根據提示,輸入密碼後就可以進去了,關於密碼,你在安裝的時候應該是有指定的,這裏就不多說了,密碼輸入正確後,你應該就可以看到下面的界面(前提是你已經正確地安裝了MySQL):

1

2

3

4

5

6

7

8

9

10

11

12

13

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 37

Server version: 5.5.44-0Ubuntu0.12.04.1 (Ubuntu)

  

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

  

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

  

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  

mysql>

所以根據上面的操作,我們來總結一下進入MySQL數據庫的命令的基本語法:

mysql -h 主機名 -u 用戶名 -p

基本的解釋如下:

-h:後面接的是主機名,表示你要連接到哪臺主機的MySQL數據庫。

-u:後面接的是用戶名,MySQL默認的就是root

-p:指定需要使用密碼登陸MySQL數據庫,如果密碼爲空,該參數可以省略。

詳細的解釋如下:

前面我們在-h後面填寫了localhost,表示的是要登陸到當前主機的MySQL數據庫,在這種情況下,-h參數以及localhost完全可以省略,也就是說,使用下面的命令也是可以登陸到本機的MySQL數據庫的:

mysql -u root -p

當然,如果你真的要連接到遠程主機的MySQL數據庫的話,只需要在加上-h參數,再加上遠程主機的主機名或者IP地址就可以了,類似如下:

mysql -h 202.116.96.96 -u root -p

對於-p參數,其實我們也可以在p後面直接加上MySQL數據庫的密碼,也就是說,上面的操作也等價於下面:

mysql -u root -p123456

 這裏,我的密碼是123456,這樣之後,按回車鍵,就可以直接登陸到MySQL數據庫中去了。

2.查看已有的數據庫

成功登陸到MySQL數據庫中之後,我們首先就來看一下,MySQL數據庫中有多少個數據庫(你可以理解爲,MySQL數據庫是一個大倉庫,然後這個大倉庫下面有多個小的倉庫,我們就在這些小倉庫中存放我們的數據),我們進行如下的操作:

1

2

3

4

5

6

7

8

9

10

mysql> show databases;

+--------------------+

| Database   |

+--------------------+

| information_schema |

| manager_system     |

| mysql      |

| stu_info   |

| xpleaf_server_data |

+--------------------+

這裏可以看到,在我電腦的MySQL數據庫上存了5個數據庫,有些是默認的,有些是我自己創建的,當然因爲我之前有修改過,所以你看到的可能會跟我的不一樣。

通過上面的操作,我們來總結一下查看MySQL數據庫中存放了哪幾個數據庫的命令:

show databases;

是的,就是這麼簡單,不過需要注意的是,databases這個單詞後面是有個s的,然後最後面是有個分號";"的,這兩點都需要注意,極容易輸錯。

3.創建自己的數據庫

接下來我們就要創建一個屬於我們自己的數據庫來保存數據了,看下面的操作:

1

2

mysql> create database students_info;

Query OK, 1 row affected (0.01 sec)

  這裏我們創建了一個名爲students_info的數據庫,當看到有Query OK, 1 row affected (0.01 sec)時,就說明我們的數據庫創建成功了!爲了確認一下,我們使用上面第2點的命令來查看一下現在MySQL數據庫中已經存在的數據庫:

1

2

3

4

5

6

7

8

9

10

11

mysql> show databases;

+--------------------+

| Database   |

+--------------------+

| information_schema |

| manager_system     |

| mysql      |

| stu_info   |

| students_info      |

| xpleaf_server_data |

+--------------------+

  可以看到,我們剛剛創建的數據庫已經成功保存在MySQL數據庫中了!

我們還是來總結一下創建一個數據庫的命令語法:

create database 數據庫名;

也是比較簡單的,但需要注意的是,database後面就沒有"s"了,但記得數據庫名後面也一定要加上分號";"

4.選擇要操作的數據庫

在上面的6個數據庫中,並不是每一個都是我們需要進行操作的,我們只需要對我們剛剛創建的數據庫students_info進行操作就可以了,但是,如果要想操作這個數據庫,首先你就要告訴MySQL數據庫系統,接下來你要使用students_info這個數據庫來進行相關的操作,如何告訴系統呢?看下面的操作:

1

2

mysql> use students_info;

Database changed

    當成功選擇要操作的數據庫後,就會出現Database changed的字樣。

要選擇一個數據庫進行操作時,命令語法如下:

use 數據庫名[;]

        這時你應該注意到,分號";"是放在中括號[]裏的,也就是說,加不加分號都是可以的,這意味着,你使用use students_info來進行數據庫的選擇也是可以的,但爲了不容易混淆,建議還是加上去好些吧。

5.在數據庫中創建數據庫表

接下來我們就要創建一個數據庫表了,那麼什麼是數據庫表呢?就是類似前面我們說的學生信息表,爲了方便大家查看,我還是直接把它放下來吧:

是的,我們就是想要創建一張這樣的表,如何創建?看下面的操作:

1

2

3

4

5

6

7

8

9

mysql> create table network3

    -> (

    -> id char(10) not null primary key,

    -> name char(16) not null,

    -> sex char(6) not null,

    -> age int not null,

    -> address char(36) not null

    -> );

Query OK, 0 rows affected (0.05 sec)

    哇!看上去似乎有些複雜,好像很多都不知道是什麼意思!不用擔心,下面會作一一的解釋,當然,這也是創建數據庫表的基本語法了:

create table 數據庫表名(列聲明);

把我上面的操作再跟基本語法對比,其實發現創建一張表並不難,複雜的可能只是列聲明裏面的內容了,下面再對上面的每一句列聲明作一個詳細的說明:

列聲明語句

解釋說明

id char(10) not null primary key

創建一列,名稱爲id;數據類型爲char字符類型,字符的最大長度爲10個字符;並且該列內容不允許爲空;同時把這一列作爲這張表的主鍵,用來區分表中不同行。

name char(16) not null

創建一列,名稱爲name;數據類型爲char字符類型,字符的最大長度爲16個字符;並且該列內容不允許爲空。

sex char(6) not null

創建一列,名稱爲sex;數據類型爲char字符類型,字符的最大長度爲6個字符;並且該列內容不允許爲空。

age int not null

創建一列,名稱爲age;數據類型爲int整型;並且該列內容不允許爲空。

address char(36) not null

創建一列,名稱爲sex;數據類型爲char字符類型,字符的最大長度爲36個字符;並且該列內容不允許爲空。

其實上面這個表格中的解釋已經是相當的詳細了(如果覺得還是比較抽象的話,就直接對照着上面的那個學生信息表來看就是了,只是這裏我們還沒有爲這個表添加任何數據),但是我還是要再說明幾個地方。

1)關於列名稱

需要注意的是,每一列的名稱必須是不相同的才行。

2)關於數據類型

跟編程語言一樣,MySQL數據庫也有它自己的數據類型,比如上面出現的charint等,當然MySQL數據庫的數據類型還有很多,這裏不可能一一作介紹,有需要作更多瞭解的,可以百度一下。

3)關於not null

這個參數是非必須的,加上這個參數,表明這一列的數據必須不能爲空,上面我們創建的這個表中,可以說每一列都是一個學生最基本的信息,所以應該要不爲空纔對,不然以後可能就會出現學生信息不全的情況,這可不好吧,所以這裏我們還是加上not null參數。當然,如果以後我們需要添加新的一列時,比��添加一列tel列的,這時你可能就沒有必要指定not null參數了,因爲不一定每個學生都有手機號碼呀!

4)關於primary key

考慮一下,在學生信息表中,假如存放了很多學生的信息,像上面這個表中,可能會存在這樣的兩個學生,他們的namesexageaddress都相同的,這很正常吧!所以呢,你就必須得有一個數據項是不同的,我們上面這個表就指定id數據項是必須不同相同的,也就是所謂的主鍵了。

 

這樣下來之後,你就可以根據自己的需求來創建一個自己的數據庫表了,不過還是要注意語法的問題,哪裏加逗號",",哪裏加分號";",這些都必須不能有錯。

我們上面就在students_info這個數據庫中創建了一張名爲network3的數據庫表,創建完成之後,我們應該要檢查一下剛剛這張表,看看有沒有什麼問題:

1

2

3

4

5

6

7

8

9

10

11

mysql> describe network3;

+---------+----------+------+-----+---------+-------+

| Field   | Type     | Null | Key | Default | Extra |

+---------+----------+------+-----+---------+-------+

| id      | char(10) | NO   | PRI | NULL    |       |

| name    | char(16) | NO   |     | NULL    |       |

| sex     | char(6)  | NO   |     | NULL    |       |

| age     | int(11)  | NO   |     | NULL    |       |

| address | char(36) | NO   |     | NULL    |       |

+---------+----------+------+-----+---------+-------+

5 rows in set (0.00 sec)

仔細看過之後,我們發現跟我們想要創建的類型是一樣的,也就是說沒有問題,當然,如果你發現哪裏有問題了,肯定是你在創建時哪裏不小心輸錯了,這時就要刪除重新創建或者修改了(後面會有詳細講解)。

我們又來總結一下上面這個命令的基本語法,它是用來查詢數據庫表的詳細信息的(只包括表頭,並不包含內容):

describe 數據庫表名;

語法跟前面的是一樣的,我們應該養成一個好習慣,那就是每次創建完成一個數據庫表後,都使用這個命令來檢查一下,看看所創建的數據庫表跟你想要的是不是一樣。

6.MySQL數據庫、數據庫與數據庫表     

好了,通過上面的操作,我們不僅僅學會了在MySQL數據庫創建一個數據庫,還學會了在新建數據庫的中創建數據庫表,我們來簡單的理清一下這三者的關係吧:

        MySQL數據庫:相當於是一個大倉庫,裏面有很多個小倉庫;

數據庫:相當於是大倉庫中的小倉庫,裏面有很多個小的容器;

數據庫表:相當於是小倉庫中的容器,我們就是在裏面存儲內容;

那麼我們也可以通過一個圖來理清這三者的關係:

好了,我想當你看到這個圖之後就會覺得非常清晰了!


添加數據庫表的列:

alter table 表名 add column 列名 屬性(char(16) not null);

修改數據庫表的列:

alter table 表名 change column 舊列名 新列名 屬性(char(16) not null);

修改列屬性:

alter table 表名 modify 列名屬性(char(16) not null);

 

三、操作數據庫中的數據庫表

 

1.向數據表中添加數據

前面創建了數據庫表之後,注意裏面是沒有存儲任何數據的,下面我們就往這個表中插入數據:

1

2

mysql> insert into network3 values("3114006441","xpleaf","male",35,"QingYuan");

Query OK, 1 row affected (0.01 sec)

上面的操作,我就往數據庫表中添加了一條數據,數據內容跟前面的學生信息表中的第一條是一模一樣的,這裏我們着重看一下向數據庫表中插入數據的命令語法:

insert into 數據庫表名 values(value1,value2,.......);

因爲我創建的表中是有6列的,所以values裏也就有6個值了。這是一種向表中插入數據的方式,當然,你也可以指定向特定的列中插入數據,命令語法如下:

insert into 數據庫表名 (列名1,列名2,... values(value1,value2,...);

也就是說,你可以只向數據庫表中添加部分數據,當然前提是,你還要遵守not null的規則。

我們下面再添加幾條數據,爲了操作的一致性,我們使用第一種方法添加數據:

1

2

3

4

5

6

7

8

9

10

11

mysql> insert into network3 values("3114006442","Jim","male",38,"JiangMen");

Query OK, 1 row affected (0.00 sec)

  

mysql> insert into network3 values("3114006443","Pei","male",41,"PuNing");

Query OK, 1 row affected (0.01 sec)

  

mysql> insert into network3 values("3114006440","Xuan","male",36,"ShanWei");

Query OK, 1 row affected (0.02 sec)

  

mysql> insert into network3 values("3214006336","Ting","female",30,"ChaoShan");

Query OK, 1 row affected (0.02 sec)

 


 

2.查詢數據庫表中的數據

向表中插入數據之後,接下來我們當然是要查詢表中的數據了。查詢表中的數據有多種方法(其實都是一種方法),但無論哪種方法,基本的命令語法都是像下面這樣:

1

select 列名稱 from 數據庫表名 [查詢條件];

命令的基本語法倒是有了,關鍵是要看一下如何使用。

1)查詢表中全部數據

操作如下:

1

2

3

4

5

6

7

8

9

10

11

mysql> select * from network3;

+------------+--------+--------+-----+----------+

| id | name   | sex    | age | address  |

+------------+--------+--------+-----+----------+

| 3114006440 | Xuan   | male   |  36 | ShanWei  |

| 3114006441 | xpleaf | male   |  35 | QingYuan |

| 3114006442 | Jim    | male   |  38 | JiangMen |

| 3114006443 | Pei    | male   |  41 | PuNing   |

| 3214006336 | Ting   | female |  30 | ChaoShan |

+------------+--------+--------+-----+----------+

5 rows in set (0.00 sec)

這裏的"*"是一個通配符,它表示任意匹配,如果你學過基本的正則表達式,這應該比較好理解,所以"*"放在列的位置,表示的是要查詢所有列的數據;我們是查詢network3這張表中的全部列的數據。

2)查詢表中特定列的數據

操作如下:

1

2

3

4

5

6

7

8

9

10

11

mysql> select id,name from network3;

+------------+--------+

| id | name   |

+------------+--------+

| 3114006440 | Xuan   |

| 3114006441 | xpleaf |

| 3114006442 | Jim    |

| 3114006443 | Pei    |

| 3214006336 | Ting   |

+------------+--------+

5 rows in set (0.00 sec)

這裏我們只查詢了表network3中兩列的內容,如果還想查詢其它列的,像上面的操作那樣,在列名稱的位置用逗號","隔開就可以了。

3)按特定條件查詢表中的數據

有時我們可能只想要得到某個人或者相同性別的數據,這時候我們就需要指定條件來進行查詢了,基本的命令語法如下:

select 列名稱 from 數據庫表名 where 查詢條件;

看我下面的操作:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

49

mysql> select * from network3 where name='xpleaf';

+------------+--------+------+-----+----------+

| id | name   | sex  | age | address  |

+------------+--------+------+-----+----------+

| 3114006441 | xpleaf | male |  35 | QingYuan |

+------------+--------+------+-----+----------+

1 row in set (0.02 sec)

  

mysql> select * from network3 where sex='female';

+------------+------+--------+-----+----------+

| id | name | sex    | age | address  |

+------------+------+--------+-----+----------+

| 3214006336 | Ting | female |  30 | ChaoShan |

+------------+------+--------+-----+----------+

1 row in set (0.00 sec)

  

mysql> select * from network3 where sex='male' and address='QingYuan';

+------------+--------+------+-----+----------+

| id | name   | sex  | age | address  |

+------------+--------+------+-----+----------+

| 3114006441 | xpleaf | male |  35 | QingYuan |

+------------+--------+------+-----+----------+

1 row in set (0.00 sec)

  

mysql> select * from network3 where age > 40;

+------------+------+------+-----+---------+

| id | name | sex  | age | address |

+------------+------+------+-----+---------+

| 3114006443 | Pei  | male |  41 | PuNing  |

+------------+------+------+-----+---------+

1 row in set (0.00 sec)

  

mysql> select * from network3 where age < 40 and age >= 31;

+------------+--------+------+-----+----------+

| id | name   | sex  | age | address  |

+------------+--------+------+-----+----------+

| 3114006440 | Xuan   | male |  36 | ShanWei  |

| 3114006441 | xpleaf | male |  35 | QingYuan |

| 3114006442 | Jim    | male |  38 | JiangMen |

+------------+--------+------+-----+----------+

3 rows in set (0.01 sec)

  

mysql> select * from network3 where name like "%leaf";

+------------+--------+------+-----+----------+

| id | name   | sex  | age | address  |

+------------+--------+------+-----+----------+

| 3114006441 | xpleaf | male |  35 | QingYuan |

+------------+--------+------+-----+----------+

1 row in set (0.00 sec)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

我想其它什麼的也不用多說了,特定條件其實就類似於"where 列名稱=''"這樣的格式,跟着操作一遍,相信你就很容易理解,當然如果你想知道更詳細的特定條件的相關語法,可以百度一下。


 

3.修改數據庫表中的數據

數據不可能永遠都不會變的,總有發生變化的時候,因此,有時我們需要對錶中的數據作一些修改,或者說就是更新表中的數據,比如說年齡、地址等,可以先看下面的操作:

在更改之前,我們還是先看一下原來表中的數據:

1

2

3

4

5

6

7

8

9

10

11

mysql> select * from network3;

+------------+--------+--------+-----+----------+

| id | name   | sex    | age | address  |

+------------+--------+--------+-----+----------+

| 3114006440 | Xuan   | male   |  36 | ShanWei  |

| 3114006441 | xpleaf | male   |  35 | QingYuan |

| 3114006442 | Jim    | male   |  38 | JiangMen |

| 3114006443 | Pei    | male   |  41 | PuNing   |

| 3214006336 | Ting   | female |  30 | ChaoShan |

+------------+--------+--------+-----+----------+

5 rows in set (0.00 sec)

下面開始做一些修改(更新):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#將name爲"xpleaf"的address修改爲"YuanTan"

mysql> update network3 set address="YuanTan" where name='xpleaf';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 0

  

#將id爲"3214006336"的name修改爲"Hui"

mysql> update network3 set name="Hui" where id='3214006336';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

  

#將所有人的age加1

mysql> update network3 set age=age+1;

Query OK, 5 rows affected (0.01 sec)

Rows matched: 5  Changed: 5  Warnings: 0

我們再來查看一下進行數據更新之後的表:

1

2

3

4

5

6

7

8

9

10

11

mysql> select * from network3;

+------------+--------+--------+-----+----------+

| id | name   | sex    | age | address  |

+------------+--------+--------+-----+----------+

| 3114006440 | Xuan   | male   |  37 | ShanWei  |

| 3114006441 | xpleaf | male   |  36 | YuanTan  |

| 3114006442 | Jim    | male   |  39 | JiangMen |

| 3114006443 | Pei    | male   |  42 | PuNing   |

| 3214006336 | Hui    | female |  31 | ChaoShan |

+------------+--------+--------+-----+----------+

5 rows in set (0.00 sec)

  OK!沒問題,可以看到數據跟我們預想操作的是一樣,下面我們就來總結一下修改(更新)表中數據的基本命令語法:

update 數據庫列名 set 列夠=新value where 更新條件;

     也是比較簡單,基它的就不多說了。


 

4.刪除數據庫表中的數據

有時候你想要做的是刪除表中的數據,而不是修改那麼簡單,跟修改表中數據類似,刪除表中數據的基本命令語法如下:

delete from 數據庫表名 where 刪除條件;

好,下面我們就來把表中name"Pei"的一行數據刪除掉:

1

2

mysql> delete from network3 where name='Pei';

Query OK, 1 row affected (0.02 sec)

  刪除完後,我們再查看一下表中的數據:

1

2

3

4

5

6

7

8

9

10

mysql> select * from network3;

+------------+--------+--------+-----+----------+

| id | name   | sex    | age | address  |

+------------+--------+--------+-----+----------+

| 3114006440 | Xuan   | male   |  37 | ShanWei  |

| 3114006441 | xpleaf | male   |  36 | YuanTan  |

| 3114006442 | Jim    | male   |  39 | JiangMen |

| 3214006336 | Hui    | female |  31 | ChaoShan |

+------------+--------+--------+-----+----------+

4 rows in set (0.00 sec)

       可以看到數據已經成功刪除掉,如果你覺得刪除一行數據不過癮的話可是根據條件來刪除多行數據,當然,你也可以把這個表中所有的數據都刪除表,只需要使用下面這條命令就可以了:

delete from 數據庫表名;

也就是不添加刪除條件,不過這裏你先別這樣操作,數據我們後面還需要使用,有一點需要注意的是,這個命令只是把表中的所有數據刪除而已,並沒有把這個表也刪除了,這個數據庫表是依然存在的,只是這時候它就是一個空表,就像我們剛剛創建它時一樣。

 


 

5.修改數據庫表

看到這個標題你可能覺得納悶,前面不是已經有修改數據庫表的內容了嗎?要注意的是,前面講的是修改數據庫表中的數據,注意啊,是表中的數據,並不是這個表本身,也就是說不涉及這個表本身的結構。而這裏講的,就是要修改數據庫表的結構,比如說添加一列、刪除一列,或者說只是簡單的修改列的名稱或數據類型等,這裏一定要弄清楚這是兩個完全不同的操作。

1)修改數據庫表中的列

就直接給出命令語法了:

alter table 數據庫表名 change 列名稱 新數據類型 [其它];

還是看下面我的操作:

在修改前,先看一下原來數據庫表的詳細信息:

1

2

3

4

5

6

7

8

9

10

11

mysql> describe network3;

+---------+----------+------+-----+---------+-------+

| Field   | Type     | Null | Key | Default | Extra |

+---------+----------+------+-----+---------+-------+

| id      | char(10) | NO   | PRI | NULL    |       |

| name    | char(16) | NO   |     | NULL    |       |

| sex     | char(6)  | NO   |     | NULL    |       |

| age     | int(11)  | NO   |     | NULL    |       |

| address | char(36) | NO   |     | NULL    |       |

+---------+----------+------+-----+---------+-------+

5 rows in set (0.00 sec)

開始做修改操作:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#將列名稱"adress"修改爲"addr",其它保持不變

mysql> alter table network3 change address addr char(30) not null;

Query OK, 4 rows affected (0.04 sec)

Records: 4  Duplicates: 0  Warnings: 0

  

#將列"name"的數據類型修改爲最大可以存放20個字符的char類型,其它保持不變

mysql> alter table network3 change name name char(20) not null;

Query OK, 4 rows affected (0.03 sec)

Records: 4  Duplicates: 0  Warnings: 0

  

#同時修改列"sex"的名稱和數據類型

mysql> alter table network3 change sex Sex char(10) not null;

Query OK, 4 rows affected (0.05 sec)

Records: 4  Duplicates: 0  Warnings: 0

查看修改後的數據庫表的詳細信息:

1

2

3

4

5

6

7

8

9

10

11

mysql> describe network3;

+-------+----------+------+-----+---------+-------+

| Field | Type     | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| id    | char(10) | NO   | PRI | NULL    |       |

| name  | char(20) | NO   |     | NULL    |       |

| Sex   | char(10) | NO   |     | NULL    |       |

| age   | int(11)  | NO   |     | NULL    |       |

| addr  | char(30) | NO   |     | NULL    |       |

+-------+----------+------+-----+---------+-------+

5 rows in set (0.01 sec)

可以看到,通過修改操作之後,數據庫表的格式改成了我們想要的格式。

(2)刪除數據庫表的列

有時候,隨着時間的推移,數據庫表中的某些內容顯得沒有那麼重要了,或者說已經沒有存在的意義了,這時候我們就可以把整一列都刪除掉,這樣就可以節省一些存儲空間了。

刪除列的基本命令語法如下:

alter table 數據庫表名 drop 列名稱;

我們來做如下的操作:

1

2

3

mysql> alter table network3 drop addr;

Query OK, 4 rows affected (0.02 sec)

Records: 4  Duplicates: 0  Warnings: 0

我們刪除了addr這一列,雖然提示已經成功刪除,但我們還是習慣性地檢查一下刪除一列之後數據庫表的詳細信息:

1

2

3

4

5

6

7

8

9

10

mysql> describe network3;

+-------+----------+------+-----+---------+-------+

| Field | Type     | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| id    | char(10) | NO   | PRI | NULL    |       |

| name  | char(20) | NO   |     | NULL    |       |

| Sex   | char(10) | NO   |     | NULL    |       |

| age   | int(11)  | NO   |     | NULL    |       |

+-------+----------+------+-----+---------+-------+

4 rows in set (0.00 sec)

沒問題,確實是刪除了addr這一行,我們再去看一下數據庫表中的數據內容:

1

2

3

4

5

6

7

8

9

10

mysql> select * from network3;

+------------+--------+--------+-----+

| id | name   | Sex    | age |

+------------+--------+--------+-----+

| 3114006440 | Xuan   | male   |  37 |

| 3114006441 | xpleaf | male   |  36 |

| 3114006442 | Jim    | male   |  39 |

| 3214006336 | Hui    | female |  31 |

+------------+--------+--------+-----+

4 rows in set (0.00 sec)

這下子就完全放心了,因爲我們前面的操作確實是成功了!

3)重命名數據庫表

通過前面的操作,我們的數據庫表已經煥然一新,跟原來的相比,結構已經發生了一些變化,這時我們就給這個數據庫表重命名吧。

給數據庫表重命名的基本命令語法如下:

1

2

mysql> alter table network3 rename New_network3;

Query OK, 0 rows affected (0.00 sec)

再用show tables;來查看一下此時存在的數據庫表:

1

2

3

4

5

6

7

mysql> show tables;

+-------------------------+

| Tables_in_students_info |

+-------------------------+

| New_network3    |

+-------------------------+

1 row in set (0.00 sec)

好!也沒有問題了。

4)刪除數據庫表

New_network3存放的是一個班的學生信息,他們總有畢業的一天,當他們畢業的時候,也許我們就不再需要存放他們的信息了,這時就可以把這張數據庫表刪除了。

刪除數據庫表的基本命令語法如下:

drop table 數據庫表名;

好吧,我們也來操作一下:

1

2

mysql> drop table New_network3;

Query OK, 0 rows affected (0.01 sec)

再用show tables;來查看一下數據庫中的數據庫表:

1

2

mysql> show tables;

Empty set (0.00 sec)

可以看到這時顯示爲Empty,空的,也就是此時students_info這個數據庫中已經沒有數據庫表了(注意了,我們前面的操作一直都是在使用studnets_info這個數據庫),很正常,因爲最開始我們只創建了一個數據庫表,然後現在又把它刪除了。


 

6.刪除數據庫

最開始我們在MySQL數據庫創建了students_info這個數據庫,是爲了在用它來存儲學生信息,現在,我們不想用MySQL數據庫來存儲有關學生信息了,這時,就可以考慮把students_info這個數據庫刪除了。

刪除數據庫的基本命令語法如下:

drop database 數據庫名;

雖然很不捨,但我們總要向前走,才能進步,所以下面我們就來執行這個操作:

1

2

mysql> drop database students_info;

Query OK, 0 rows affected (0.00 sec)

這時我們再使用show databases;來查看MySQL數據庫的數據庫:

1

2

3

4

5

6

7

8

9

10

11

mysql> show databases;

+--------------------+

| Database   |

+--------------------+

| information_schema |

| manager_system     |

| mysql      |

| stu_info   |

| xpleaf_server_data |

+--------------------+

5 rows in set (0.00 sec)

可以發現,students_info這個數據庫已經沒有了,我知道這一路下來對這個數據庫都有些感情了,但請相信我,它的使命已經完成。

四、進階操作

1.修改MySQL數據庫的登陸密碼

不管怎麼說,你的MySQL數據庫密碼總不可能一直不變,說不定哪一天你不小心把它告訴了你的朋友,而裏面又存放了非常重要的數據,這時你就要修改數據庫的登陸密碼了。

修改數據庫登陸密碼的基本命令語法如下:

mysqladmin -r root -p password 新密碼

 注意,這個操作應該是在你未登陸MySQL數據庫之前進行的操作。 

2.在登陸MySQL數據庫時指定要操作的數據庫

直接給出下面的基本命令語法:

mysql -D 選擇要操作的數據庫名 -h 主機名 -u root -p

3.通過文件的方式創建數據庫表

前面我們在創建數據庫表時,使用的方法是在MySQL數據庫的命令行界面中一行一行輸入的,這樣不僅很容易輸錯,而且一旦輸錯了,又得重新輸一遍,當要創建一個結構比較複雜的數據庫表時,這樣的方法顯然是行不能的,這時我們就可以考慮使用文件的方式來操作了。

直接給出下面的基本命令語法:

mysql -D 選擇要操作的數據庫名 -h 主機名 -u root -p < .sql類型文件

你可以看到,在進階操作這一部分裏,我並沒有給大家進行具體的操作,實在是因爲我覺得,通過前面的操作之後,如果你真的操作過了,那麼你對MySQL數據庫應該是有一定的瞭解了,這時候你應該舉一反三,自己去嘗試做這幾個進階操作,當你把這幾個進階操作也完成了,相信我,你對MySQL數據庫基本命令的操作一定會上升一個Level的!所以,我這裏就不給出具體操作啦,否則的話,意義就不太大了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章