初学数据库的基本概念
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)
总结
数据库表的增删改查内容丰富,可以反复浏览,若觉得内容不错的,可以收藏点赞!