10.31 MySQL数据记录操作
数据记录操作
添加一条数据
INSERT INTO 表名 [(字段名1,字段名2,…字段名n)] VALUES(‘值1’,‘值2’,…,’值n’);
添加多条数据
INSERT INTO 表名 [(字段名1,字段名2,…字段名n)]
VALUES(‘值1’,‘值2’,…,‘值n’),
(‘值1’,‘值2’,…,‘值n’),
......
(‘值1’,‘值2’,…,’值n’);
删除记录
delete from 表名 [where 条件子句] [order by 字段 asc|desc ] [limit 条数]
删除全部记录
truncate table 表名
更新记录
根据条件更新记录
update 表名 set 字段名=新值,字段名=新值,....... [where 条件子句] [order by 字段 asc|desc ] [limit 条数]
查询记录
单表查询
select 字段1,字段2,...... from 表名 [where 条件子句] [group by 字段][having 条件子句][order by 字段 asc|desc] [limit [起始值] 条数]
where 子句是判断语句,用来设定条件,限制只更新匹配的行,如果不带where子句,则更新所有行数据
查询练习
查询全体学生的学号与姓名
查询全体学生的详细记录。
查全体学生的姓名及其出生年份。
查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名
查询选修了课程的学生学号(去掉重复的记录)
查询全体学生的学号与姓名,用中文显示列名。
给表设置别名。
查询年龄在20以下的学生的姓名。
查询全体学生的姓名、年龄,要求按照年龄降序排序。
查询年龄最大的前3个学生的姓名和年龄,或第4、5个学生
Alias 别名
通过使用 SQL,可以为字段名称和表名称指定别名
SELECT 字段名 AS 别名 FROM 表名
SELECT * FROM 表名 AS 表别名---多表查询
distinct 去重复
关键词 DISTINCT 用于返回唯一不同的值
SELECT DISTINCT 字段名称 FROM 表名称
练习
作业一:查询所有带有‘便宜’字样的商品;
作业二:更新表数据信息,将所有性别为女的信息薪资+1000
运算符
算数运算符
| 运算符 | 语法 | 说明 |
| + | a+b | 加;操作数之和 |
| - | a-b | 减;操作数之差 |
| - | -a | 一元减号;操作数取负 |
| * | a*b | 乘;操作数之积 |
| / | a/b | 除;操作数之商 |
| % | a%b | 模;操作数除后的余数 |
比较运算符
![[f5b25162-1576-4b54-bed8-9fac66376877.png]]
- 比较运算符允许我们对表达式的左边和右边进行比较。一个比较运算符的结果总是1(真),0(假),或是为NULL(不能确定)。
select 6='6a','6'='6a';
- 对于<>运算符,如果表达式两边不相等返回真值,相等返回假值。还可以比较字符串
![[82d098a9-d59e-47d3-85c4-fd54479cb6cb.png]]
- BETWEEN运算符 用于检验一个值(或者一个求值表达式)是否存在一个指定的范围内
- 可以使用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
select 7 IN (1,2,3,4,5,6,7,8),a in ('a','b','c','f','d')
运算符like
如果想执行通配符数据搜索,应该使用LIKE运算符。它通过在表达式中允许使用专门的通配字符,可以找出与指定搜索字符串全部或部分匹配的记录。
select 'Roger says hello' like '%ll%'
运算符-BINARY(binary)
默认情况下,是不区分大小写的方式执行的。 然而,以前我们注意到,可以添加BINARY关键字让MySQL执行区分大小写的比较。
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
收货人姓名
收货地址
邮政编码
电话号码
