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

谢岗镇网站仿做新闻头条 今天

谢岗镇网站仿做,新闻头条 今天,网站在线配色,网红自助下单网站【一】筛选过滤条件 【1】完整的查询语句 -- 查询当前表中的全部数据select * from 表名 where 筛选条件;​-- 查询当前表中的指定字段的数据select 字段名,字段名 from 表名 where 筛选条件;# 执行顺序from where select ​select 你选择的列1, 你选择的列2, ... from 查询的…

【一】筛选过滤条件

【1】完整的查询语句

-- 查询当前表中的全部数据select * from 表名 where 筛选条件;​-- 查询当前表中的指定字段的数据select 字段名,字段名 from 表名 where 筛选条件;# 执行顺序from
where
select
​select 你选择的列1, 你选择的列2, ...
from 查询的表名
where 筛选条件;

例如:

  • 等于:=(例如:age = 25

  • 不等于:<>!=(例如:age <> 25

  • 大于:>(例如:salary > 5000

  • 小于:<(例如:rating < 4.5

  • 大于等于:>=(例如:quantity >= 10

  • 小于等于:<=(例如:price <= 100

  • 模糊匹配:LIKE(例如:name LIKE 'J%'

  • 范围:BETWEEN(例如:age BETWEEN 18 AND 30

  • 列表:IN(例如:department IN ('IT', 'Finance')

具体示例:

select * from employeewhere employee_id = '2';

image-20240125193149346

【2】数据准备

( 1 )创建数据库

create database Student;

( 2 )切换到Student数据库

use Student;

image-20240125194108716

( 3 ) 创建school表

create table school (id int primary key auto_increment comment'id 信息',course varchar(255),lecturer varchar(255),address varchar(255)
);

( 4 )再插入我们需要的数据

insert into school (id, course, lecturer, address) values(1, 'go', 'xiao', '301'),(2, 'java', 'mao', '302'),(3, 'paython', 'jing', '303'),(4, 'seo', 'yi', '304'),(5, 'API接口', 'bao', '305'),(6, 'Vue', 'peng', '306'),(7, 'CSS', 'ban', '307'),(8, 'Web', 'tian', '308'),(9, 'MySQL', 'yun', '309');

( 5 ) 查询信息

select * from school;

image-20240125194836222

select * from school\G;# MySQL 将以垂直格式显示查询结果

image-20240125194948244

【3】查询联系

  • 查询 id 在 1 ~ 5 之间的数据

-- 原始模版select * from * where *;
​
-- 最麻烦的写法select * from school where id>=1 and id <=5;
​
-- 在SQL语句中没有 select * from school where 1<= id <=5;
​
-- 优化后的写法select * from school where id between 1 and 5;

image-20240125201114725

or

select * from * where *;
​
-- 最原始的写法 三个 orselect * from school where course='go' or course='java' or course='API接口';
​
-- 简单写法,成员运算select * from school where course in ('go','paython','seo');

image-20240125201441810

  • 查询 课程名称中包含字母a的课程

select * from * where *;
​# % 匹配多个字符
# _ 匹配一个字符select * from school where course like "%a%";select * from school where course like "_a%";

image-20240125201632215

image-20240125201712554

  • 查询课程,跟老师姓名是由六个字符组成

select lecturer,course from school where char_length(lecturer) = 4;

image-20240125201943539

【二】分组条件

【1】分组条件group by

  • 每个,平均、最高、最低

【2】语法

select * from 表名 group by 分组条件;select 列名1, count(*), sum(列名2), avg(列名3)from table_namegroup by 列名1;# 查询所有列select group_concat(course) from 表名 group by 列名;
​# 拼接select group_concat(course : teachar_name) from 表名 group by 列名;group_concat 必须分组之后才能使用
concat 不分组也能使用

【3】准备工作

create table scores (student_id int,course varchar(255),score int
);
​insert into scores (student_id, course, score) values
(1, '数学', 80),
(1, '英语', 90),
(1, '物理', 70),
(2, '数学', 85),
(2, '英语', 92),
(2, '物理', 75),
(3, '数学', 90),
(3, '英语', 85),
(3, '物理', 80),
(4, '数学', 87),
(4, '英语', 88),
(4, '物理', 79);

case 这个就是如果的意思

SET就是更新表中数据的关键字。它用于指定要修改的列和新的值。

通常,SET 关键字与 UPDATE 语句一起使用,用于更新表中的记录。以下是使用 SET 的一般语法:

update 表名
set 列名1 = 新值1, 列名2 = 新值2, ...
where 条件;

示例:

假设我们有一个名为 scores 的表,其中包含学生的成绩信息。要更新学生ID为1的学生的成绩,将数学成绩修改为90分

update scoresset math_score = 90where student_id = 1;
select student_name,casewhen score >= 90 then '优秀'when score >= 80 then '良好'when score >= 70 then '中等'else '不及格'end as grade
from scores;

我这里可以插入一列老师名字信息

alter table scores
add column teacher_name varchar(255);

image-20240125220845793

update scores
set teacher_name = 
case student_idwhen 1  then '痴梦老师'when 2  then '赵老师'when 3  then '刘老师'when 4  then '张老师'
end;

image-20240125202624849

image-20240125202644197

  • 使用分组条件group by来计算每门课程的平均、最高和最低分数。

select course, avg(score) as avg_score, max(score) as max_score, min(score) as min_score 
from scores group by course;

image-20240125203423192

【4】分组注意事项

(1)where和group by可以同时使用,但是要注意顺序

select * from * where *;
select * from * group by *;
​
-- 同时出现要有先后顺序 
-- where 先对整体过滤 group by 再对局部过滤
select * from * where * group by *;

(2)where不能使用聚合函数

  • 先筛选出课程是英语的信息

-- 方法一
select student_id,course,score from scores where course = '英语' or course = '物理';
  • 先筛选出课程是英语跟语文的信息

-- 方法二
select * from scores
where course in ('英语', '物理');

  • 再对大于85分以上跟小于85分进行分组

select casewhen score > 85 then '大于85分'when score <= 85 then '小于等于85分'end as score_group,count(*) as count
from scores
group by score_group;
  • 成绩大于75分的学生

select student_id, avg(score)
from scores
where score > 75
group by student_id;
  • select student_id, avg(score):选择学生ID和成绩平均值,这里使用avg()聚合函数来计算每个学生的成绩平均值。

  • from scores:指定要查询的表为scores

  • where score > 75:指定筛选条件为分数大于75分。

  • group by student_id:按照学生ID进行分组。

image-20240125205532771

image-20240125211128852

【三】having(分组之后筛选)

【1】注意事项

  • having的语法和where是一致的

  • 只不过having是在分组之后进行的过滤操作

  • 即having是可以直接使用聚合函数的

select * from * where * group by * having *;

【2】练习

  • scores的表中选取所有分数大于85分的学生,然后按照学生ID进行分组,并计算每个学生的分数大于85分的成绩的平均值。

select student_id,avg(score) from scoreswhere score > 85group by student_idhaving avg(score)>=90;
​
  • SELECT student_id, AVG(score):选择学生ID和成绩平均值,这里使用AVG()聚合函数来计算每个学生的成绩平均值。

  • FROM scores:指定要查询的表为scores

  • WHERE score > 85:指定筛选条件为分数大于85分。

  • GROUP BY student_id:按照学生ID进行分组。

  • HAVING AVG(score):指定筛选条件为成绩平均值大于等于90,

image-20240125221426911

【四】筛选条件之distinct(去重)

【1】注意事项

  • 必须是完全一样的数据才可以去重

  • 一定要注意主键的问题

  • 在主键存在的情况下是一定不可能去重的

【2】练习

select distinct student_id,course from scores;

image-20240125221704868

select distinct course from scores;

image-20240125221829863

【五】筛选条件之(order by)排序

  • asc 默认省略不写 ----> 修改降序

  • order by 列名 desc; : 降序

  • order by 列名: 默认是升序

【1】将scores表中的数据按照分数排序(升序)

select * from scores order by score;

image-20240126153942758

【2】将scores表中的数据按照分数排序(降序)

select * from scores order by score desc;

image-20240126154133521

【3】将scores表中的数据按照分数排序(降序),年龄升序排序。

  • 先在表中插入新的老师年龄数据

alter table 表名 add 列名 数据类型;
alter table scores
add column age varchar(255);更新原始数据表scores中的数据update scores
set age = 
case teacher_namewhen '痴梦老师'  then 36when '赵老师'  then 39when '刘老师'  then 45when '张老师'  then 26
end;

image-20240126155602750

  • 将scores表中的数据按照分数排序(降序),年龄升序排序

select * from scores order by score desc,age asc;

image-20240126155909454

scores 表中选取两个列:student_idscore。对于每一个不同的 student_id,计算该学生的所有成绩(score)的平均值,并将其命名为 average_score

select student_id, avg(score) as average_scorefrom scoreswhere age > 38group by student_idorder by average_score desc;

image-20240126160730317

【六】筛选条件之(limit)限制条数

  • 针对数据太多的情况,我们大都是做分页处理

  • limit x,y : 第一个参数是起始位置, 第二个是条数

select * from * [where*] limit *;

【2】查看scores表中5条数据

select * from scores limit 5;

image-20240126160925727

【3】按照区间取数据

select * from * [where *] limit x,yselect * from 表名 limit 0,6;start_page = 0 # 起始位置step = 6 # 步长while True:sql = f"select * from emp limit {start_page},{step}"start_page += step
select * from scores limit 0,6;

image-20240126161122591

【七】正则

【一】正则语法

  • 简单版

 属性名 regexp '匹配方式'
  • 终极版

select * from * where 字段名 regexp 正则表达式;
  • “匹配方式”中有很多的模式匹配字符,它们分别表示不同的意思。

  • 下表列出了 regexp 操作符中常用的匹配方式。

image-20240126161656280

【1】创建表

create table `person`  (`name` varchar(255) character set utf8 collate utf8_general_ci null default null,`age` int(40) null default null,`heigh` int(40) null default null,`sex` varchar(255) character set utf8 collate utf8_general_ci null default null) engine = innodb character set = utf8 collate = utf8_general_ci row_format = dynamic;

【2】插入数据

insert into `person` values ('thomas ', 25, 168, '男');insert into `person` values ('tom ', 20, 172, '男');insert into `person` values ('dany', 29, 175, '男');insert into `person` values ('jane', 27, 171, '男');insert into `person` values ('susan', 24, 173, '女');insert into `person` values ('green', 25, 168, '女');insert into `person` values ('henry', 21, 160, '女');insert into `person` values ('lily', 18, 190, '男');insert into `person` values ('liming', 19, 187, '男');

image-20240126162116753

【3】案例

# 查询 name 字段以j开头的记录select * from person where name regexp '^j';
​
select * from person where name regexp 'y$';
​
select * from person where name regexp 'th*';
​
# sql语句中的正则表达式并不完善,所以功能不全select * from person where name regexp '....';

http://www.15wanjia.com/news/46320.html

相关文章:

  • 科学关键seo排名点击软件
  • 工作室网站建设方案模板seo引擎优化方案
  • 济南外贸网站深圳网络营销推广外包
  • 做冲压件加工有什么好网站网球新闻最新消息
  • 我是做颗粒在什么网站上百度开户怎么开
  • java网站开发优势动态网站的制作与设计
  • 海洋cms做电影网站好做吗seo效果检测步骤
  • 有名的装修公司都有哪些广西seo快速排名
  • 党团建设网站怎样制作一个网页
  • 东莞市官网网站建设长春刚刚最新消息今天
  • 开平设计网站windows优化大师破解版
  • 17网站一起做网店揭阳武汉网络推广有限公司
  • 做wd网站实训报告总结怎样给自己的网站做优化
  • 广东两学一做考试网站可以免费打开网站的软件下载
  • 校园推广活动策划方案南宁seo排名外包
  • 专门做鞋的网站免费seo网站诊断免费
  • 政府网站 都是谁做的关键词优化排名软件怎么样
  • 北京网站设计公司wyhseo深圳seo公司
  • 济南shuncheng科技 网站建设今日新闻热点
  • 网站开发平台建设百度免费推广方法
  • 外贸公司网站如何免费推广网络策划营销
  • 什么是网站的二级目录网络营销服务平台
  • aspx网站开发界首网站优化公司
  • 经营性网站备案需要哪些东西百度客户端
  • 手工制作小玩具简单又好玩seo托管公司
  • 做网站靠广告能赚钱吗网络营销百度百科
  • 网站建设 大公司百度资源共享链接分享组
  • 长春网站建设于健每日军事新闻
  • 响应式全屏网站模板网络营销策划书包括哪些内容
  • 企业做网站能赚钱么免费培训课程