MySQL数据库,基础初学者必备知识

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 本文讲解:MySQL数据库基础初学者必备知识

 image.gif编辑

image.gif编辑

目录

1.数据库的基本操作

1.1显示所有数据库

1.2创建数据库

1.3删除数据库

2.数据库的类型

2.1数值类型

2.2字符串类型

2.3日期类型

3.表的简单操作

3.1创建一个表

3.2显示表的结构

3.3显示数据库中的所有表

3.4删除指定表

4.实战练习

image.gif编辑

1.数据库的基本操作

数据库的基本操作为:显示数据库,创建数据库,删除数据库,以及显示表结构、创建表、删除表。本期内容主要带大家了解数据库中的类型,以及如何操作数据库的一些基本方法。


1.1显示所有数据库

我们使用show databases命令来显示。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytest             |
| performance_schema |
| student_m          |
| sys                |
| test               |
+--------------------+
7 rows in set (0.00 sec)

image.gif

image.gif编辑

上方代码中的最后一行 7 rows in set (0.00 sec) 意为:有7行在列表里面花了0秒。


1.2创建数据库

我们使用create database 数据名 来创建,如创建一个名为fristcreate的数据库。

mysql> create database fristcreate;
Query OK, 1 row affected (0.00 sec)

image.gif

image.gif编辑

上述代码最后一行,显示 Query OK, 1 row affected (0.00 sec) 意味着我们的数据库已经创建成功。我们可以使用显示所有数据库来查看该数据库是否创建成功。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| fristcreate        |
| mysql              |
| mytest             |
| performance_schema |
| student_m          |
| sys                |
| test               |
+--------------------+
8 rows in set (0.00 sec)

image.gif

我们可以看到,在上述结构中的第二行多出了我们刚刚创建的fristcreate数据库。

当然我们在创建数据库的时候可以加上一条语句:if not exits 来确认创建数据库时该数据库是否存在如果有则创建不了,语法格式为:create database if not exits 数据库名;


1.3删除数据库

删除数据库我们使用drop database 数据库名; 语句来实现删除,也可以加上if exists 来确认该数据库是否存在:drop database if exists 数据库名;删除刚刚创建的fristcreate数据库:

mysql> drop database fristcreate;
Query OK, 0 rows affected (0.00 sec)

image.gif

image.gif编辑

当出现以上信息,代表着数据库删除成功。我们来显示所有数据库就能看到,该数据库已被删除:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mytest             |
| performance_schema |
| student_m          |
| sys                |
| test               |
+--------------------+
7 rows in set (0.00 sec)

image.gif


2.数据库的类型

2.1数值类型

数据类型 大小 说明 对应Java类型
BIT[(M)] M可指定大小,默认为1 二进制数,M范围从1到64,
存储数值范围从0到2^M-1
Boolean,在数据库中默认为0,可设置为1
TINYINT 1字节 Byte
SMALLINT 2字节 Short
INT 4字节 Integer
BIGINT 8字节 Long
FLOAT(M,D) 4字节 单精度,M指定长度,D指定
小数位数。会发生精度丢失,不稳定。
Float
DOUBLE(M,D) 8字节 Double
DECIMAL(M,D) M/D最大值+2 双精度,M指定长度,D指定
小数位数。不会发生精度丢失,稳定。
BigDecimal
NUMERIC(M,D) M/D最大值+2 双精度,M指定长度,D指定
小数位数。不会发生精度丢失,稳定。
BigDecimal

2.2字符串类型

数据类型 大小 说明 对应java类型
VARCHAR (SIZE) 0-65,535字节 可变长度字符串 String
TEXT 0-65,535字节 长文本数据 String
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据 String
BLOB 0-65,535字节 二进制形式的长文本数据 byte[]

2.3日期类型

数据类型 大小 说明 对应的Java类型
DATETIME 8字节 1000~9999年,不会进行时区检索和转换 java.util.Date、
java.sql.Timestamp
TIMESTAMP 4字节 1970~2038年,自动进行检索时区并进行转换 java.util.Date、
java.sql.Timestamp

3.表的简单操作

一个表的结构如下:

image.gif编辑


3.1创建一个表

创建一个表我们按照以下语法来创建:

mysql> create tablename(
    -> 字段1 类型
    -> 字段2 类型
    -> 字段3 类型
    -> );

image.gif

如创建一个学生表:

mysql> use mytest;
Database changed
mysql> create table student(
    -> id int,
    -> name varchar(10),
    -> grade int
    -> );
Query OK, 0 rows affected (0.02 sec)

image.gif

image.gif编辑

当下方出现上图所提示语句,就代表着该表已完成创建。注意,在创建一个表的时候,得先使用数据库。


3.2显示表的结构

显示表的结构我们使用desc 表名; 来显示。

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| grade | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

image.gif


3.3显示数据库中的所有表

我们使用 show tables from 数据库名;来查看该数据库中的所有表

mysql> show tables from mytest;
+------------------+
| Tables_in_mytest |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

image.gif

我们可以看到显示了,刚刚创建的student表。


3.4删除指定表

删除指定表我们使用 drop table 表名;这个sql语句来删除,如删除上方的student表。

