编辑
编辑
目录
编辑
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)这段语句,这段语句就代表着我们数据的行数。
本期博客到这里就结束了,内容非常的简单,感谢您的阅读。