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

目录

1.数据库的基本操作

1.1显示所有数据库

1.2创建数据库

1.3删除数据库

2.数据库的类型

2.1数值类型

2.2字符串类型

2.3日期类型

3.表的简单操作

3.1创建一个表

3.2显示表的结构

3.3显示数据库中的所有表

3.4删除指定表

4.实战练习

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)

上方代码中的最后一行 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)

上述代码最后一行,显示 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)

我们可以看到,在上述结构中的第二行多出了我们刚刚创建的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)

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

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

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.表的简单操作

一个表的结构如下:


3.1创建一个表

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

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

如创建一个学生表:

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

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


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)

3.3显示数据库中的所有表

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

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

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


3.4删除指定表

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

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

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

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

显示为空,代表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

创建一个名为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)

创建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)

创建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)

显示数据库里面的所有表: 

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

显示数据库中的表,我们使用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)

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

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


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

猜你喜欢

转载自blog.csdn.net/weixin_64916311/article/details/129945726