跟着小豆学SQL:1 [基础]数据库和表操作
请先安装datagrip再在root数据库中运行下面的命令
先查看一下所有的数据库吧
show databases;
好的,我们已经看到了mysql中的所有数据库。
下面,我们需要创建一个数据库,并且给他起名叫test
create database test;
在这里报错了吗?如果没有,请再执行一次
这是因为数据库已经存在了test这个名字的数据库,在上面那句话的最前面添加 # 再重新执行
让我们试一试添加一句话 if not exists
create database if not exists test;
好的,数据库已经创建好了,这句话是什么意思呢?
create database 创建数据库
if not exists test 如果名为test的数据库不存在的话
整句连在一起就是 创建一个名为test的数据库,如果名为test的数据库不存在
接下来,让我们看看这个数据库吧
show databases like 'test';
你应该注意到我添加了新东西 like
是的,这是like匹配,你可以把''中的test换成 ___t 尝试
这样它会匹配前三个为任何字符最后一个为t的数据库 像这样
show databases like '___t';
当然,你也可以换成 %t 这样它会匹配前面为若干个字符最后一个为t的数据库,像这样
show databases like '%t';
是不是看到了test数据库?
修改表的名字
alter table user rename user1;
show tables ;
自己改回来吧,可以参考我的代码
alter table user1 rename user;
下面还有删除数据库
drop database test;
让我们看看数据库还在不在
show databases;
是不是test数据库已经不在了呢?
请忽略这一句,但请运行它
create database test;
好的,该你来试一试了,在下面的空白地方试一试创建删除数据库吧
删除数据库
创建数据库
创建数据库如果数据库不存在
很好,让我们选择我们创建的数据库
use test;
我们查看下我们现在是哪个数据库吧
select database();
是的,是test数据库!
很好!下面让我们来为数据库添加一个名叫user的表
create table if not exists user (
username varchar(16) comment '用户名',
password varchar(16) comment '用户密码'
) comment '用户表';
好,接下来让我们看看test数据库中的表
show tables;
我们已经看到了我们创建的user表,下面我们看看这个表的结构
desc user;
我们可以看到user表有username和password两个字段构成,其类型为varchar
好的,下面让我们来看看这个表的创建语句?
show create table user;
嘿,该你来试试了,下面是我的需求
创建一个product表,并创建如下字段
product_name 产品名 类型为 varchar(16) (字符串类型,相比于char它的性能较差,但可以存储小于或等于16位的字符串)
price 价格 类型为 decimal(6,2) (decimal常用于精确数字存储,如货币余额等,其中6表示一共可以存储6位长度的数字,其中小数位数为2位)
num 数量 类型为 int
create_time 创建时间 datetime (时间类型,用于存储时间)
创建成功了吗?不会的话可以看看我的代码
/*
create table product (
product_name varchar(16) comment '产品名',
price decimal(6,2) comment '产品价格',
num int comment '剩余产品数量',
create_time datetime comment '创建时间'
);
*/
让我们看看你创建的表
show tables;
是不是有了呢?你也可以向上面那样查看表的结构哦
哦天,我忘了在user表中插入一个user_id字段了,让我们插入这个字段吧
通常我们需要为user单独设置user_id这个字段,它将用于在其他表中索引
因此,我们需要为它设置主键 primary key
同时为了方便我们,我们需要设置为自增 auto_increment
alter table user add user_id int comment '用户ID' auto_increment primary key;
让我们看看吧
desc user;
看到了primary key 和 extra中的auto_increment吗?这就是主键和自增。
主键会增快我们搜索的速度,如果数据量较大的话
现在user_id在第三行,我们需要它在第一行,也就是在username前面
因为我们在上面设置了主键,因此我们不需要再设置,但其他的依旧
alter table user modify user_id int comment '用户ID' auto_increment first;
再让我们看看这个字段吧
desc user;
是不是在第一行了呢?
我们现在修改这个字段名字吧 当然,除了主键其他设置也需要带上哦
alter table user change user_id user_idd int comment '用户ID' auto_increment;
desc user;
是不是变成了user_idd了?我们也可以单独修改名字
alter table user drop user_idd;
desc user;
字段被删除了吧?哈哈你自己添加吧,可以参考我下面的代码哦
alter table user add user_id int comment '用户ID' auto_increment primary key first;
还有最后一个代码!清空表
truncate table user;
至此,表被清空重建不会再有任何内容,包括自增,当然结构还是存在的
- 请先安装datagrip再在root数据库中运行下面的命令
- 先查看一下所有的数据库吧
- 好的,我们已经看到了mysql中的所有数据库。
- 下面,我们需要创建一个数据库,并且给他起名叫test
- 在这里报错了吗?如果没有,请再执行一次
- 这是因为数据库已经存在了test这个名字的数据库,在上面那句话的最前面添加 # 再重新执行
- 让我们试一试添加一句话 if not exists
- 好的,数据库已经创建好了,这句话是什么意思呢?
- create database 创建数据库
- if not exists test 如果名为test的数据库不存在的话
- 整句连在一起就是 创建一个名为test的数据库,如果名为test的数据库不存在
- 接下来,让我们看看这个数据库吧
- 你应该注意到我添加了新东西 like
- 是的,这是like匹配,你可以把''中的test换成 ___t 尝试
- 这样它会匹配前三个为任何字符最后一个为t的数据库 像这样
- 当然,你也可以换成 %t 这样它会匹配前面为若干个字符最后一个为t的数据库,像这样
- 是不是看到了test数据库?
- 修改表的名字
- 自己改回来吧,可以参考我的代码
- alter table user1 rename user;
- 下面还有删除数据库
- 让我们看看数据库还在不在
- 是不是test数据库已经不在了呢?
- 请忽略这一句,但请运行它
- 好的,该你来试一试了,在下面的空白地方试一试创建删除数据库吧
- 删除数据库
- 创建数据库
- 创建数据库如果数据库不存在
- 很好,让我们选择我们创建的数据库
- 我们查看下我们现在是哪个数据库吧
- 是的,是test数据库!
- 很好!下面让我们来为数据库添加一个名叫user的表
- 好,接下来让我们看看test数据库中的表
- 我们已经看到了我们创建的user表,下面我们看看这个表的结构
- 我们可以看到user表有username和password两个字段构成,其类型为varchar
- 好的,下面让我们来看看这个表的创建语句?
- 嘿,该你来试试了,下面是我的需求
- 创建一个product表,并创建如下字段
- product_name 产品名 类型为 varchar(16) (字符串类型,相比于char它的性能较差,但可以存储小于或等于16位的字符串)
- price 价格 类型为 decimal(6,2) (decimal常用于精确数字存储,如货币余额等,其中6表示一共可以存储6位长度的数字,其中小数位数为2位)
- num 数量 类型为 int
- create_time 创建时间 datetime (时间类型,用于存储时间)
- 创建成功了吗?不会的话可以看看我的代码
- 让我们看看你创建的表
- 是不是有了呢?你也可以向上面那样查看表的结构哦
- 哦天,我忘了在user表中插入一个user_id字段了,让我们插入这个字段吧
- 通常我们需要为user单独设置user_id这个字段,它将用于在其他表中索引
- 因此,我们需要为它设置主键 primary key
- 同时为了方便我们,我们需要设置为自增 auto_increment
- 让我们看看吧
- 看到了primary key 和 extra中的auto_increment吗?这就是主键和自增。
- 主键会增快我们搜索的速度,如果数据量较大的话
- 现在user_id在第三行,我们需要它在第一行,也就是在username前面
- 因为我们在上面设置了主键,因此我们不需要再设置,但其他的依旧
- 再让我们看看这个字段吧
- 是不是在第一行了呢?
- 我们现在修改这个字段名字吧 当然,除了主键其他设置也需要带上哦
- 是不是变成了user_idd了?我们也可以单独修改名字
- 字段被删除了吧?哈哈你自己添加吧,可以参考我下面的代码哦
- alter table user add user_id int comment '用户ID' auto_increment primary key first;
- 还有最后一个代码!清空表
- 至此,表被清空重建不会再有任何内容,包括自增,当然结构还是存在的
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。