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

数据库实战:MySQL、SQL语句总结与应用案例分享

生活最大的危险在于一个空虚的心

文章目录

          • MySQL
          • SQL语句
          • 总结

MySQL
  • 数据库服务器
  • 数据库 (一般来说,一个项目,都会使用一个独立的数据库)
  • 数据表 (真正存储数据,和excel表差不多)
  • 行与列 (每一行代表一条数据,列又叫做字段)在这里插入图片描述
SQL语句
  • 介绍
    • SQL是一门数据库编程语言
    • 使用SQL语言编写出来的代码叫做SQL语句
    • SQL语言只能在关系数据库(例如 MySQL、Oracle、SQL Server)中使用。非关系型数据库(例如 Mongodb) 不支持 SQL 语言
  • 用途
    • 从数据库中查询数据
    • 向数据库中插入新的数据
    • 更新数据库中的数据
    • 从数据库中删除数据
    • 可以创建新数据库
    • 可以在数据库中创建新表
    • 可以在数据库中创建存储过程
  • 查询语句
    • 查询语法:SELECT 字段1,字段2,...FROM表名
    • 查询所有的字段:SELECT * FROM 表名
    • 带条件的查询:SELECT * FROM 表名 [WHERE 条件] [ORDER BY 排序字段 [,排序字段]] LIMIT [开始位置,] 长度
  • 模糊查询
    • % 代表任意长度 (包括0) 的任意字符
    • _ 代表长度的任意字符
    • like 在执行模糊查询时,必须使用like来作为匹配条件
  • 统计查询
    • max 查询最大值
      • SELECT MAX(age) FROM heros 返回 heros 表中 age 列的最大值,即所有英雄中年龄最大的那个英雄的年龄
    • min 查询最小值
      • SELECT MIN(age) FROM heros 返回 heros 表中 age 列的最小值,即所有英雄中年龄最小的那个英雄的年龄
    • avg 查询平均值
      • SELECT AVG(age) FROM heros 返回 heros 表中 age 列的平均值,即所有英雄年龄的平均值
    • sum 查询总和
      • SELECT SUM(age) FROM heros 返回 heros 表中 age 列的所有值的总和,即所有英雄年龄的总和
    • count 查询总记录数
      • SELECT COUNT(*) AS cc FROM heros 返回 heros 表中的行数,即英雄的总数。AS cc 是给结果列起一个别名
  • 查询结果排序
    • order by 可以对查询结果按某个字段进行升序或者降序排列
      • 升序 asc 默认值
      • 降序 desc
    • 注意:如果SQL语句中,有where和order by ,where一定要放在order by之前
  • 限制查询结果
    • limit 限制查询结果的起始点和长度
    • 格式 :limit start,length
      • start:起始点,查询结果的索引,从0开始,0代表第一条数据,如果省略start,则默认表示从0开始
      • length:长度
  • 添加数据
    • 格式:insert into 表名 ...
    • 方式一:指定字段和值,只要字段和值对应即可,和顺序无关
      • insert into heroes (字段, 字段, ...) values (值, 值, ...)
        • insert into heroes (nickname, age, name) values ('虚空恐惧', 98, '科加斯')
    • 方式二:和顺序有关,因为没指定子段,所以值必须是所有的值,而且顺序和表中字段的顺序要一致
      • insert into heroes values (null, '拉克丝', '光辉女郎', '女', 28)
    • 方式三:使用set设置新数据的值,没有顺序关系
      • insert into heroes set 字段=值, 字段=值, ....
        • insert into heroes set name='李青', nickname='盲僧'
  • 修改数据
    • 格式:update 表名 set 字段1=值1, 字段2=值2,... where 修改条件
      • 加条件修改:例 update heroes set age=28, skill='在地上打滚' where id=19
      • 如果不指定条件,则会修改所有的行:例 update heroes set sex='妖'
  • 删除数据
    • 格式:delect from 表名 where 删除条件
      • 加条件删除:例 delete from heroes where id=19
      • 如果不加条件,将删除所有的数据,危险操作
        • delete from heroes
    • 注意:不指定条件将删除所有的数据
