开始使用MySQL

开始使用MySQL

MySQL是最流行的关系型数据库管理系统。

数据库是按照数据结构来组织、存储和管理数据的仓库。

MySQL的几个特点是:

  • 数据以表格的格式呈现
  • 一行表示一条数据
  • 一列表示一组同类型数据
  • 若干行和列组成一张表单
  • 若干的表单组成一个数据库
  • MySQL中有多个数据库

本文目录

  • 1 下载与安装
  • 2 登陆MySQL
  • 3 使用数据库
  • 4 使用数据表
  • 5 操作数据
    • 5.1 增加数据
    • 5.2 查询数据
    • 5.3 更新数据
    • 5.4 删除数据

下载与安装

到MySQL下载页下载相应的版本并且安装到电脑上。

安装完成后,MySQL默认用户名为root,默认密码为空,使用下面的命令修改密码:

# mysqladmin -u root password "new_password";

登陆MySQL

在修改密码之后,就可以使用新密码登录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;

下面介绍这个命令的内容:

  • 第1行,创建了一个名为teacher的数据表。
  • 第2行,创建了一个名为teacher_id的字段,该字段存储INT UNSIGNED类型的数,并且自增(AUTO_INCREMENT),即自动增加1。
  • 第3行,创建了一个名为teacher_name的字段,该字段存储VARCHAR(100)类型的数,并且非空(NOT NULL)。
  • 第5行确定表的主键,主键在表中必须是唯一的,这里指定的主键为teacher_id
  • 最后1行,制定了引擎和字符集。

注意,括起表名和字段的不是单引号'',而是一个斜点,它一般在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_nameteacher_college
  • 字段依次对应的值是wangautomation

修改字段的值,再次增加一条数据:

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"的数据。

原文发布于微信公众号 - mwangblog(mwangblog)

原文发表时间:2018-04-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Dato

浅谈 DML、DDL、DCL的区别

一、DML DML(data manipulation language)数据操纵语言:     就是我们最经常用到的 SELECT、UPDATE、INSERT...

3767
来自专栏乐沙弥的世界

批量生成MySQL不重复手机号大表

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。

1372
来自专栏互联网杂技

修改数据表之添加主键约束

上一篇是对表中列的操作: 涉及到列的增删改查; ----- 而本篇是设置一个与另一个表的关系,还有列的默认值; ---- 1.一个表创建之后, 需要对这个表中的...

32811
来自专栏Netkiller

数据库安全·为数据安全而分库

以下节选择《Netkiller Architect 手札》地址 http://www.netkiller.cn/architect/ 接下来几周的话题是数据库安...

3478
来自专栏技术碎碎念

mysql使用基础 sql语句(一)

命令行输入mysql -u root -p,回车再输入密码,进入mysql。 终端命令以分号作为一条语句的结束,可分为多行输入,只需在最后加上分号即可。如下图:...

36310
来自专栏lgp20151222

Mysql 如何设置字段自动获取当前时间,附带添加字段和修改字段的例子

ALTER TABLE `table_name` ADD COLUMN  `CreateTime` datetime NULL DEFAULT CURRENT...

1591
来自专栏python3

mysql-表的操作

数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎

761
来自专栏企鹅号快讯

python数据处理实战-自动统计mysql数据库数据表每天数据量

日常报表统计,日总量,日增量不可避免,这篇文章我们从实际应用出发,从逻辑思考到最后写出代码,一步步分析拆解 一.表结构设计 既然想统计每一张表每天的数据量,后续...

5337
来自专栏我的博客

MySQL触发器

1、触发器定义就不说了,既然能看到我这个文章就肯定明白这个定义了。用途也不多说,来看继续向下看吧! 触发器语法: CREATE TRIGGER <触发器名称...

2805
来自专栏别先生

mysql的内连接,外连接(左外连接,右外连接)巩固

1:mysql的内连接: 内连接(inner join):显示左表以及右表符合连接条件的记录; 1 select a.goods_id,a.goods_name...

2207

扫码关注云+社区

领取腾讯云代金券