MySQL安装及应用合集(4):MySQL库表基本操作-增删改查

前面介绍完安装和配置完成之后,接下来就可以大展拳脚了!
下面介绍一下一些库表的基本操作,方便需要的读者直接落地实践。直接看代码注释和截图吧~

一、建库和删库

建库和删库比较简单,一条语句即可。需要注意的是,删库的时候会把数据库下所有的表都删除,谨慎操作!

-- 建库
create database my_data;
-- 查看创建的库
show databases;
-- 删库
drop database my_data;

以上代码,运行截图如下:
image.png


2022/07/17补充:
建库的时候,建议带上字符集,即:(以下两种都可以)

create database my_data default charset utf8;
create database if not exists my_data default charset utf8;

当我通过msi安装包安装之后,建库默认使用了latin1_swedish_ci字符集,该字符集仅支持英文,不支持中文,这会导致插入数据时,如果带有中文字符时会报错,截图如下:
在这里插入图片描述
这种情况下有几个解决方案:
方案1:删库重建
方案2:修改库/表的字符规则

-- 修改库的字符集
alter database my_data default character set utf8 collate utf8_general_ci;
-- 修改表的字符集
alter table my_data.users convert to character set utf8 collate utf8_general_ci;
-- 修改表的字段的字符集
alter table my_data.users change province province varchar(16) character set utf8 collate utf8_general_ci;
alter table my_data.users change city city varchar(16) character set utf8 collate utf8_general_ci;

二、建表和删表

注意:执行以下代码,需要有my_data库,请在创建my_data库之后执行以下代码。

create时加上if not existsdrop时加上if exists是为了防止报错,可选择加或者不加。建表时,比较繁琐一些,需要字段名、字段类型和一些配置信息。

-- 建表
create table if not exists my_data.users
(
     user_id        bigint      not null auto_increment            comment '用户ID'
    ,sex            int                  default 2                 comment '性别 0女 1男 2未知'
    ,age            int                                            comment '年龄'
    ,mobile         varchar(16) not null                           comment '手机号'
    ,wxid           varchar(32)                                    comment '微信号'
    ,province       varchar(16)                                    comment '省份'
    ,city           varchar(16)                                    comment '城市'
    ,created_at     datetime    not null default current_timestamp comment '创建时间'
    ,update_at      datetime    not null default current_timestamp on update current_timestamp comment '更新时间'
    ,primary key(user_id)
) comment '用户表 by Xin学数据';
 
-- 查看表
show tables from my_data;
desc my_data.users;
 
-- 删表
drop table if exists my_data.users;

以上代码,运行截图如下:
image.png

三、表数据的基本操作

注意:执行一下步骤,需要有my_data库和该库下有users表,请创建完my_data库和该库下users表(上一步已经把表删了,再粘贴跑一遍建表语句即可)再执行。

3.1 插入数据

插入数据时可以指定字段插入,其他没有插入数据的字段一般返回null,除非你指定了默认值,像我制定了sex默认值是2,插入的时候,没有插入sex字段则取默认值2。插入数据有多种方法,学习时都可以玩一玩。

-- 插入一行数据
insert into my_data.users(sex,age,mobile,wxid,province,city) values(null,20,'12345678901',null,'北京','北京');
insert into my_data.users(user_id,age,mobile,wxid,province,city) values(3,20,'22345678901',null,'上海','上海');
 
-- 插入多行数据,使用values()
insert into my_data.users(sex,age,mobile,wxid,province,city) values
(1,30,'32345678901',null,'广东','广州'),
(2,23,'13345678901',null,'广东','深圳'),
(0,25,'15345678901',null,'浙江','杭州');
 
-- 插入多行数据,使用select 语句(由于没有其他表,直接用union拼几行数据)
insert into my_data.users(sex,age,mobile,wxid,province,city) 
select 0,25,'16345678901',null,'福建','厦门' union all
select 1,25,'16345678901',null,'四川','成都' union all
select 2,25,'16345678901',null,'浙江','杭州' 
;
 
-- 新增列
alter table my_data.users add income double after city;

以上代码,运行截图如下:
image.png
image.png
image.png

3.2 删除数据

如果是要清空表的数据,把删除行的语法中的where条件去掉即可。注意,deletedrop操作表是不同的,delete是删除数据,不删表;而drop直接把表删除了,数据也会连带删掉。

-- 删除行
delete from my_data.users where user_id=1;
 
-- 删除列
alter table my_data.users drop column income;

以上代码,运行截图如下:
image.png
image.png

3.3 修改数据

-- 修改数据
update my_data.users set sex=1,age=22 where user_id=3; 

以上代码,运行截图如下:
image.png

3.4 查询数据

最基本的查询就是一个select xx from tables;,上面已经有展示了好多相关的查询语句和结果,此处略过。

-- 查询数据
select * from my_data.users limit 100;

四、小结

上面按照库、表、数据的维度进行讲解,下面以增、删、改、查的维度做下总结汇总:

-- 增
create database db_name;
create table tb_name(col_name [type]……);
alter table tb_name add col_name [type]……;
insert into my_data.users(col_names) values(<values>);
insert into my_data.users(col_names) values(<values>),(<values>),(<values>)……;
insert into my_data.users(col_names) select col_name from tb_name;
 
-- 删
drop database db_name;
drop table tb_name;
delete from tb_name where <condition>;
alter table tb_name drop column col_name;
 
-- 改
update db_name set col_name=xx,col_name=xx where <condition>; 
 
-- 查
show databases;
show table from db_name;
desc tb_name;
select * from db_name limit 100;
 
# 注释:
# db_name: 数据库名
# tb_name: 表名
# col_name(s): 字段名
# <values>: 值
# <condition>: 条件

【传送门】合集内容:
MySQL安装及应用合集(1):MySQL安装方式介绍
MySQL安装及应用合集(2):zip安裝包的安装方式
MySQL安装及应用合集(3):msi安裝包的安装方式
MySQL安装及应用合集(4):MySQL库表基本操作-增删改查
MySQL安装及应用合集(5):如何优雅地写SQL(待补充)
MySQL安装及应用合集(6):MySQL函数快速验证(待补充)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Xin学数据

为你点亮一盏灯,愿你前进无阻。

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

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

打赏作者

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

抵扣说明:

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

余额充值