2021-09-25

Mysql crud 简单操作

Insert

基本语法:

insert into 表名 (列名1,列名2,列名3...)
values(列名1值,列名2值,列名3值...);

insert 语句的细节:

  • 插入的数据应与字段的数据类型相同。

​ 比如 把 ‘abc’ 添加到 int 类型会错误

  • 数据的长度应在列的规定范围内,

​ 例如:不能将一个长度为 80 的字符串加入到长度为 40 的列中。

  • 在 values 中列出的数据位置必须与被加入的列的排列位置相对应。
  • 字符和日期型数据应包含在单引号中。
  • 列可以插入空值[前提是该字段允许为空],insert into table value(null)
  • . insert into tab_name (列名…) values (),(),() 形式添加多条记录
  • 如果是给表中的所有字段添加数据,可以不写前面的字段名称
  • 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
    • 如果某个列 没有指定 not null ,那么当添加数据时,没有给定值,则会默认给 null
    • 如果我们希望指定某个列的默认值,可以在创建表时指定

Update

修改表中数据

基本语法:

UPDATE 表名 SET 列名 = 修改后的值 -- 没带where条件,会修改这个表这个列的所有数据,小心使用

UPDATE 表名 
SET 列名 = 修改后的值
WHERE 列明 = 对应值 ; -- 带where条件,只会修改这一条记录

UPDATE 表名 
SET 列名 = 列名 + 值 -- 例如:SET salary = salary + 1000
WHERE 列明 = 对应值 ; -- 带where条件,只会修改这一条记录

使用细节:

  • UPDATE语法可以用新值更新原有表行中的各列。
  • SET子句指示要修改哪些列和要给予哪些值。
    WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行(记录),因此老师提醒一定小心。
  • 如果需要修改多个字段,可以通过set字段1=值1,字段2=值2…

Delete

基本语法:

  • 删除某一条语句
DELETE FROM 表名 
  WHERE user_name = 值 ;
  • 删除表中所有记录
DELETE FROM 表名 ;

使用细节:

  • 如果不使用where子句,将删除表中所有数据。
  • Delete语句不能删除某一列的值(可使用update设为null或者’’)
  • 使用delete语句仅删除记录,不删除表本身。如要删除表,使用droptable语句。drop table表名;

Select

基本语法:

查询表中所有信息:

SELECT * FROM 表名;

查询表中其中几列信息:

SELECT 列名1,列名2,列名3... FROM 表名;

过滤表中重复数据:

SELECT DISTINCT  FROM 表名;

如果去除某列重复数据:
SELECT DISTINCT 列名 FROM 表名;

要查询的记录,每个字段都相同,才会去重,如:

SELECT DISTINCT name, english FROM student; name和english字段(类型)要相同

使用表达式对查询的列进行运算:

有如下表:
在这里插入图片描述

SELECT `name`, (chinese+english+math) FROM student;

执行后:
在这里插入图片描述

使用别名表示学生分数:

SELECT `name` AS '姓名', (chinese+english+math) AS total_score
FROM student

执行后:
在这里插入图片描述

在 where 子句中经常使用的运算符

在这里插入图片描述

使用where进行过滤查询

查询姓名为赵云的学生成绩

SELECT * FROM student
WHERE `name` = '赵云

在这里插入图片描述

查询英语成绩大于 90 分的同学

SELECT * FROM student
WHERE english > 90

在这里插入图片描述

查询总分大于 200 分的所有同学

SELECT * FROM student
WHERE (chinese + english + math) > 200

在这里插入图片描述

查询 math 大于 60 并且(and) id 大于 4 的学生成绩

SELECT * FROM student
WHERE math >60 AND id > 4

在这里插入图片描述

查询英语成绩大于语文成绩的同学

SELECT * FROM student
WHERE english > chinese

在这里插入图片描述

查询总分大于 200 分 并且 数学成绩小于语文成绩,的姓赵的学生. – 赵% 表示以赵开头即可

SELECT * FROM student
WHERE (chinese + english + math) > 200 AND
math < chinese AND `name` LIKE '赵%'

在这里插入图片描述

查询英语分数在 80-90 之间的同学

SELECT * FROM student
WHERE english >= 80 AND english <= 90;
SELECT * FROM student
WHERE english BETWEEN 80 AND 90;-- between .. and .. 是 闭区间
两种写法结果一样

在这里插入图片描述

查询数学分数为 89,90,91 的同学

SELECT * FROM student
WHERE math = 89 OR math = 90 OR math = 91;
SELECT * FROM student
WHERE math IN (89, 90, 91);

在这里插入图片描述

使用 order by 子句排序查询结果

对数学成绩排序后输出【升序】

SELECT * FROM student
ORDER BY math

在这里插入图片描述

对总分按从高到低的顺序输出 [降序] – 使用别名排序

SELECT `name` , (chinese + english + math) AS total_score FROM student
ORDER BY total_score DESC;

在这里插入图片描述

对姓韩的学生成绩[总分]排序输出(升序) where + order by

SELECT `name`, (chinese + english + math) AS total_score FROM student
WHERE `name` LIKE '韩%'
ORDER BY total_score;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值