MySQL:CRUD(有图有实操)

文章目录

  • [📑1. 数据库的操作](#📑1. 数据库的操作)
    • [🌤️1.1 显示当前的数据库](#🌤️1.1 显示当前的数据库)
    • [🌤️1.2 创建数据库](#🌤️1.2 创建数据库)
    • [🌤️1.3 选中数据库](#🌤️1.3 选中数据库)
    • [🌤️1.4 删除数据库](#🌤️1.4 删除数据库)
  • [📑2. 表的操作](#📑2. 表的操作)
    • [🌤️2.1 查看表结构](#🌤️2.1 查看表结构)
    • [🌤️2.2 创建表](#🌤️2.2 创建表)
    • [🌤️2.3 删除表](#🌤️2.3 删除表)
    • [🌤️2.4 向表中插入数据](#🌤️2.4 向表中插入数据)
      • [💫2.4.1 单行数据 + 全列插入](#💫2.4.1 单行数据 + 全列插入)
      • [💫2.4.2 多行数据 + 指定列插入](#💫2.4.2 多行数据 + 指定列插入)
    • [🌤️2.5 查询](#🌤️2.5 查询)
      • [💫2.5.1 全列查询](#💫2.5.1 全列查询)
      • [💫2.5.2 指定列查询](#💫2.5.2 指定列查询)
      • [💫2.5.3 查询字段为表达式](#💫2.5.3 查询字段为表达式)
      • [💫2.5.4 别名(as)](#💫2.5.4 别名(as))
      • [💫2.5.5 去重(distinct)](#💫2.5.5 去重(distinct))
      • [💫2.5.6 排序(order by)](#💫2.5.6 排序(order by))
      • [💫2.5.7 条件查询(where)](#💫2.5.7 条件查询(where))
      • [💫2.5.8 分页查询(limit)](#💫2.5.8 分页查询(limit))
      • [💫2.5.9 修改(Update)](#💫2.5.9 修改(Update))
      • [💫2.5.10 删除(Delete)](#💫2.5.10 删除(Delete))
  • ☁️结语

📑1. 数据库的操作

MySQL命令是不区分大小写的,为了风格统一,以下只使用小写字母。

🌤️1.1 显示当前的数据库

show databases;

示例:显示MySQL中的数据库

还记得刚开始用MySQL,总是忘记写分号...

🌤️1.2 创建数据库

create database 数据库名;

示例:创建一个test数据库

注意:MySQL 5.7 及之前版本默认的字符集是 latin1 ,MySQL 8.0 版本默认的字符集是 utf8mb4 。

🌤️1.3 选中数据库

必须先选中要使用的数据库,才可以操作数据库。

mysql 复制代码
use 数据库名;

如果没选中数据库,就对数据库进行操作,就会出现报错:

选中后,才能正常使用:

🌤️1.4 删除数据库

drop database 数据库名;

使用drop删除数据库时,会把数据库中的表和数据全部删除。

注意:删除操作一定要慎重、慎重,删除后数据基本上不可恢复。

示例:删除test数据库

📑2. 表的操作

🌤️2.1 查看表结构

desc 表名;

示例:查看book结构

🌤️2.2 创建表

create table 表名(字段名 字段类型,字段名 字段类型,...);

示例:创建book表

🌤️2.3 删除表

drop table 表名;

注意:删除操作一定要慎重、慎重,删除后数据基本上不可恢复。

示例:删除book表

🌤️2.4 向表中插入数据

💫2.4.1 单行数据 + 全列插入

insert into 表名 values(...,...,...);

注意括号内的数据必须和定义表的列的数量和顺序一致

示例:向book表中插入一条数据

插入结果:

在MySQL中,now()函数用于返回当前日期和时间。它支持日期和时间的不同格式,并且可以在查询中使用。

💫2.4.2 多行数据 + 指定列插入

insert into 表名 (字段名,字段名,...) values(...,...,...);

注意括号内的数据必须和定义表的列的数量和顺序一致

示例:向book表中插入这样一个数据,作者名为:作者 、价格为:2 的数据。

如果要插入多行数据,只需:insert into 表名 (字段名,字段名,...) values(...,...,...),(...,...,...);即在values后面多加几个小括号,括号中间使用逗号分隔即可。

示例:向book表中一次性插入2个数据。

🌤️2.5 查询

注意:查询也是一个非常危险的操作,在工作中要慎重使用!!因为在工作中表中的数据量很多,这就意味着在查询时服务器要传输大量的数据,可能影响其他人对数据库进行操作,一不小心公司的损失就要进入按分钟计时了!!

💫2.5.1 全列查询

select * from 表名;

示例:查询book表中的内容

💫2.5.2 指定列查询

select 字段名,字段名,.... from 表名

示例:查询book表中的书名和作者

💫2.5.3 查询字段为表达式

select 字段名,字段名... 查找的值,查找的值... from 表名

示例:查询名字为"1"的书

查询book中的书名,以及对应价格+10后的价格。

注意:这里的价格+10后,并不影响数据库中的价格,数据库中的价格仍然是原价格。

💫2.5.4 别名(as)

select 字段名 as 别名 from 表名;

示例:查询一下学生表中的各学生总分

💫2.5.5 去重(distinct)

select distinct 字段名 from 表名;

示例:给english这一列去重

注意:去重并没有改变原数据库中的内容。

💫2.5.6 排序(order by)

select ... from 表名 order by 字段名;

在字段名后面可以写上asc(升序)/desc(降序),如果不写,则默认为升序

注意:

  1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
  2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
  3. 可以对多个字段进行排序,排序优先级随书写顺序

示例1:在students表中按student_id进行升序排序

示例2:在students表中按student_id进行降序排序

示例3:在students表中依次按数学降序,英语升序,语文升序的方式显示

💫2.5.7 条件查询(where)

比较运算符:

逻辑运算符:

注意:

  1. where条件可以使用表达式,但不能使用别名
  2. and的优先级高于or,在同时使用时,需要使用小括号()包裹需要优先执行的部分

示例1: 在studens表中查询englis小于70的学生

示例2: 在studens表中查询所有分数大于70的学生

示例3: 在studens表中查询数学大于70,英语分在[75,85]之间的学生

示例4: 在studens表中查询姓张的学生

💫2.5.8 分页查询(limit)

select ... from 表名 limit s offset n;

以上命令的效果为,从表中查找...,从s开始,向后查n条内容。

1.如果不写s和offset,则默认从0位置开始查找。

2.第一条数据的下标为0

示例1:在studens表中查询2个学生

示例2:在studens表中从第二个学生开始向后查找5个学生

💫2.5.9 修改(Update)

update 表名 set 字段名 = ... ;

注意:修改操作会真正影响数据库中存储的数据

示例1:在studens表中将math这一列全部设置为100

示例2:在students表中将小红的english改为95

💫2.5.10 删除(Delete)

delete from 表名;

示例:在students表中删除张三的成绩

注意:delete和drop是MySQL中两个不同的操作。

  1. delete操作是用于从表中删除数据行。delete语句可以使用where子句指定删除的条件,以确定哪些数据行将被删除。delete语句执行后,被删除的数据行将从表中移除,但表的结构和其他数据行将保持不变。
  2. drop操作是用于删除整个表。drop table语句将删除指定的表以及表中的所有数据和索引。

☁️结语

请给自己些耐心,不要急于求成。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

如有纰漏或错误,欢迎指正


相关推荐
CoderIsArt28 分钟前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧2 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Yaml43 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
Channing Lewis3 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
追风林4 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
毕业设计制作和分享5 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil275 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk6 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境6 小时前
第02章 MySQL环境搭建
数据库·mysql
knight-n6 小时前
MYSQL库的操作
数据库·mysql