MySQL数据库及表的创建、删除、修改

关注【郑大钱呀】【公】【众】【号】,我们一起交流,一起学习。

1.1 创建并查看数据库

在我们学习数据库之前,首先得有个数据库,吃饭前咱先得先找个碗,下面我们来创建一个新的数据库,创建数据库的语法如下:

# 直接创建数据库
create database 数据库名;

下面我们通过命令行连接数据库服务器,并创建一个新的数据库,示例代码如下:

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

创建完成后,我们可以通过show databases,查看MYSQL服务器中所有的数据库,示例代码如下:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| finance            |
| information_schema |
| mysql              |
| performance_schema |
| study              |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

从上面的结果中,我们就能找到我们新创建的study的库了,但是如果此时已经有了一个study的数据库了,我们创建就会报错,示例入下:

mysql> create database study;
ERROR 1007 (HY000): Can't create database 'study'; database exists

那么我们有没有一种方式,在创建数据的时候,有个判断呢,当数据库已经存在时,就不创建,没有才创建,当然有,语法如下:

# 如果数据库存在则不创建,如果不存在则创建
create database if not exists 数据库名;

此外当我们创建数据库的时候,也可以设置字符集,如果不设置,数据库会为其指定默认的字符集,设置字符集的语法如下:

# 创建数据库的时候,为数据库设置字符集
create database 数据库名 character set 字符集;

1.2 删除数据库

当我们数据库创建错了,或者数据库不需要了,我们此时就需要删除我们不需要的数据库,语法如下:

drop database 数据库名称;

示例代码如下:

mysql> drop database study;
Query OK, 0 rows affected (0.01 sec)

删库的操作,要慎重,尤其在生产环境,删除导致的损失太大,情节严重的要负法律责任的。

1.3 使用数据库

我们通过show databases;命令查询出很多的数据库,当我们使用的时候,需要先指定我们使用那个数据库,语法如下:

use 数据库名称;

示例代码如下:

mysql> use study;
Database changed

当你指定完数据库后,你之后的所有操作(增删改查等)都是在指定的数据库中进行的。在命令行模式下操作数据库时,是不会显示我们正在操作那个库的,如果我们忘记了,可以通过如下命令,查询当前使用的那个数据库:

select database();

示例代码如下:

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

2.1表的操作

创建表

我们上面创了数据库,但是是一个空的数据库,里面没有任何内容,我们都知道在数据库中放着的是一张张表,创建表的语法如下:

create table if not exists 表名(
字段名 字段类型(长度) [约束],
字段名 字段类型(长度) [约束],
字段名 字段类型(长度) [约束],
...
);

我们都知道一张表,首先它得有一个表名,然后表格由行和列组成的,每一列都有个列名,列名就是我们这里的字段名,同时我们需要指定列的数据类型长度约束,当然约束不是每个字段都需要的。下面我们以学生表为例,创建一张表:

mysql> CREATE TABLE student(
    -> id INT PRIMARY KEY, # 编号
    -> name CHAR(30), # 名字
    -> age TINYINT #年龄
    -> );
Query OK, 0 rows affected (0.03 sec)

在上面表中我们创建一张有3个字段的表,其中id字段增加了一个主键约束,表示该字段的值都是唯一的,不能重复且不能为空,值得注意的是,最后一个字段age,不需要加,,否则会报错,除此之外,在创建表之前,需要先指定数据库

查看表

当我们表创建成功后,我们可以使用show tables;命令来查看数据库中的所有表,示例如下:

mysql> show tables;
+-----------------+
| Tables_in_study |
+-----------------+
| student         |
+-----------------+
1 row in set (0.01 sec)
mysql> 

从上面的结果中,就可以找到我们创建的student

修改表结构

我们在表创建完成后,突然想修改,比如想添加一个新的列,我们该怎么做呢,语法如下:

ALTER TABLE 表名 ADD `列名` 数据类型;

比如我们想在上面的student表中,添加一个身高的列,示例代码如下:

mysql> alter table student add `height` FLOAT;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

注意,添加的列名需要加上反引号,不是单引号。

上面我们新增了一个列,要是我们想修改已经存在的列怎么办呢,比如我们想把student表中height名称修改成tall,语法如下:

ALTER TBALE 表名 CHANGE `旧列名`  新列名 字段类型;

示例代码如下:

mysql> alter table student change `height` tall float;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | NO   | PRI | NULL    |       |
| name  | char(30) | YES  |     | NULL    |       |
| age   | tinyint  | YES  |     | NULL    |       |
| tall  | float    | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
4 rows in set (0.01 sec)

mysql> 

上面我们说了都是修改列,我们也可删除表中的列,语法如下:

ALTER TABLE 表名 drop 列名;

示例代码如下:

mysql> alter table student drop tall;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> 

除此之外,我们还可以对表进行重命名,我们可以使用如下语法:

rename table `旧表名` to 新表名;

示例代码如下:

mysql> rename table `student` to stu;
Query OK, 0 rows affected (0.01 sec)

查看表结构

上面的表是我们创建的,所以我们知道表中有哪些字段和约束,但是如果是别人创建的表,或者时间长我们忘记了表的结构,此时我们可以通过desc 表名;来查看表结构,示例代码如下:

mysql> desc student;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | NO   | PRI | NULL    |       |
| name  | char(30) | YES  |     | NULL    |       |
| age   | tinyint  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)

从上面的信息中,我们就知道这个表有哪些字段、字段的数据类型、是否为空、约束等信息。

删除表

当我们某张表不想要了,需要删除的时候,此时我们可以通过drop table 表名;的方式来删除表,示例代码如下:

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

3.1 结尾

本期的内容就到这里了,如有不足之处还请大家多多指正,欢迎大家留言、关注、转发、收藏,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑大钱呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值