当前位置: 首页 > news >正文

Mysql数据库——增删改查CRUD

文章目录

    • 一、数据库的基础命令
    • 二、创建表
    • 三、增(create)
    • 四、查询(retrieve)
    • 五、条件查询(where)
    • 六、修改(update)
    • 七、删除(delete)

一、数据库的基础命令

1.使用客户端连接服务器
mysql -u root -p
2. 使用net命令启动和关闭MYSQL服务器
打开服务:net start mysql版本号
关闭服务:net stop mysql版本号
例如:net start mysql80
3.退出服务器
quit;或者\q;
4.使用“status:”命令查看MySQL的状态信息。
status
5.查看数据库
show databases;
6.创建数据库
create database 库名;
字符集和排序规则都是数据库默认的。
create database [if not exists] 库名;
括号里面的判断可以省略,加上就是判断一下数据库里面有没有你当前创建的库名。
没有就创建成功,有点话创建失败给出一条警告信息。
或自己设置字符集和排序规则的建库方式
例如:创建一个库名为test的数据库,并指定字符集和排序规则。
create database if not exists test character set utf8mb4 collate utf8mb4_0900_ai_ci;
7.查看警告信息。
show warnings;
8.查看当前数据库默认字符集
show variables like ‘%character%’;
9.切换数据库。
use 库名;
10.查看当前选择的数据库名。
select database();
11.删除数据库。
drop database 库名;
接下来开始步入正题。增删改查都是基于表的操作首先需要创建表。

二、创建表

1.创建一张新表
create table 表名 (数据类型 字段名,[数据类型 字段名…]);
例如:创建考试成绩表
CREATE TABLE exam (
id bigint,
name VARCHAR(20),
chinese DECIMAL(3,1),
math DECIMAL(3,1),
english DECIMAL(3,1)
);
大小写都可以,MySQL中不区分大小写。
2.查看表结构
describe 表名;
或 desc 表名;

3.删除表
drop table [if exists] 表名;
4.向表中增加新的字段名
alter table 表名 add column 字段名 数据类型;
例如:向表中增加入学时间属性列,其列名为rxsj,数据类型为datetime型。
alter table xs add column rxsj datetime;
5.修改表中字段名的 类型
alter table 表名 modify 字段名 数据类型;
例如:将表xs中nl(年龄)列数据类型改为int.
alter table xs modify nl int;
6.修改字段名。
alter table 表名 change 旧的字段名 新的字段名 数据类型;
例如:修改cj列名为mark
alter table kc change cj mark char(4);
7.删除列。
alter table 表名 drop column 字段名;
例如:删除mark列
alter table kc drop column mark;
8.修改表名。
alter table 旧的表名 rename to 新的表名;

三、增(create)

insert into 表名 [(字段名,字段名)] values(值1,值1),(值2,值2);
字段名必须和表中的相符,可以是一个或者多个
值的类型必须和字段的类型一致并且要和前面指定的字段名相对应。
字符类型需要用单引号引起来。
字段名省略不写的时候默认是全列插入,所有的列都需要插入值,插入值的顺序和表中字段名的顺序一致。
添加的值可以是一个或者多个。
例如:INSERT INTO exam (id,name, chinese, math, english) VALUES
(1,‘唐三藏’, 67, 98, 56),
(2,‘孙悟空’, 87.5, 78, 77),
(3,‘猪悟能’, 88, 98, 90),
(4,‘曹孟德’, 82, 84, 67),
(5,‘刘玄德’, 55.5, 85, 45),
(6,‘孙权’, 70, 73, 78.5),
(7,‘宋公明’, 75, 65, 30);

四、查询(retrieve)

1.全列查询
select * from 表名;
例如:select * from student;
*代表所有的列。
指定列查询
select 字段名,字段名…from 表名;
例如:select id,name from student;
2.表达式查询
例如:select id,name chinese+math+english from score;
查询语文数学英语成绩的总和。
3.as关键字
例如:select id,name chinese+math+english as ‘总分’ from score;
as可以为表达式或者字段取别名。如果是字符需要用单引号引起来。as也可以省略。
4.distinct
例如:select distinct math from student;
distinct作用是去重。去掉相同的元组。distinct去重标准是两条数据所有的字段都必须一样才会被认为是相同是数据。
5.order by
例如:select * from exam order by math asc;
在exam表中按照数学成绩按照从小到大排列。
order by:排序的作用。asc是升序排序,desc是降序排序。没有写排序规则默认是升序排序。
null值排序视为比任何值都小,升序在最上面,降序在最下面。
5.1使用表达式排序
例如:select id,name,chinese+math+english as ‘总分’ from exam order ‘总分’ by desc;
5.3多级排序
select id,name,chinese,math,english from exam order by chinese desc,math asc,english desc;
先按语文降序排序,再按数学升序排序,再按英语降序排序。

五、条件查询(where)

