久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

30分鐘快速入門MySQL教程

 Runs丶SS11 2019-03-15

如果你剛開始接觸MySQL數(shù)據(jù)庫,或者你需要使用MySQL數(shù)據(jù)庫來保存一些基本的數(shù)據(jù),,比如說,,用戶基本信息、學生基本信息表等,,但卻不知道何從下手,,那么這篇文章就很適合你了。

一,、MySQL數(shù)據(jù)庫的安裝

windows下的安裝可以看這里:http://bbzoh.cn/showweb/0/0/821712827.aspx

其它環(huán)境的自行百度,,網(wǎng)上都有。

二、開始使用MySQL數(shù)據(jù)庫

1.在命令行中進入MySQL數(shù)據(jù)庫

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

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

基本的解釋如下:

◆ -h:后面接的是主機名,,表示你要連接到哪臺主機的MySQL數(shù)據(jù)庫。 

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

◆ -p:指定需要使用密碼登陸MySQL數(shù)據(jù)庫,如果密碼為空,,該參數(shù)可以省略,。 

詳細的解釋如下:

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

mysql -u root -p

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

mysql -h 202.116.96.96 -u root -p

對于-p參數(shù),其實我們也可以在p后面直接加上MySQL數(shù)據(jù)庫的密碼,,也就是說,,上面的操作也等價于下面:

mysql -u root -p123456

這里,我的密碼是123456,,這樣之后,,按回車鍵,就可以直接登陸到MySQL數(shù)據(jù)庫中去了,。

2.查看已有的數(shù)據(jù)庫

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

  1. mysql> show databases;
  2. +--------------------+
  3. | Database   |
  4. +--------------------+
  5. | information_schema |
  6. | manager_system     |
  7. | mysql      |
  8. | stu_info   |
  9. | xpleaf_server_data |
  10. +--------------------+

這里可以看到,,在我電腦的MySQL數(shù)據(jù)庫上存了5個數(shù)據(jù)庫,有些是默認的,,有些是我自己創(chuàng)建的,,當然因為我之前有修改過,所以你看到的可能會跟我的不一樣,。

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

show databases;

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

3.創(chuàng)建自己的數(shù)據(jù)庫

接下來我們就要創(chuàng)建一個屬于我們自己的數(shù)據(jù)庫來保存數(shù)據(jù)了,看下面的操作: 

mysqlcreate database students_info; 
Query OK1 row affected (0.01 sec)

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

  1. mysql> show databases;
  2. +--------------------+
  3. | Database   |
  4. +--------------------+
  5. | information_schema |
  6. | manager_system     |
  7. | mysql      |
  8. | stu_info   |
  9. | students_info      |
  10. | xpleaf_server_data |
  11. +--------------------+

可以看到,,我們剛剛創(chuàng)建的數(shù)據(jù)庫已經(jīng)成功保存在MySQL數(shù)據(jù)庫中了!

我們還是來總結(jié)一下創(chuàng)建一個數(shù)據(jù)庫的命令語法: 

create database 數(shù)據(jù)庫名;

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

4.選擇要操作的數(shù)據(jù)庫

在上面的6個數(shù)據(jù)庫中,,并不是每一個都是我們需要進行操作的,我們只需要對我們剛剛創(chuàng)建的數(shù)據(jù)庫students_info進行操作就可以了,,但是,,如果要想操作這個數(shù)據(jù)庫,首先你就要告訴MySQL數(shù)據(jù)庫系統(tǒng),,接下來你要使用students_info這個數(shù)據(jù)庫來進行相關(guān)的操作,,如何告訴系統(tǒng)呢?看下面的操作: 

  1. mysql> use students_info;
  2. Database changed

當成功選擇要操作的數(shù)據(jù)庫后,,就會出現(xiàn)Database changed的字樣,。

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

use 數(shù)據(jù)庫名[;]

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

5.在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫表

接下來我們就要創(chuàng)建一個數(shù)據(jù)庫表了,,那么什么是數(shù)據(jù)庫表呢,?就是類似前面我們說的學生信息表,,為了方便大家查看,我還是直接把它放下來吧:

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