mysql> drop table student;
Query OK, 0 rows affected (0.00 sec)

image.gif

删除成功后,我们来显示mytest数据库中的表:

mysql> show tables from mytest;
Empty set (0.00 sec)

image.gif

image.gif编辑

显示为空,代表mytest数据库中没有任何的表,因此我们删除student表成功了。


4.实战练习

有一商店的数据,记录客户及购物情况,有以下三个表组成:

    • 商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供应商provider)
    • 客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证card_id)
    • 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)

    实现目标:在同一个数据库下,创建这个三个表并展示表解构。下面为解题步骤,大家可以先根据上述知识点来自行编写,如有不会可参考下方代码。

    首先,我们要先创建一个数据库

    mysql> create database mytest;
    Query OK, 1 row affected (0.00 sec)
    mysql> use mytest;
    Database changed

    image.gif

    创建一个名为mytest的数据库,并且使用该数据库。


    其次,根据题目要求,创建相应的参数与类型的表。

    创建goods

    mysql> create table if not exists goods(
        -> goods_id int,
        -> goods_name varchar(15),
        -> unitprice int,
        -> category varchar(20),
        -> provider varchar(30)
        -> );
    Query OK, 0 rows affected (0.03 sec)

    image.gif

    创建customer表

    mysql> create table if not exists customer(
        -> customer_id int,
        -> name varchar(15),
        -> address varchar(30),
        -> email int,
        -> sex varchar(5),
        -> card_id int
        -> );
    Query OK, 0 rows affected (0.03 sec)

    image.gif

    创建purchase表

    mysql> create table if not exists purchase(
        -> order_id int,
        -> customer_id int,
        -> goods_id int,
        -> nums int
        -> );
    Query OK, 0 rows affected (0.03 sec)

    image.gif


    显示数据库里面的所有表

    mysql> show tables from mytest;
    +------------------+
    | Tables_in_mytest |
    +------------------+
    | customer         |
    | goods            |
    | purchase         |
    +------------------+
    3 rows in set (0.00 sec)

    image.gif

    显示数据库中的表,我们使用show tables from 表名这个sql语句来进行显示。


    显示表的结构,拿customer表来举例:

    mysql> desc customer;
    +-------------+-------------+------+-----+---------+-------+
    | Field       | Type        | Null | Key | Default | Extra |
    +-------------+-------------+------+-----+---------+-------+
    | customer_id | int(11)     | YES  |     | NULL    |       |
    | name        | varchar(15) | YES  |     | NULL    |       |
    | address     | varchar(30) | YES  |     | NULL    |       |
    | email       | int(11)     | YES  |     | NULL    |       |
    | sex         | varchar(5)  | YES  |     | NULL    |       |
    | card_id     | int(11)     | YES  |     | NULL    |       |
    +-------------+-------------+------+-----+---------+-------+
    6 rows in set (0.00 sec)

    image.gif

    显示表结构就比较简单,之间使用desc 表名即可。

    总结:通过这篇博文,我们可以知道当我们创建成功数据库以及表的时候都会显示出Query Ok ...这段语句,那么这段语句就代表着我们操作正常。在我们显示数据库结构或表结构时候,下方会出现* rows in set (.. sec)这段语句,这段语句就代表着我们数据的行数。


    本期博客到这里就结束了,内容非常的简单,感谢您的阅读。

    相关实践学习
    如何在云端创建MySQL数据库
    开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
    全面了解阿里云能为你做什么
    阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
    相关文章
    |
    2月前
    |
    SQL 存储 Oracle
    Oracle数据库基础教程与操作技巧
    Oracle数据库基础教程与操作技巧
    |
    3月前
    |
    SQL 缓存 Java
    必知的技术知识:hsql数据库使用详解(入门)及快速使用
    必知的技术知识:hsql数据库使用详解(入门)及快速使用
    87 0
    |
    3月前
    |
    SQL 数据库
    sql数据库练习题(涵盖大部分知识点)
    sql数据库练习题(涵盖大部分知识点)
    |
    3月前
    |
    Linux Shell Perl
    编程入门(六)【Linux系统基础操作四】
    编程入门(六)【Linux系统基础操作四】
    34 0
    |
    3月前
    |
    供应链 Ubuntu Linux
    编程入门(六)【Linux系统基础操作一】
    编程入门(六)【Linux系统基础操作一】
    38 0
    |
    3月前
    |
    Linux Shell
    编程入门(六)【Linux系统基础操作三】
    编程入门(六)【Linux系统基础操作三】
    33 0
    |
    3月前
    |
    Linux Shell 数据库
    编程入门(六)【Linux系统基础操作二】
    编程入门(六)【Linux系统基础操作二】
    40 0
    |
    11月前
    |
    存储 安全 编译器
    【C++】C++入门必备知识详细讲解
    【C++】C++入门必备知识详细讲解
    210 0
    |
    11月前
    |
    安全 编译器 C语言
    C++入门必备知识
    C++入门必备知识
    52 0
    |
    11月前
    |
    设计模式 前端开发 JavaScript
    前端Web开发学习,入门到进阶,推荐几本很不错的书籍
    前端Web开发学习,入门到进阶,推荐几本很不错的书籍
    135 0