MySQL数据库的使用(二)-表的增删改查

初学数据库的基本概念
MySQL数据库的使用(一)-数据库的增删改查

前言

今天主要来学习数据库表的增删改查内容,用到的语句特别多,一起来看下如何使用。


一. 使用数据库表

使用任何一类技术,都是离不开增删改查的,而表(table)既是如此,那么就从进入数据库开始讲起,如何使用增删改查的SQL语句。

刚进入数据库时,可以使用show databases;显示数据库有哪些内容

show database;
create database book;
use book;

example:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| book               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
mysql> use book;
Database changed

输入use book;,输出显示Database changed就是显示已经进入到book数据库中了。


若此时输入show tables;查看表下有什么内容,显示Empty set 表示目前表为空的。

mysql> show tables;
Empty set (0.00 sec)

如果不知道现在在哪个数据库下面,可以使用这条语句查看当前位置;

mysql> select database();
+------------+
| database() |
+------------+
| book       |
+------------+
1 row in set (0.00 sec)

那么接下来我们就可以在表中创建一些内容,使用create语句。

二. 创建表(create)

2.1 创建一个表

创建表的同时需要设置表的列与类型,就好像Excel中创建一个列表需要给他字段名,这样才知道每列应该写什么信息;而数据库中还有字段的类型,字段的类型比较多,待会再来讲。
在这里插入图片描述
格式:

create table 表名(字段名 类型(设置的长度));
mysql> create table book(id int(10),bname varchar(30));
Query OK, 0 rows affected, 1 warning (0.12 sec)

前面是它的固定格式 create table 表名,括号里面的内容是字段名和数据类型,数据类型旁边括号中的数字是表示类型的长度。
int 是表示数值类型,也就是可以输入数字的,而varchar是字符串类型,可以填汉字,英文,字符等信息。

2.2 添加表的字段类型

当前若需要继续添加表的字段和类型,可以使用这个语句;

alter table 表名 add 字段 类型;

example:

mysql> alter table book add price int(20);
Query OK, 0 rows affected, 1 warning (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> desc book;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| bid   | int         | YES  |     | NULL    |       |
| bname | varchar(30) | YES  |     | NULL    |       |
| price | int         | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

其实还可以选择添加在第一行,还是说添加在某某行下面,使用这条语句;

#在表中的第一行添加字段和类型
alter table 表名 add 字段 类型 first;  
#添加字段到某一行的后面
alter table 表名 add 字段 类型 after 字段;

example:

mysql> alter table book add b_date date first;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table book add press varchar(30) after bname;
Query OK, 0 rows affected (0.11 sec)
Records: 0  Duplicates: 0  Warnings: 0

三. 查看表(show)

查看数据库下有哪些表可以使用这个语句查看;

mysql> show tables;
+-----------------+
| Tables_in_books |
+-----------------+
| book            |
+-----------------+
1 row in set (0.00 sec)

3.1 查看表的结构

下面我们来查看下刚刚创建的表的结构;

mysql> desc book;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| b_date | date        | YES  |     | NULL    |       |
| bid    | int         | YES  |     | NULL    |       |
| bname  | varchar(30) | YES  |     | NULL    |       |
| press  | varchar(30) | YES  |     | NULL    |       |
| price  | int         | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

使用desc 表名;就会显示表的结构,
Field表示的是字段,列的意思
type是数据类型
Null表示内容是否能为空值,默认是yes支持空值,not null是不支持空值。
key是索引类型(内容比较多)–后续介绍
default表示未填写的数据默认为null,当然也可以设置成其他的显示内容。
Extra表示是附加信息,后面详细去讲 --(埋坑)

上面写了一种查看表结构的方法,实际上还有三种方式是可以用来查看表结构的语句;

show columns from 数据库名,表名;
explain 表名;
show fields from 表名;

example:

mysql> explain book;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| b_date | date        | YES  |     | NULL    |       |
| bid    | int         | YES  |     | NULL    |       |
| bname  | varchar(30) | YES  |     | NULL    |       |
| press  | varchar(30) | YES  |     | NULL    |       |
| price  | int         | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> show fields from book;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| b_date | date        | YES  |     | NULL    |       |
| bid    | int         | YES  |     | NULL    |       |
| bname  | varchar(30) | YES  |     | NULL    |       |
| press  | varchar(30) | YES  |     | NULL    |       |
| price  | int         | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> show columns from books.book;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| b_date | date        | YES  |     | NULL    |       |
| bid    | int         | YES  |     | NULL    |       |
| bname  | varchar(30) | YES  |     | NULL    |       |
| press  | varchar(30) | YES  |     | NULL    |       |
| price  | int         | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

四. 修改表(alter)

如果创建出来表名发现表名写错了,那么这个时候不要慌,还是可以修改的,一起来看下使用这条语句;

alter table 原表名 rename 新表名

example:

mysql> alter table book rename book_table;
Query OK, 0 rows affected (0.04 sec)

其实字段和类型也是可以修改的,先看看只修改字段的类型;

alter table 表名 modify 字段名 新类型

example:

mysql> alter table book_table modify id tinyint(4);
Query OK, 0 rows affected, 1 warning (0.17 sec)
Records: 0  Duplicates: 0  Warnings: 1

将字段和类型一起修改的语句;

alter table 表名 change 原字段名 新字段名 新类型

example:

mysql> alter table book change id bid int(20);
Query OK, 0 rows affected, 1 warning (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> desc book;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| bid   | int         | YES  |     | NULL    |       |
| bname | varchar(30) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

五. 删除表(drop)

无论删除什么东西,都要思考再三,确认可以删除的情况下,在进行此操作。
删除表的语句;

drop table 表;

example:

mysql> drop table book;
Query OK, 0 rows affected (0.02 sec)

总结

数据库表的增删改查内容丰富,可以反复浏览,若觉得内容不错的,可以收藏点赞!

猜你喜欢

转载自blog.csdn.net/rhn_111/article/details/129557567
今日推荐