10.31 MySQL数据记录操作

数据记录操作

添加一条数据
SQL 复制代码
INSERT INTO 表名 [(字段名1,字段名2,...字段名n)] VALUES('值1','值2',...,'值n');
添加多条数据
SQL 复制代码
INSERT INTO 表名 [(字段名1,字段名2,...字段名n)] 
VALUES('值1','值2',...,'值n'),
('值1','值2',...,'值n'),
......
('值1','值2',...,'值n');
删除记录
SQL 复制代码
delete from 表名 [where 条件子句] [order by 字段 asc|desc ] [limit 条数]
删除全部记录
SQL 复制代码
truncate table 表名
更新记录

根据条件更新记录

SQL 复制代码
update 表名  set  字段名=新值,字段名=新值,....... [where 条件子句] [order by 字段 asc|desc ] [limit 条数]
查询记录

单表查询

SQL 复制代码
select 字段1,字段2,...... from 表名 [where 条件子句] [group by 字段][having 条件子句][order by 字段 asc|desc] [limit [起始值] 条数]

where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据

查询练习

查询全体学生的学号与姓名

查询全体学生的详细记录。

查全体学生的姓名及其出生年份。

查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名

查询选修了课程的学生学号(去掉重复的记录)

查询全体学生的学号与姓名,用中文显示列名。

给表设置别名。

查询年龄在20以下的学生的姓名。

查询全体学生的姓名、年龄,要求按照年龄降序排序。

查询年龄最大的前3个学生的姓名和年龄,或第4、5个学生

Alias 别名

通过使用 SQL,可以为字段名称和表名称指定别名

SQL 复制代码
SELECT 字段名 AS 别名  FROM 表名
SELECT * FROM 表名 AS 表别名---多表查询
distinct 去重复

关键词 DISTINCT 用于返回唯一不同的值

SQL 复制代码
SELECT DISTINCT 字段名称 FROM 表名称
练习
Plain 复制代码
作业一:查询所有带有'便宜'字样的商品;
作业二:更新表数据信息,将所有性别为女的信息薪资+1000

运算符

算数运算符
运算符 语法 说明
+ a+b 加;操作数之和
- a-b 减;操作数之差
- -a 一元减号;操作数取负
* a*b 乘;操作数之积
/ a/b 除;操作数之商
% a%b 模;操作数除后的余数
比较运算符

![[f5b25162-1576-4b54-bed8-9fac66376877.png]]

  1. 比较运算符允许我们对表达式的左边和右边进行比较。一个比较运算符的结果总是1(真),0(假),或是为NULL(不能确定)。
SQL 复制代码
select 6='6a','6'='6a';
  1. 对于<>运算符,如果表达式两边不相等返回真值,相等返回假值。还可以比较字符串

![[82d098a9-d59e-47d3-85c4-fd54479cb6cb.png]]

  1. BETWEEN运算符 用于检验一个值(或者一个求值表达式)是否存在一个指定的范围内
  2. 可以使用IS NULL或者IS NOT NULL运算符来测定是否为空。 可以使用特殊的<=>运算符,MySQL称为"NULL安全的等于"运算符。这意味着即使当包含在比较运算符中的表达式含有一个NULL值时,MySQL也会为比较运算符返回一个真值或假值。

![[ae785e59-8f62-4de8-8474-4786ab848b7c.png]]

![[3ccd7b5e-38f6-40e5-9ebf-d1b2c9362b39.png]]

like模糊查询通配符:

% 通配0个或多个字符 %李%

_ 通配一个字符 李 _ _

binary 区分大小写

abcdef\] 通配字符列中的任何单一字符 \[\^abcdef\] 通配不在字符列中的任何单一字符

运算符in

IN运算符用于检验一个值(或者一个求值表达式)是否包含在一个指定的值集合中。 返回值为:1 / 0

SQL 复制代码
select 7 IN (1,2,3,4,5,6,7,8),a in ('a','b','c','f','d')
运算符like

如果想执行通配符数据搜索,应该使用LIKE运算符。它通过在表达式中允许使用专门的通配字符,可以找出与指定搜索字符串全部或部分匹配的记录。

SQL 复制代码
select 'Roger says hello' like '%ll%'
运算符-BINARY(binary)

默认情况下,是不区分大小写的方式执行的。 然而,以前我们注意到,可以添加BINARY关键字让MySQL执行区分大小写的比较。

SQL 复制代码
select 'MySQL' like '%sql',binary 'MySQL' like 'mysql';
逻辑运算符

![[f1d37a8e-479d-414e-beea-477eeef1ea51.png]]

作业:

使用mysql创建商城数据库

用户表 (User):

用户ID

用户名

密码

电子邮件

姓名

地址

手机号码

商品表 (Product):

商品ID

商品名称

商品描述

价格

库存数量

商品类别ID

制造商/品牌

订单表 (Order):

订单ID

用户ID

下单日期

订单状态 - 例如,已支付、已发货、已完成等

订单详情表 (OrderDetail):

订单详情ID

订单ID

商品ID

数量

总价

购物车表 (Cart):

购物车ID

用户ID

商品ID

数量

收货地址表 (Address):

地址ID

用户ID

收货人姓名

收货地址

邮政编码

电话号码

相关推荐
秦jh_2 小时前
【Qt】常用控件(上)
服务器·数据库·qt
爬山算法2 小时前
Netty(14)如何处理Netty中的异常和错误?
java·前端·数据库
xiaok2 小时前
GROUP BY进阶用法
mysql
꧁坚持很酷꧂2 小时前
把虚拟机Ubuntu中的USB设备名称改为固定名称
linux·数据库·ubuntu
1024肥宅2 小时前
浏览器存储 API:全面解析与高级实践
前端·数据库·浏览器
李慕婉学姐2 小时前
【开题答辩过程】以《基于Android的健康助手APP的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
android·java·mysql
Evan芙2 小时前
Nginx 平滑升级
数据库·nginx·ubuntu
qq_12498707533 小时前
基于springboot健康养老APP的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·微信小程序·毕业设计
亚林瓜子3 小时前
mysql命令行手动导入csv数据到指定表
数据库·mysql·gui·csv·cli·db·import
水库浪子95273 小时前
工作中常用函数详解与示例-PostgreSQL(其他数据库可能函数不一致)
数据库