mysql> create table network3     -> (    -> id char(10not null primary key,    -> name char(16not null,    -> sex char(6not null,    -> age int not null,    -> address char(36not null    -> );
Query OK, 0 rows affected (0.05 sec)

哇,!看上去似乎有些復(fù)雜,,好像很多都不知道是什么意思!不用擔心,,下面會作一一的解釋,,當然,這也是創(chuàng)建數(shù)據(jù)庫表的基本語法了:

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

把我上面的操作再跟基本語法對比,,其實發(fā)現(xiàn)創(chuàng)建一張表并不難,,復(fù)雜的可能只是列聲明里面的內(nèi)容了,下面再對上面的每一句列聲明作一個詳細的說明: 

列聲明語句解釋說明
id char(10) not null primary key創(chuàng)建一列,,名稱為id,;數(shù)據(jù)類型為char字符類型,字符的最大長度為10個字符,;并且該列內(nèi)容不允許為空,;同時把這一列作為這張表的主鍵,用來區(qū)分表中不同行,。
name char(16) not null創(chuàng)建一列,,名稱為name;數(shù)據(jù)類型為char字符類型,,字符的最大長度為16個字符,;并且該列內(nèi)容不允許為空。
sex char(6) not null創(chuàng)建一列,,名稱為sex,;數(shù)據(jù)類型為char字符類型,字符的最大長度為6個字符,;并且該列內(nèi)容不允許為空,。
age int not null創(chuàng)建一列,名稱為age,;數(shù)據(jù)類型為int整型,;并且該列內(nèi)容不允許為空。
address char(36) not null創(chuàng)建一列,,名稱為sex,;數(shù)據(jù)類型為char字符類型,字符的最大長度為36個字符,;并且該列內(nèi)容不允許為空,。

其實上面這個表格中的解釋已經(jīng)是相當?shù)脑敿毩耍ㄈ绻X得還是比較抽象的話,,就直接對照著上面的那個學生信息表來看就是了,只是這里我們還沒有為這個表添加任何數(shù)據(jù)),,但是我還是要再說明幾個地方,。

(1)關(guān)于列名稱

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

(2)關(guān)于數(shù)據(jù)類型

跟編程語言一樣,,MySQL數(shù)據(jù)庫也有它自己的數(shù)據(jù)類型,比如上面出現(xiàn)的char,、int等,,當然MySQL數(shù)據(jù)庫的數(shù)據(jù)類型還有很多,這里不可能一一作介紹,,有需要作更多了解的,,可以百度一下。 

(3)關(guān)于not null

這個參數(shù)是非必須的,,加上這個參數(shù),,表明這一列的數(shù)據(jù)必須不能為空,上面我們創(chuàng)建的這個表中,,可以說每一列都是一個學生最基本的???息,,所以應(yīng)該要不為空才對,不然以后可能就會出現(xiàn)學生信息不全的情況,,這可不好吧,,所以這里我們還是加上not null參數(shù)。當然,,如果以后我們需要添加新的一列時,,比如添加一列tel列的,這時你可能就沒有必要指定not null參數(shù)了,,因為不一定每個學生都有手機號碼呀,! 

(4)關(guān)于primary key

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

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

我們上面就在students_info這個數(shù)據(jù)庫中創(chuàng)建了一張名為network3的數(shù)據(jù)庫表,,創(chuàng)建完成之后,我們應(yīng)該要檢查一下剛剛這張表,,看看有沒有什么問題: 

  1. mysql> describe network3;
  2. +---------+----------+------+-----+---------+-------+
  3. | Field   | Type     | Null | Key | Default | Extra |
  4. +---------+----------+------+-----+---------+-------+
  5. | id     | char(10) | NO   | PRI | NULL    |       |
  6. | name    | char(16) | NO   |     | NULL    |       |
  7. | sex     | char(6)  | NO   |     | NULL    |       |
  8. | age     | int(11)  | NO   |     | NULL    |       |
  9. | address | char(36) | NO   |     | NULL    |       |
  10. +---------+----------+------+-----+---------+-------+
  11. 5 rows in set (0.00 sec)

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

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

describe 數(shù)據(jù)庫表名;

語法跟前面的是一樣的,,我們應(yīng)該養(yǎng)成一個好習慣,那就是每次創(chuàng)建完成一個數(shù)據(jù)庫表后,,都使用這個命令來檢查一下,,看看所創(chuàng)建的數(shù)據(jù)庫表跟你想要的是不是一樣。

6.MySQL數(shù)據(jù)庫,、數(shù)據(jù)庫與數(shù)據(jù)庫表     

好了,,通過上面的操作,我們不僅僅學會了在MySQL數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)庫,,還學會了在新建數(shù)據(jù)庫的中創(chuàng)建數(shù)據(jù)庫表,,我們來簡單的理清一下這三者的關(guān)系吧: 

 MySQL數(shù)據(jù)庫: 相當于是一個大倉庫,里面有很多個小倉庫,; 

數(shù)據(jù)庫: 相當于是大倉庫中的小倉庫,,里面有很多個小的容器; 

數(shù)據(jù)庫表: 相當于是小倉庫中的容器,,我們就是在里面存儲內(nèi)容,; 

那么我們也可以通過一個圖來理清這三者的關(guān)系: 

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

三,、操作數(shù)據(jù)庫中的數(shù)據(jù)庫表

1.向數(shù)據(jù)表中添加數(shù)據(jù)

前面創(chuàng)建了數(shù)據(jù)庫表之后,,注意里面是沒有存儲任何數(shù)據(jù)的,下面我們就往這個表中插入數(shù)據(jù): 

mysqlinsert into network3 values("3114006441","xpleaf","male",35,"QingYuan");Query OK1 row affected (0.01 sec)

上面的操作,,我就往數(shù)據(jù)庫表中添加了一條數(shù)據(jù),,數(shù)據(jù)內(nèi)容跟前面的學生信息表中的第一條是一模一樣的,這里我們著重看一下向數(shù)據(jù)庫表中插入數(shù)據(jù)的命令語法:

insert into 數(shù)據(jù)庫表名 values(value值1,value值2,.......);

因為我創(chuàng)建的表中是有6列的,,所以values里也就有6個值了,。這是一種向表中插入數(shù)據(jù)的方式,當然,,你也可以指定向特定的列中插入數(shù)據(jù),,命令語法如下: 

insert into 數(shù)據(jù)庫表名 (列名1,列名2,...) values(value值1,value值2,...);

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

我們下面再添加幾條數(shù)據(jù),,為了操作的一致性,,我們使用第一種方法添加數(shù)據(jù):

mysqlinsert into network3 values("3114006442","Jim","male",38,"JiangMen");Query OK1 row affected (0.00 sec) 
  mysqlinsert into network3 values("3114006443","Pei","male",41,"PuNing");Query OK1 row affected (0.01 sec) 
  mysqlinsert into network3 values("3114006440","Xuan","male",36,"ShanWei");Query OK1 row affected (0.02 sec) 
  mysqlinsert into network3 values("3214006336","Ting","female",30,"ChaoShan");Query OK1 row affected (0.02 sec)

2.查詢數(shù)據(jù)庫表中的數(shù)據(jù)

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

select 列名稱 from 數(shù)據(jù)庫表名 [查詢條件];

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

(1)查詢表中全部數(shù)據(jù)

操作如下: 

  1. mysql> select * from network3;
  2. +------------+--------+--------+-----+----------+
  3. | id | name   | sex    | age | address  |
  4. +------------+--------+--------+-----+----------+
  5. | 3114006440 | Xuan   | male   |  36 | ShanWei  |
  6. | 3114006441 | xpleaf | male   |  35 | QingYuan |
  7. | 3114006442 | Jim    | male   |  38 | JiangMen |
  8. | 3114006443 | Pei    | male   |  41 | PuNing   |
  9. | 3214006336 | Ting   | female |  30 | ChaoShan |
  10. +------------+--------+--------+-----+----------+
  11. 5 rows in set (0.00 sec)

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

(2)查詢表中特定列的數(shù)據(jù)

操作如下: 

  1. mysql> select id,name from network3;
  2. +------------+--------+
  3. | id | name   |
  4. +------------+--------+
  5. 3114006440 | Xuan   |
  6. | 3114006441 | xpleaf |
  7. 3114006442 | Jim    |
  8. | 3114006443 | Pei    |
  9. 3214006336 | Ting   |
  10. +------------+--------+
  11. 5 rows in set (0.00 sec)

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

(3)按特定條件查詢表中的數(shù)據(jù)

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

select 列名稱 from 數(shù)據(jù)庫表名 where 查詢條件;

看我下面的操作: 

  1. mysql> select * from network3 where name='xpleaf';
  2. +------------+--------+------+-----+----------+
  3. | id | name   | sex  | age | address  |
  4. +------------+--------+------+-----+----------+
  5. | 3114006441 | xpleaf | male |  35 | QingYuan |
  6. +------------+--------+------+-----+----------+
  7. 1 row in set (0.02 sec)
  8. mysql> select * from network3 where sex='female';
  9. +------------+------+--------+-----+----------+
  10. | id | name | sex    | age | address  |
  11. +------------+------+--------+-----+----------+
  12. | 3214006336 | Ting | female |  30 | ChaoShan |
  13. +------------+------+--------+-----+----------+
  14. 1 row in set (0.00 sec)
  15. mysql> select * from network3 where sex='male' and address='QingYuan';
  16. +------------+--------+------+-----+----------+
  17. | id | name   | sex  | age | address  |
  18. +------------+--------+------+-----+----------+
  19. | 3114006441 | xpleaf | male |  35 | QingYuan |
  20. +------------+--------+------+-----+----------+
  21. 1 row in set (0.00 sec)
  22. mysql> select * from network3 where age > 40;
  23. +------------+------+------+-----+---------+
  24. | id | name | sex  | age | address |
  25. +------------+------+------+-----+---------+
  26. | 3114006443 | Pei  | male |  41 | PuNing  |
  27. +------------+------+------+-----+---------+
  28. 1 row in set (0.00 sec)
  29. mysql> select * from network3 where age < 40 and age >= 31;
  30. +------------+--------+------+-----+----------+
  31. | id | name   | sex  | age | address  |
  32. +------------+--------+------+-----+----------+
  33. | 3114006440 | Xuan   | male |  36 | ShanWei  |
  34. | 3114006441 | xpleaf | male |  35 | QingYuan |
  35. | 3114006442 | Jim    | male |  38 | JiangMen |
  36. +------------+--------+------+-----+----------+
  37. 3 rows in set (0.01 sec)
  38. mysql> select * from network3 where name like "%leaf";
  39. +------------+--------+------+-----+----------+
  40. | id | name   | sex  | age | address  |
  41. +------------+--------+------+-----+----------+
  42. | 3114006441 | xpleaf | male |  35 | QingYuan |
  43. +------------+--------+------+-----+----------+
  44. 1 row in set (0.00 sec)

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

3.修改數(shù)據(jù)庫表中的數(shù)據(jù)

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

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

  1. mysql> select * from network3;
  2. +------------+--------+--------+-----+----------+
  3. | id | name   | sex    | age | address  |
  4. +------------+--------+--------+-----+----------+
  5. | 3114006440 | Xuan   | male   | 36 | ShanWei  |
  6. | 3114006441 | xpleaf | male   | 35 | QingYuan |
  7. | 3114006442 | Jim    | male   | 38 | JiangMen |
  8. | 3114006443 | Pei    | male   | 41 | PuNing   |
  9. | 3214006336 | Ting   | female | 30 | ChaoShan |
  10. +------------+--------+--------+-----+----------+
  11. 5 rows in set (0.00 sec)

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

#將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

我們再來查看一下進行數(shù)據(jù)更新之后的表:

  1. mysql> select * from network3;
  2. +------------+--------+--------+-----+----------+
  3. | id | name   | sex    | age | address  |
  4. +------------+--------+--------+-----+----------+
  5. | 3114006440 | Xuan   | male   |  37 | ShanWei  |
  6. | 3114006441 | xpleaf | male   |  36 | YuanTan  |
  7. | 3114006442 | Jim    | male   |  39 | JiangMen |
  8. | 3114006443 | Pei    | male   |  42 | PuNing   |
  9. | 3214006336 | Hui    | female |  31 | ChaoShan |
  10. +------------+--------+--------+-----+----------+
  11. 5 rows in set (0.00 sec)

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

update 數(shù)據(jù)庫列名 set 列夠=新value where 更新條件;

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

4.刪除數(shù)據(jù)庫表中的數(shù)據(jù)

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

delete from 數(shù)據(jù)庫表名 where 刪除條件;

好,,下面我們就來把表中name為"Pei"的一行數(shù)據(jù)刪除掉:

mysql> delete from network3 where name='Pei';
Query OK, 1 row affected (0.02 sec)

刪除完后,我們再查看一下表中的數(shù)據(jù):

  1. mysql> select * from network3;
  2. +------------+--------+--------+-----+----------+
  3. | id | name   | sex    | age | address  |
  4. +------------+--------+--------+-----+----------+
  5. | 3114006440 | Xuan   | male   | 37 | ShanWei  |
  6. | 3114006441 | xpleaf | male   | 36 | YuanTan  |
  7. | 3114006442 | Jim    | male   | 39 | JiangMen |
  8. | 3214006336 | Hui    | female | 31 | ChaoShan |
  9. +------------+--------+--------+-----+----------+
  10. 4 rows in set (0.00 sec)

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

delete from 數(shù)據(jù)庫表名; 

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

5.修改數(shù)據(jù)庫表

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

(1)修改數(shù)據(jù)庫表中的列

就直接給出命令語法了: 

alter table 數(shù)據(jù)庫表名 change 列名稱 新數(shù)據(jù)類型 [其它];

還是看下面我的操作: 

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

  1. mysql> describe network3;
  2. +---------+----------+------+-----+---------+-------+
  3. | Field   | Type     | Null | Key | Default | Extra |
  4. +---------+----------+------+-----+---------+-------+
  5. | id     | char(10) | NO   | PRI | NULL    |       |
  6. | name    | char(16) | NO   |     | NULL    |       |
  7. | sex     | char(6)  | NO   |     | NULL    |       |
  8. | age     | int(11)  | NO   |     | NULL    |       |
  9. | address | char(36) | NO   |     | NULL    |       |
  10. +---------+----------+------+-----+---------+-------+
  11. 5 rows in set (0.00 sec)

開始做修改操作:

#將列名稱"adress"修改為"addr",,其它保持不變 
mysql> alter table network3 change address addr char(30not null; 
Query OK, 4 rows affected (0.04 sec) 
Records: 4  Duplicates: 0  Warnings: 0   
#將列"name"的數(shù)據(jù)類型修改為最大可以存放20個字符的char類型,,其它保持不變 
mysql> alter table network3 change name name char(20not null; 
Query OK, 4 rows affected (0.03 sec) 
Records: 4  Duplicates: 0  Warnings: 0   
#同時修改列"sex"的名稱和數(shù)據(jù)類型 
mysql> alter table network3 change sex Sex char(10not null; 
Query OK, 4 rows affected (0.05 sec) 
Records: 4  Duplicates: 0  Warnings: 0

查看修改后的數(shù)據(jù)庫表的詳細信息:

  1. mysql> describe network3;
  2. +-------+----------+------+-----+---------+-------+
  3. | Field | Type     | Null | Key | Default | Extra |
  4. +-------+----------+------+-----+---------+-------+
  5. | id   | char(10) | NO   | PRI | NULL    |       |
  6. | name  | char(20) | NO   |     | NULL    |       |
  7. | Sex   | char(10) | NO   |     | NULL    |       |
  8. | age   | int(11)  | NO   |     | NULL    |       |
  9. | addr  | char(30) | NO   |     | NULL    |       |
  10. +-------+----------+------+-----+---------+-------+
  11. 5 rows in set (0.01 sec)

可以看到,通過修改操作之后,,數(shù)據(jù)庫表的格式改成了我們想要的格式,。

(2)刪除數(shù)據(jù)庫表的列

有時候,隨著時間的推移,,數(shù)據(jù)庫表中的某些內(nèi)容顯得沒有那么重要了,,或者說已經(jīng)沒有存在的意義了,這時候我們就可以把整一列都刪除掉,,這樣就可以節(jié)省一些存儲空間了,。 

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

alter table 數(shù)據(jù)庫表名 drop 列名稱; 

我們來做如下的操作: 

mysql> alter table network3 drop addr; 
Query OK, 4 rows affected (0.02 sec) 
Records: 4  Duplicates: 0  Warnings: 0

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

  1. mysql> describe network3;
  2. +-------+----------+------+-----+---------+-------+
  3. | Field | Type     | Null | Key | Default | Extra |
  4. +-------+----------+------+-----+---------+-------+
  5. | id   | char(10) | NO   | PRI | NULL    |       |
  6. | name  | char(20) | NO   |     | NULL    |       |
  7. | Sex   | char(10) | NO   |     | NULL    |       |
  8. | age   | int(11)  | NO   |     | NULL    |       |
  9. +-------+----------+------+-----+---------+-------+
  10. 4 rows in set (0.00 sec)

沒問題,,確實是刪除了addr這一行,我們再去看一下數(shù)據(jù)庫表中的數(shù)據(jù)內(nèi)容:

  1. mysql> select * from network3;
  2. +------------+--------+--------+-----+
  3. | id | name   | Sex    | age |
  4. +------------+--------+--------+-----+
  5. 3114006440 | Xuan   | male   |  37 |
  6. | 3114006441 | xpleaf | male   |  36 |
  7. 3114006442 | Jim    | male   |  39 |
  8. | 3214006336 | Hui    | female |  31 |
  9. +------------+--------+--------+-----+
  10. 4 rows in set (0.00 sec)

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

(3)重命名數(shù)據(jù)庫表

通過前面的操作,我們的數(shù)據(jù)庫表已經(jīng)煥然一新,,跟原來的相比,,結(jié)構(gòu)已經(jīng)發(fā)生了一些變化,這時我們就給這個數(shù)據(jù)庫表重命名吧,。 

給數(shù)據(jù)庫表重命名的基本命令語法如下: 

mysql> alter table network3 rename New_network3; 
Query OK, 0 rows affected (0.00 sec)

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

mysql> show tables; 
+-------------------------+ | Tables_in_students_info | 
+-------------------------+ | New_network3    | 
+-------------------------+ 1 row in set (0.00 sec)

好,!也沒有問題了。

(4)刪除數(shù)據(jù)庫表

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

刪除數(shù)據(jù)庫表的基本命令語法如下: 

drop table 數(shù)據(jù)庫表名;

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

mysql> drop table New_network3; 
Query OK, 0 rows affected (0.01 sec)

再用show tables;來查看一下數(shù)據(jù)庫中的數(shù)據(jù)庫表:

  1. mysql> show tables;
  2. Empty set (0.00 sec)

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

6.刪除數(shù)據(jù)庫

最開始我們在MySQL數(shù)據(jù)庫創(chuàng)建了students_info這個數(shù)據(jù)庫,,是為了在用它來存儲學生信息,,現(xiàn)在,我們不想用MySQL數(shù)據(jù)庫來存儲有關(guān)學生信息了,,這時,,就可以考慮把students_info這個數(shù)據(jù)庫刪除了,。 

刪除數(shù)據(jù)庫的基本命令語法如下: 

drop database 數(shù)據(jù)庫名;

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

mysqldrop database students_info; 
Query OK0 rows affected (0.00 sec)

這時我們再使用show databases;來查看MySQL數(shù)據(jù)庫的數(shù)據(jù)庫:

  1. mysql> show databases;
  2. +--------------------+
  3. | Database   |
  4. +--------------------+
  5. | information_schema |
  6. | manager_system     |
  7. | mysql      |
  8. | stu_info   |
  9. | xpleaf_server_data |
  10. +--------------------+
  11. 5 rows in set (0.00 sec)

可以發(fā)現(xiàn),,students_info這個數(shù)據(jù)庫已經(jīng)沒有了,我知道這一路下來對這個數(shù)據(jù)庫都有些感情了,,但請相信我,,它的使命已經(jīng)完成。

四,、進階操作

1.修改MySQL數(shù)據(jù)庫的登陸密碼

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

修改數(shù)據(jù)庫登陸密碼的基本命令語法如下:

mysqladmin -r root -p password 新密碼

注意,,這個操作應(yīng)該是在你未登陸MySQL數(shù)據(jù)庫之前進行的操作,。  

2.在登陸MySQL數(shù)據(jù)庫時指定要操作的數(shù)據(jù)庫

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

mysql -D 選擇要操作的數(shù)據(jù)庫名 -h 主機名 -u root -p

3.通過文件的方式創(chuàng)建數(shù)據(jù)庫表

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

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

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

轉(zhuǎn)自 : https://blog.csdn.net/baidu_21833433/article/details/58139793

mysql導(dǎo)入導(dǎo)出sql文件

1.導(dǎo)出整個數(shù)據(jù)庫
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 導(dǎo)出的文件名
mysqldump -u dbuser -p dbname > dbname.sql

2.導(dǎo)出一個表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名> 導(dǎo)出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql

3.導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
-d 沒有數(shù)據(jù) --add-drop-table 在每個create語句之前增加一個drop table

4.導(dǎo)入數(shù)據(jù)庫
常用source 命令
進入mysql數(shù)據(jù)庫控制臺,,如
mysql -u root -p
mysql>use 數(shù)據(jù)庫
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)
mysql>source d:/dbname.sql

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多