MySQL 数据库入门

2017-7-16 15:56 Herald 285 数据库MariaDBMySQL

关于 MySQL

MySQL 是开源关系型数据库,它功能丰富灵活,被广泛应用在各类网站程序。本文将对 MySQL 的用法做简要介绍。

注意:MariaDB 数据库是 MySQL 的开源分支,本指南同时适用于 MariaDB 数据库。

准备工作

本指南所介绍的 MySQL 知识需要在命令行下进行操作,假设您使用的是 Linux 操作系统,如果你使用的是 Windows 系统,建议在云服务器上演练,您可以参考:

Ubuntu 或 CentOS 系统安装 MySQL

如果你的计算机还未安装 MySQL,请使用以下命令安装:

Ubuntu

sudo apt-get install mysql-server

CentOS

sudo yum install mysql-server
/etc/init.d/mysqld start

访问 MySQL shell

MySQL 安装完毕,使用以下命令即打开 MySQL shell:

mysql -u root -p

命令行会要求输入 MySQL root 密码,与系统的 root 密码不同,不要混淆。

有两点需注意:

  • 所有 MySQL 命令都以半角分号(;)结尾,没有使用分号结尾的命令将不会被执行。
  • 同时,虽然非必须,但习惯上 MySQL 的命令用大写字母,数据库名、表名、用户名或文本用小写字母,这样比较易于识别。

创建和删除 MySQL 数据库

使用以下命令即可查看当前存在哪些数据库:

SHOW DATABASES;

输出的结果可能像这样:

 mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

创建一个名为 getnas 的数据库:

CREATE DATABASE getnas;

然后,就可以看到新的数据库:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| getnas             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

删除名为 getnas 的数据库:

DROP DATABASE getnas;

如何操作 MySQL 数据库

新数据库创建完毕,接着就可以访问并使用它了。使用 USE 命令选择要操作的数据库:

USE getnas;

接着,使用 SHOW 命令查看数据库中有哪些数据表:

SHOW TABLES;

由于新创建的数据库中没有数据表,因此结果只会显示 “Empty set”。

创建 MySQL 数据表

关系型数据库的数据表由 构成,列限定了数据表的结构即允许存储的信息以及信息的类型,行则是按照列的规则记录数据。

假设要记录朋友们的聚会报名信息,创建一个名为 potluck 的数据表:

CREATE TABLE potluck (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
name VARCHAR(20),
food VARCHAR(30),
confirmed CHAR(1), 
signup_date DATE);

上面的命令实现了这些:

  1. 创建了名为 potluck 的数据表;
  2. 在表中插入了 5 列:id,name,food,confirmed,signup date;
  3. “id” 列包含命令 (INT NOT NULL PRIMARY KEY AUTO_INCREMENT),它会为每一行自动编号;
  4. “name” 列使用 VARCHAR 命令限制使用长度限制为 20 的字符;
  5. “food” 列记录朋友爱吃的食物,长度限制为 30 个字符;
  6. “confirmed” 列记录是否确认,只需 1 个字符即可,值为 Y 或 N;
  7. “signup_date” 字段记录登记时间,要求格式为 yyyy-mm-dd;

查看结果:

mysql> SHOW TABLES;
+------------------+
| Tables_in_events |
+------------------+
| potluck          |
+------------------+
1 row in set (0.01 sec)

使用 DESCRIBE 命令查看表结构:

DESCRIBE potluck;

注意:MySQL 命令对大小写不敏感,但数据库名和表名对大小写敏感,即 potluck 与 POTLUCK 或 Potluck 是截然不同的三个数据表。

mysql>DESCRIBE potluck;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NO   | PRI | NULL    | auto_increment |
| name        | varchar(20) | YES  |     | NULL    |                |
| food        | varchar(30) | YES  |     | NULL    |                |
| confirmed   | char(1)     | YES  |     | NULL    |                |
| signup_date | date        | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

向 MySQL 数据表插入信息

有了数据表,接下来就可以向里面插入记录了,使用以下格式插入一行数据:

INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "John", "Casserole","Y", '2018-04-11');

新行插入成功后会看到以下结果:

Query OK, 1 row affected (0.00 sec)

添加一组数据:

INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Sandy", "Key Lime Tarts","N", '2018-04-14');
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Tom", "BBQ","Y", '2018-04-18');
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Tina", "Salad","Y", '2018-04-10');

使用以下命令查看表中所有的记录(行):

mysql> SELECT * FROM potluck;
+----+-------+----------------+-----------+-------------+
| id | name  | food           | confirmed | signup_date |
+----+-------+----------------+-----------+-------------+
|  1 | John  | Casserole      | Y         | 2012-04-11  |
|  2 | Sandy | Key Lime Tarts | N         | 2012-04-14  |
|  3 | Tom   | BBQ            | Y         | 2012-04-18  |
|  4 | Tina  | Salad          | Y         | 2012-04-10  |
+----+-------+----------------+-----------+-------------+
4 rows in set (0.00 sec)

更新 MySQL 数据表中的信息

使用 UPDATE 命令更新数据表中已经存在的记录:

UPDATE `potluck` 
SET 
`confirmed` = 'Y' 
WHERE `potluck`.`name` ='Sandy';

如何在数据表中添加或删除列

如果需要向数据表中插入或删除列,使用以下格式的命令给数据表增加 email 列:

ALTER TABLE potluck ADD email VARCHAR(40);

上面的命令会在 potluck 表的末尾添加加名为 email 的新列,并限制该列只能存储长度不超过 40 的字符。

如果你想将新列添加到特定的位置可以这样做:

ALTER TABLE potluck ADD email VARCHAR(40) AFTER name;

上面的命令将新增加的 email 列放置在的 name 列之后。

如果要删除某列:

ALTER TABLE potluck DROP email;

上面的命令删除了表中的 email 列。

如何删除一行

使用以下命令格式删除一行记录:

DELETE from [table name] where [column name]=[field text];

例如,要删除名为 Sandy 的记录:

mysql> DELETE from potluck  where name='Sandy';
Query OK, 1 row affected (0.00 sec)
 查看删除后的结果:
mysql> SELECT * FROM potluck;
+----+------+-----------+-----------+-------------+
| id | name | food      | confirmed | signup_date |
+----+------+-----------+-----------+-------------+
|  1 | John | Casserole | Y         | 2012-04-11  |
|  3 | Tom  | BBQ       | Y         | 2012-04-18  |
|  4 | Tina | Salad     | Y         | 2012-04-10  |
+----+------+-----------+-----------+-------------+
3 rows in set (0.00 sec)

注意:id 与行相对应,不会因为删除了行而重新排列。

总结

至此,您已经掌握了 MySQL 数据库的增、删、改、查的基础常识。有关 MySQL 数据库的更多知识敬请期待本站后续更新。

{{ headers["x-wp-total"] }} 条评论

{{ post_id = '2573' }}

回复 {{ reply_to }}