1.比较运算符
1.1 >,>=,=,<=>,<,<=,!=,between a0 and a1,in(option),is null,is not null,like
分别是大于,大于等于,等于(null不安全)等于(null安全),小于,小于等于。不等于,范围匹配,如果是option中某一个返回true,是空值,不是空值,模糊匹配。
1.2<=>区别=
<=>把 NULL 当成一个“确定的值”来比较。两边同为 NULL 返回 1;一边 NULL、另一边非 NULL 返回 0;两边都非 NULL 时按普通数值/字符串比较。
。=如果两边任意一边为 NULL,结果直接是 NULL(既不是 0 也不是 1)。只有两边都非 NULL 且值相等时才返回 1,不等时返回 0。
因此,当你需要“把 NULL 视为普通值”来做比较(常见于 JOIN 条件或 WHERE 过滤)时,用 <=>;否则用普通 = 即可。
between a0 and a1
between a0 and a1是一个闭区间运算符支持数值,日期,字符串。
例如:SELECT * FROM products WHERE price BETWEEN 10 AND 20;
查询价格在[10,20]区间的产品。
– 日期
WHERE hire_date BETWEEN ‘2024-01-01’ AND ‘2024-12-31’;
– 字符串(按字典序)
WHERE name BETWEEN ‘Alice’ AND ‘Bob’;
in
in是一个用于判断某个值是否在一组给定值中的运算符
WHERE 列名 IN (值1, 值2, 值3, …);
例如:select * from exam where math in(90,91,92);
从 exam 表中选出 math 字段的值为 90、91 或 92 的所有记录。
like

通配符含义示例匹配结果
%0 个或多个字符'A%'Apple, A, ABC…
_单个字符'A_'An, At, A1(仅2位)

一个_就可以匹配一个字符两个_ 就可以匹配两个字符以此类推。
– 1. 查找以 A 开头的名字
SELECT * FROM users WHERE name LIKE ‘A%’;
– 2. 查找名字是 4 个字符且以 A 开头
SELECT * FROM users WHERE name LIKE 'A
__'; – 3 个下划线
– 3. 查找包含字母 B 的名字
SELECT * FROM users WHERE name LIKE ‘%B%’;
逻辑运算符

运算符含义示例说明
AND与(两边都为真才真)WHERE age > 18 AND gender = 'F'年龄>18 且 性别为女
OR或(任意一边为真即真)WHERE city = 'BJ' OR city = 'SH'城市是北京 或 上海
NOT非(取反)WHERE NOT (score < 60)分数不低于 60

limit分页查询

参数含义
偏移量 (offset)从第几条开始取(第一条是 0)
行数 (rows)取多少条

例如:SELECT * FROM exam ORDER BY id LIMIT 2 OFFSET 0;
或SELECT * FROM exam ORDER BY id LIMIT 0, 2;
按 id 升序排序,从第 0 条开始取 2 条记录(即第 1、2 条)。

六、修改(update)

UPDATE 表名
SET 列1 = 新值1,
列2 = 新值2,

[WHERE 条件]; – 不写 WHERE 会更新整张表!
例如:把学号为 1001 的学生数学成绩改为 95:
update student set math=95 where id=1001;

七、删除(delete)

目的示例
删除某一行DELETE FROM exam WHERE id = 1001;
删除多行DELETE FROM exam WHERE math < 60;
清空整张表(保留结构)DELETE FROM exam;
删除前 N 条(MySQL 扩展)DELETE FROM exam WHERE math < 60 LIMIT 10;

例如:DELETE FROM student WHERE id = 1001;
总结:
在这里插入图片描述
完结。

http://www.lryc.cn/news/592117.html

相关文章:

  • Jfinal+SQLite解决MYSQL迁移表未复制索引问题,完善迁移工具
  • 算法学习笔记:29.拓扑排序——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • hadoop(服务器伪分布式搭建)
  • 瀚高数据库开启Oracle兼容模块
  • Oracle 11g RAC 高可用集群部署最佳实践
  • SQLite / LiteDB 单文件数据库为何“清空表后仍占几 GB”?——原理解析与空间回收实战
  • Golang 中 JSON 和 XML 解析与生成的完全指南
  • sqli-labs靶场通关笔记:第29-31关 HTTP参数污染
  • 配置本地git到gitlab并推送
  • 【LeetCode 热题 100】199. 二叉树的右视图——(解法一)BFS
  • Visual Studio编译WPF项目生成的文件介绍
  • Newline全场景方案闪耀2025中国智慧生活大会
  • UniApp -- 小程序自定义导航栏组件
  • 共享模式、社群与开源链动2+1模式AI智能名片S2B2C商城小程序的协同发展研究
  • usb转can测试
  • 为Notepad++插上JSON格式化的翅膀
  • 全国计算机等级考试二级题库【C语言】:程序修改题型——结构体、可变数组、链表 自制答案详解合辑
  • 在 ASP.NET Core 和 JavaScript 中配置 WebSocket
  • 【计算机网络】MAC地址与IP地址:网络通信的双重身份标识
  • 依托CCLinkIE转ModbusTCP网关的转换达成西门子PLC连接配置案例
  • 计算机网络基础:从协议到通信全解析(大致框架)
  • Selenium自动化浏览器操作指南
  • websocket案例 599足球比分
  • IDEA高效开发:Database Navigator插件安装与核心使用指南
  • 【后端】.NET Core API框架搭建(10) --配置163邮件发送服务
  • 应用集成体系深度解析:从数据互通到流程协同
  • 实现库存显示和状态按钮的Question
  • nginx定制http头信息
  • python实现Markdown转化PDF的方案
  • 关于字符编辑器vi、vim版本的安装过程及其常用命令: