快速入门MySQL教程【转自:http://xpleaf.blog.51cto.com/9315560/1712821】

当时入门MySQL的时候,连数据库是什么都不知道,后来参考了一些网友的博客文章和论坛的帖子,才开始慢慢了解它。下面也是以一种可实际操作的方式来说明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)删除数据库表

6.删除数据库

四、进阶操作

1.修改MySQL数据库的登陆密码

2.在登陆MySQL数据库时指定要操作的数据库

3.通过文件的方式创建数据库表


一、MySQL数据库的安装

1.Windows下的安装

2.Linux下的安装

3.MAC下的安装

关于MySQL数据库的安装,这里就不给出了,我想在网上百度一番,肯定能找到很多详细的安装步骤的,我这里再给出来,显然就会有些多余了,所以还是自己动手去找一下吧,相信不会很难的。

但无论是Windows下还是Linux,又或者是MAC book上,对于MySQL数据库的操作指令肯定都是一样的,所以如果这里你要学习MySQL数据库的基本指令操作,用哪种平台都是没有关系的,下面的操作,为了方便,我是直接在Linux下面操作(MAC book买不起,Windows的DOS复制操作伤不起)。


二、开始使用MySQL数据库

0.简单理解MySQL数据库

好了,终于可以开始学习MySQL数据库的基本操作了,但在开始之前,如果你以前对MySQL或者对数据库没有任何一点概念的话,你还是得知道一些东西。现阶段不需要太多的理论知识,你只需要知道,MySQL数据库可以帮你存储类似下面的一张二维关系表:

快速入门MySQL教程【转自:http://xpleaf.blog.51cto.com/9315560/1712821】

是的,我想你对这张表已经再熟悉不过了,在Excel上你一定见过用它来存储类似的学生信息表,我们下面通过相关的操作,就要在MySQL数据库中存储上面这张表的内容。(当然MySQL数据库的作用可不是只能存储这样一张表了,这些就要看大家以后的需求了。)


 

1.在命令行中进入MySQL数据库

我们的操作都是在命令行中进行的,所以保证你可以进入命令行界面(对于Windows,开始菜单--运行--输入cmd,即可调出命令行界面,Linux和MAC的就不用多说了哈。)

在命令行中进行如下的命令操作就可以进入到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.在数据库中创建数据库表

接下来我们就要创建一个数据库表了,那么什么是数据库表呢?就是类似前面我们说的学生信息表,为了方便大家查看,我还是直接把它放下来吧:快速入门MySQL教程【转自:http://xpleaf.blog.51cto.com/9315560/1712821】

是的,我们就是想要创建一张这样的表,如何创建?看下面的操作:

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数据库也有它自己的数据类型,比如上面出现的char、int等,当然MySQL数据库的数据类型还有很多,这里不可能一一作介绍,有需要作更多了解的,可以百度一下。

(3)关于not null

这个参数是非必须的,加上这个参数,表明这一列的数据必须不能为空,上面我们创建的这个表中,可以说每一列都是一个学生最基本的信息,所以应该要不为空才对,不然以后可能就会出现学生信息不全的情况,这可不好吧,所以这里我们还是加上not null参数。当然,如果以后我们需要添加新的一列时,比如添加一列tel列的,这时你可能就没有必要指定not null参数了,因为不一定每个学生都有手机号码呀!

(4)关于primary key

考虑一下,在学生信息表中,假如存放了很多学生的信息,像上面这个表中,可能会存在这样的两个学生,他们的name、sex、age、address都相同的,这很正常吧!所以呢,你就必须得有一个数据项是不同的,我们上面这个表就指定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数据库:相当于是一个大仓库,里面有很多个小仓库;

数据库:相当于是大仓库中的小仓库,里面有很多个小的容器;

数据库表:相当于是小仓库中的容器,我们就是在里面存储内容;

那么我们也可以通过一个图来理清这三者的关系:

快速入门MySQL教程【转自:http://xpleaf.blog.51cto.com/9315560/1712821】

好了,我想当你看到这个图之后就会觉得非常清晰了!


三、操作数据库中的数据库表

1.向数据表中添加数据

前面创建了数据库表之后,注意里面是没有存储任何数据的,下面我们就往这个表中插入数据:

1
2
mysql> insert into network3 values("3114006441","xpleaf","male",35,"QingYuan");
Query OK, 1 row affected (0.01 sec)

上面的操作,我就往数据库表中添加了一条数据,数据内容跟前面的学生信息表中的第一条是一模一样的,这里我们着重看一下向数据库表中插入数据的命令语法:

insert into 数据库表名 values(value值1,value值2,.......);

因为我创建的表中是有6列的,所以values里也就有6个值了。这是一种向表中插入数据的方式,当然,你也可以指定向特定的列中插入数据,命令语法如下:

insert into 数据库表名 (列名1,列名2,...) values(value值1,value值2,...);

也就是说,你可以只向数据库表中添加部分数据,当然前提是,你还要遵守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
44
45
46
47
48
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数据库的数据库:

可以发现,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的!所以,我这里就不给出具体操作啦,否则的话,意义就不太大了。


五、说在后面的话

坦白说,如果你真的是跟着上面我的操作一步一步去做,对MySQL数据库的基本操作应该是有一个比较好的掌握了,本文的内容不敢说全部是原创,因为本人也是根据自己当时学习的一个思路整理出来写本文的,也参考了一些网上的资料,但这里我希望可以做到的是,提供一篇较为完整的、可以跟着操作的MySQL数据库入门的文章,因为我始终相信,计算机这东西,如果仅仅是看而不操作,是不可能有提升的。

不管怎么说,写此文,一来也是自己做一个总结,二来真心是希望可以帮助到有需要的朋友,想想当初自己也是那么茫然,觉得要学数据库操作,应该要懂数据库原理才对,呵呵,如果真是那样,我想我现在还不懂MySQL的基本操作了。

那么基于这样之后,我觉得再去学数据库原理就好理解多了,因为在你脑海中已经有了数据库的一个基本概念,至少不会那么抽象了,通过自己的操作,你已经找到了一个非常具体的例子去帮你理解数据库原理了。

当然,通过这之后,如果你是刚入门编程或者开发,需要用到数据库来保存数据了,那么这时候你对数据库也就不会那么陌生了,需要做的只是调用对应开发语言中一个个库来帮你完成数据的存储与读取。

写那么多也难以一个字一个字去检查,由于技术水平和技术文章的撰写能力有限,有不足的地方还希望可以提出来,不尽感激!

上一篇:潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)


下一篇:Android UID 机制