总结
查询id、name、age三个字段
  SELECT id,name,age FROM heroes
查询所有的字段
  select * from heroes
查询id大于3的英雄 (select * from heroes where 条件)
  select * from heroes where id>3
查询id大于3的男英雄
  select * from heroes where id>3 and sex='男'
模糊查询
	查询名字中带有 “斯” 的英雄
		select * from heroes where name like '%斯%'
	查询名字的最后一个字是 “斯” 的英雄
		select * from heroes where name like '%斯'
	查询名字中带有“斯”,并且要求“斯”前面只能有一个字的英雄
		select * from heroes where name like '_斯%'
统计查询
	查询最大值 (查询所有英雄中年龄最大的的英雄)
		select max(age) from heroes
	查询最小值 (查询所有英雄中年龄最小的的英雄)
		select min(age) from heroes
	查询平均值 (查询所有英雄年龄的平均值)
		select avg(age) from heroes
	查询总和 (查询所有英雄的年龄之和)
		select sum(age) from heroes
	查询总记录数 (查询共计有多少个英雄)
		select count(*) as cc from heroes
对查询结果进行排序 (select * from heroes order by 字段 [ASC|DESC], 字段 [ASC|DESC] .....)
	查询所有的英雄,按年龄从大到小排序(降序)
		select * from heroes order by age desc
	查询所有的英雄,按照年龄升序排序
		select * from heroes order by age asc
	查询id大于3的英雄,并且按照年龄降序排序
		select * from heroes where id>3 order by age desc
	注意:where要放到order by前面;whereorder by部分之间,不要加and
限制查询结果 (select * from heroes limit start, length)
	查询前三个英雄
		select * from heroes limit 0, 3
	查询第456个英雄
		select * from heroes limit 3, 3
	查询年龄最大的女英雄
		select * from heroes where sex='女' order by age desc limit 1
添加英雄
	insert into 表名 (字段, 字段, 字段, ...) values (,,, ...)
	insert into 表名 values (,,, ...)  要求值的顺序和字段的顺序一致,个数也要一致
	insert into 表名 set 字段=, 字段=, ....
修改英雄
	update heroes set name='李青', nickname='盲僧' where 条件
删除英雄
	delete from heroes where 条件
删除表
	drop table heroes
删除数据库
	drop database abc

http://www.kler.cn/news/363004.html

相关文章:

  • 从零开始学python必看,最强“Python编程三剑客(pdf)”
  • 【性能优化】安卓性能优化之CPU优化
  • 如何用mmclassification训练多标签多分类数据
  • Android——FileProvider
  • 上拉电阻和下拉电阻在电路中的作用(一)
  • MySQL中的最左前缀匹配原则
  • PDF编辑功能是灰色的,什么原因?
  • Lua for循环语句
  • edge浏览器:你的连接不是专用连接
  • RSA_dp泄露
  • 因特网的概述
  • Ubuntu22.04 加入AD域
  • Linux 日常骚操作 Top10
  • 1024:只为遇见更好的自己
  • Windows电脑怎么设置局域网内共享磁盘?
  • opencv close open 运算的作用
  • 【rCore OS 开源操作系统】Rust trait 特性快速上手
  • tesseract-ocr 文本识别开发指南
  • Redis --- 第八讲 --- 关于主从复制哨兵
  • 你心念的民宿乡村田园短时间内实现不了,此类可视化大屏唾手可得
  • 用C#实现互斥操作
  • Java爬虫之使用Selenium WebDriver 爬取数据
  • pycharm中鼠标选择文本会自动复制
  • @RequestBody的详解和使用
  • 怎么为pdf文件设置密码?几种PDF文件设置密码的方法推荐
  • 房屋租赁管理系统|基于java和小程序的房屋租赁管理系统小程序设计与实现(源码+数据库+文档)