开始使用MySQL
MySQL是最流行的关系型数据库管理系统。
数据库是按照数据结构来组织、存储和管理数据的仓库。
MySQL的几个特点是:
本文目录
到MySQL下载页下载相应的版本并且安装到电脑上。
安装完成后,MySQL默认用户名为root,默认密码为空,使用下面的命令修改密码:
# mysqladmin -u root password "new_password";
在修改密码之后,就可以使用新密码登录MySQL了,下面的命令使用root用户登陆MySQL:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.21-0ubuntu0.16.04.1 (Ubuntu)
Copyright (c) 2000, 2018, 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>
在Enter password:
提示后面输入密码,之后敲回车进入MySQL,我们会收到一条欢迎信息和其他基本信息。
在最后有一个mysql>
提示符,之后我们输入的MySQL命令都在这个提示符之后输入。
在安装好MySQL后,其中已经存在了一些数据库,但是这些数据库很重要,还是不要随意修改的好。
因此我们现在新建一个名为course的数据库:
mysql> CREATE DATABASE coursera;
Query OK, 1 row affected (0.00 sec)
MySQL告诉我们操作OK,成功影响了一条数据。
查看数据库的基本信息也很简单:
mysql> SHOW CREATE DATABASE course;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| course | CREATE DATABASE `course` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
如果想要查看目前已有的数据库列表,可以使用SHOW DATABASE
命令:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| course |
| mysql |
| performance_schema |
| phpmyadmin |
| sys |
+--------------------+
6 rows in set (0.00 sec)
删除一个数据库,使用DROP DATABASE
命令,例如,删除course
数据库:
mysql> DROP DATABASE course;
由于本文之后还要用这个数据库,这里就不实际删除了。
使用数据库,用USE
命令:
mysql> USE course;
Database changed
这样,我们就使用了course
数据库。
请先USE course;
使用course数据库。
下面的命令在数据库中创建了一个数据表:
CREATE TABLE `teacher` (
`teacher_id` INT UNSIGNED AUTO_INCREMENT,
`teacher_name` VARCHAR(100) NOT NULL,
`teacher_college` VARCHAR(500) NOT NULL,
PRIMARY KEY (`teacher_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
下面介绍这个命令的内容:
teacher
的数据表。teacher_id
的字段,该字段存储INT UNSIGNED
类型的数,并且自增(AUTO_INCREMENT
),即自动增加1。teacher_name
的字段,该字段存储VARCHAR(100)
类型的数,并且非空(NOT NULL
)。teacher_id
。注意,括起表名和字段的不是单引号'
',而是一个斜点,它一般在TAB
键上面。
这样就创建了一张数据表,使用SHOW TABLES
查看当前数据库中的数据表:
mysql> SHOW TABLES;
+------------------+
| Tables_in_course |
+------------------+
| teacher |
+------------------+
1 row in set (0.00 sec)
如果想要删除数据库,使用DROP TABLE
即可,下面的命令将删除teacher数据表:
mysql> DROP TABLE teacher;
现在有了数据库和数据表,我们就可以在其中操作数据了。
下面的语句在teacher中增加一条数据:
INSERT INTO teacher
(`teacher_name`,`teacher_college`)
VALUES
("wang", "automation");
这条语句:
teacher
表中插入数据。teacher_name
和teacher_college
。wang
和automation
。修改字段的值,再次增加一条数据:
INSERT INTO teacher
(`teacher_name`,`teacher_college`)
VALUES
("li", "math");
下面的命令将查询数据表teacher中所有的数据:
mysql> SELECT * FROM teacher;
+------------+--------------+-----------------+
| teacher_id | teacher_name | teacher_college |
+------------+--------------+-----------------+
| 1 | wang | automation |
| 2 | li | math |
+------------+--------------+-----------------+
2 rows in set (0.00 sec)
可以看到,刚才的数据确实被添加到了数据表中。
由于字段teacher_id
是自增的,所以每次增加数据,它都会自增1,在增加字段时不应该被指定数值。
也可以指定字段进行查询:
mysql> SELECT teacher_name, teacher_college FROM teacher;
+--------------+-----------------+
| teacher_name | teacher_college |
+--------------+-----------------+
| wang | automation |
| li | math |
+--------------+-----------------+
2 rows in set (0.00 sec)
查询满足一定条件的数据,可以使用WHERE
子句,下面的语句从数据表teacher中查询teacher_name为wang的数据:
mysql> SELECT teacher_name,teacher_college FROM teacher WHERE teacher_name="wang";
+--------------+-----------------+
| teacher_name | teacher_college |
+--------------+-----------------+
| wang | automation |
+--------------+-----------------+
1 row in set (0.00 sec)
下面的语句将更新数据:
mysql> SELECT teacher_name,teacher_college FROM teacher WHERE teacher_name="wang";
+--------------+-----------------+
| teacher_name | teacher_college |
+--------------+-----------------+
| wang | automation |
+--------------+-----------------+
1 row in set (0.00 sec)
mysql> UPDATE teacher SET teacher_college="CS" WHERE teacher_name="wang";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT teacher_name,teacher_college FROM teacher WHERE teacher_name="wang";
+--------------+-----------------+
| teacher_name | teacher_college |
+--------------+-----------------+
| wang | CS |
+--------------+-----------------+
1 row in set (0.00 sec)
可以看到,更新记录的命令为UPDATE
,使用SET
子句设置更新的值,使用WHERE
子句筛选记录。
删除数据非常容易,使用DELETE
即可:
mysql> DELETE FROM teacher WHERE teacher_name="li";
Query OK, 1 row affected (0.01 sec)
这样,就删除了teacher
表中teacher_name
字段为"li"
的数据。