精华内容
下载资源
问答
  • MySQL 查询sql 1.准备库和表 2.简单查询 3.条件查询 4.排序查询 5.聚和查询 6.分组查询 创建数据库 准备工作 #创建库 CREATE DATABASE day002; 使用库 USE day002; #创建表 CREATE TABLE product( pid INT PRIMARY ...

    MySQL 查询sql

    1.准备库和表
    2.简单查询
    3.条件查询
    4.排序查询
    5.聚和查询
    6.分组查询

    创建数据库 准备工作

    #创建库
    CREATE DATABASE day002;
    使用库
    USE day002;

    #创建表
    CREATE TABLE product(
    pid INT PRIMARY KEY,
    pname VARCHAR(60),
    price DOUBLE,
    category_id VARCHAR(32)

    );
    #添加数据
    INSERT INTO product(pid,pname,price,category_id) VALUES(1,‘华为’,5000,‘c001’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(2,‘小米’,1999,‘c001’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(3,‘格力’,2999,‘c001’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(4,‘秋裤’,15,‘c002’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(5,‘阿玛尼’,19990,‘c002’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(6,‘海澜之家’,46,‘c002’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(7,‘劲霸’,46,‘c002’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(8,‘香奈儿’,800,‘c003’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(9,‘小护士’,19,‘c003’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(10,‘南街村’,3,‘c004’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(11,‘好想你大枣’,19,‘c004’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(12,‘杜康’,200,‘c005’);
    INSERT INTO product(pid,pname,price,category_id) VALUES(13,‘狗粮’,1,NULL);

    1.简单查询

    简单的查询语句 使用关键字 select(查询) from(从) where(条件)

    语法:select 列名,列明1…from 表名

    #查询商品名称和价格
    SELECT pname,price FROM product;
    #查询商品表所有的信息
    SELECT *FROM product;

    过滤重复的数据 select distinct 字段1,字段2,…from 表名

    SELECT price FROM product;
    SELECT DISTINCT price FROM product;
    SELECT DISTINCT pname,price FROM product;

    给表起别名

    SELECT * FROM product AS p;
    SELECT * FROM product p;

    给表中的字段起别名
    SELECT pname AS 商品名称,price AS 商品价格 FROM product;
    SELECT pname 商品名称1,price ‘商品 价格1’ FROM product;

    #查询语句可直接进行运算
    SELECT(1+1);
    #查询所有商品价格加1000
    SELECT pname,price+1000 FROM product;

    2.条件查询

    **运算符
    1 比较运算符
    基本比较运算符 > < >= <= = <> !=
    表示查询期间 between…and >= && <=
    表示多个条件 in(…) in(10,20) 10||20
    表示空的 is null
    模糊 使用关键字 like
    多个任意字符 %
    1个任意字符 _

    2 逻辑运算符
    与 and &&
    或 or ||
    非 not ! ****

    查询商品名为海澜之家的商品
    SELECT * FROM product WHERE pname=‘海澜之家’;

    #查询价格在10-100之间的商品
    #方法1
    SELECT * FROM product WHERE price>=10&&price<=100;
    #方法2
    SELECT * FROM product WHERE price BETWEEN 10 AND 100;

    #查询价格是10 或者46的数据
    #方法1
    SELECT FROM product WHERE price IN(10,46);
    #方法2
    SELECT
    FROM product WHERE price=10 OR price=46;
    #方法3
    SELECT* FROM product WHERE price=10 || price=5000;

    3.模糊查询

    模糊 使用关键字 like
    多个任意字符 %
    1个任意字符 _

    #查询商品信息以海澜开头的信息
    SELECT *FROM product WHERE pname LIKE’海澜%’;

    #查询商品信息有五个字符的
    SELECT *FROM product WHERE pname LIKE’_____’;
    #查询商品没有分类信息的
    SELECT * FROM product WHERE category_id IS NULL;

    #查询商品分类信息非空的
    #方法1
    SELECT * FROM product WHERE category_id IS NOT NULL;/非空
    #方法2
    SELECT *FROM product WHERE NOT(category_id IS NULL);/非空

    4.排序

    #对查询结果进行排序 默认是升序
    #关键字 ASC 升序 DESC降序

    *语法: select |字段 from 表名[where条件] order by 被排序的字段 [ASC]|[DESC]

    SELECT * FROM product ORDER BY price ASC;
    SELECT * FROM product ORDER BY price;
    #降序
    SELECT * FROM product ORDER BY price DESC;

    #显示价格 去掉重复的 按降序查询
    SELECT DISTINCT price FROM product ORDER BY price DESC;

    5.聚合查询

    对某列的数据进行查询 结果是一个单一的值 会忽略null值
    count 统计指定列不为null 行数
    sum 指定列的数值和 如果指定的列不是数值类型 结果为0
    max指定列的最大值 如果指定的列是字符串类型 使用字符串排序运算
    min 指定列的最小值 如果指定的列是字符串类型 使用字符串排序运算
    avg 平均值 如果指定的列不是数值类型 那么计算结果为零

    select count(字段|*),sum(字段),max(字段),min(字段),avg(字段)from 表名;

    #查询商品总条数
    SELECT COUNT(pid) FROM product;
    SELECT COUNT(pname) FROM product;

    #查询价格大于50元的商品的总条数
    SELECT COUNT(*) FROM product WHERE price>50;

    #查询商品总价格
    SELECT SUM(price) FROM product;
    #查询分类为c001的商品的总价格
    SELECT SUM(price)FROM product WHERE category_id=‘c001’;

    #查询商品的平均价格
    SELECT AVG(price)FROM product;
    #查询分类为c002的商品的平均价格
    SELECT AVG(price) FROM product WHERE category_id=‘c002’;

    #查询商品中的最高价格和最低价格
    SELECT MAX(price), MIN(price) FROM product;

    #sum avg 如果指定类型不是数值类型 那么计算结果为0
    SELECT AVG(pname),SUM(pname) FROM product;

    6.分组查询

    #格式 select 被分组的字段 (求和,平均值,个数,最大最小值…)from 表名 [where 条件]group by 被分组字段[having条件];

    #按商品类分组 统计各个分类商品的个数
    SELECT category_id,COUNT(*) FROM product GROUP BY category_id;

    #按照商品类分组 统计各个商品类的平均价格
    SELECT category_id,AVG(price) FROM product GROUP BY category_id;

    where 用于分组前进行条件过滤
    #having 用于分组后 对分完组的数据进行过滤

    #先按商品的类别分组 统计各个分组商品的个数 只查询每组商品大于200的商品
    SELECT category_id,COUNT(*) FROM product WHERE price>200 GROUP BY category_id;

    #先按商品的类别分组 统计各个分组商品的个数 只显示统计个数等于三的信息
    SELECT category_id,COUNT() FROM product GROUP BY category_id HAVING COUNT()=3;

    展开全文
  • 数据库查询列出表的所有字段“*”符号查询指定字段数据DISTINCT查询IN查询BETWEEN AND查询7.LIKE模糊查询查询结果排序分组查询统计分组查询 列出表的所有字段 通过SQL语句SELECT列出表的所有字段,具体语法形式...

    列出表的所有字段

    通过SQL语句SELECT列出表的所有字段,具体语法形式如下:
    SELECT field1,field2,…,fieldn FROM tablename;
    其中,filed1~fieldn参数表示需要查询的字段名;tablename参数表示表的名称。

    “*”符号

    查询所有字段数据,除了使用上面的方式外,还可以通过符号“”来实现,具体语法形式如下:
    SELECT * FROM tablename;
    其中,符号“
    ”表示所有字段名;tablename参数表示表的名称。与上一种方式相比,“*”符号方式的优势比较明显,即可用该符号代替表中的所有字段,但是这种方式不够灵活,只能按照表中字段的固定顺序显示,不能随便改变字段的顺序。

    查询指定字段数据

    查询指定字段数据,只需修改关键字SELECT后的字段列表为指定字段即可。
    SELECT field1,field2,…,fieldn FROM tablename;
    例如,从班级表中查询班主任字段,SQL语句如下所示。
    SELECT teacher FROM class;
    如果关键字SELECT后面的字段不包含在所查询的表中,那么MySQL会报错。
    在这里插入图片描述

    DISTINCT查询

    当在MySQL中执行简单数据查询时,有时会显示出重复数据。为了实现查询不重复数据,MySQL提供了DISTINCT功能,SQL语法如下:
    SELECT DISTINCT field1,field2,…,fieldn FROM tablename;
    在上述语句中,关键字DISTINCT去除重复的数据。
    在这里插入图片描述

    IN查询

    有的时候,当我们需要查询的目标记录限定在某个集合中的时候,在MySQL中可以使用关键字IN来实现,关键字IN可以实现判断字段的数值是否在指定集合中,该关键字的具体语句形式如下:
    SELECT field1,field2,…,fieldn
    FROM tablename WHERE filedm IN(value1,value2,value3,…,valuen);
    注:参数fieldn表示名称为tablename的表中的字段名,参数valuen表示集合中的值,通过关键字IN来判断字段fieldm的值是否在集合(value1,value2,value3,…,valuen)中,如果字段fieldm的值在集合中,就满足查询条件,该记录会被查询出来,否则不会被查询出来。
    在这里插入图片描述

    BETWEEN AND查询

    当我们需要查询指定范围内的数据(如: id 从0 到 100)的时候,MySQL提供了关键字BETWEEN AND,用来实现判断字段的数值是否在指定范围内的条件查询。该关键字的具体语法形式如下:
    SELECT field1,field2,…,fieldn
    FROM tablename WHERE fieldm BETWEEN minvalue AND maxvalue
    在上述语句中,参数fieldn表示名称为tablename的表中的字段名,通过关键字BETWEEN和AND来设置字段field的取值范围,如果字段field的值在所指定的范围内,那么满足查询条件,该记录会被查询出来,否则不会被查询出来。
    BETWEEN minvalue AND maxvalue,表示的是一个范围间的判断过程,只针对数字类型。
    在这里插入图片描述
    在这里插入图片描述

    LIKE模糊查询

    当我们只想用字符串中间的一部分特征查找含有特征字串的信息时,MySQL提供了关键字LIKE来实现模糊查询,需要使用通配符,具体语法形式如下:
    SELECT field1,field2,…,fieldn
    FROM tablename WHERE fieldm LIKE value;
    在上述语句中,参数tablename表示表名,参数fieldn表示表中的字段名字,通过关键字LIKE来判断字段field的值是否与value字符串匹配,如果相匹配,则满足查询条件,该记录就会被查询出来;否则就不会被查询出来。
    在MySQL中,字符串必须加上单引号(’’)和双引号(″″)。

    在这里插入图片描述

    对查询结果排序

    在MySQL中,从表中查询出的数据可能是无序的,或者其排列顺序不是用户所期望的顺序,为了使查询结果的顺序满足用户的要求,可以使用关键字ORDER BY对记录进行排序,其语法形式如下:
    SELECT field1, field2, field3, …, fieldn
    FROM tablename ORDER BY fieldm [ASC|DESC]
    在上述语句中,参数tablename表示所要进行排序的表名,参数fieldn表示表中的字段名字,参数fieldm表示按照该字段进行排序;ASC表示按升序进行排序;DESC表示按降序进行排序。默认的情况下按ASC进行排序。
    注意:如果存在一条记录字段的值为空值(NULL),那么按升序排序时,含空值的记录将最先显示,可以理解为空值是该字段的最小值;按降序排列时,字段为空值的记录将最后显示。
    在这里插入图片描述

    分组查询

    MySQL软件提供了5个统计函数来帮助用户统计数据,可以使用户很方便地对记录进行统计数、计算和、计算平均数、计算最大值和最小值,而不需要查询所有数据。
    在具体使用统计函数时,都是针对表中所有记录数或指定特定条件(WHERE子句)的数据记录进行统计计算。在现实应用中,经常会先把所有数据记录进行分组,再对这些分组后的数据记录进行统计计算。
    MySQL通过SQL语句GROUP BY来实现,分组数据查询语法如下:
    SELECT function()[,filed ]
    FROM tablename WHERE CONDITION GROUP BY field;
    在上述语句中,参数field表示某字段名,通过该字段对名称为tablename的表的数据记录进行分组。
    注意:在具体进行分组查询时,分组所依据的字段上的值一定要具有重复值,否则分组没有任何意义。

    五个统计函数简介:

    1. 统计数量
      COUNT(*):该种方式可以实现对表中记录进行统计,不管表字段中包含的是NULL值还是非NULL值。
      COUNT(field):该种方式可以实现对指定字段的记录进行统计,在具体统计时将忽略NULL值。
    2. 统计计算平均值
      该函数只有一种使用方式。
      AVG(field)使用方式:该种方式可以实现对指定字段的平均值进行计算,在具体统计时将忽略NULL值。
    3. 统计计算求和
      该函数只有一种使用方式。
      SUM(field)使用方式:该种方式可以实现计算指定字段值之和,在具体统计时将忽略NULL值。
    4. 统计最大值
      该函数只有一种使用方式。
      MAX(field)使用方式:该种方式可以实现计算指定字段值中的最大值,在具体统计时将忽略NULL值。
    5. 统计最小值
      该函数只有一种使用方式。
      MIN(field)使用方式:该种方式可以实现计算指定字段值中的最小值,在具体统计时将忽略NULL值。

    在这里插入图片描述

    统计分组查询

    在MySQL中,只实现简单的分组查询有时候可能没有任何实际意义,因为关键字GROUP BY单独使用时,默认查询出每个分组中随机的一条记录,具有很大的不确定性,一般建议将分组关键字与统计函数一起使用。
    如果想显示每个分组中的字段,可以通过函数GROUP_CONCAT()来实现。该函数可以实现显示每个分组中的指定字段,函数的具体语法形式如下:
    SELECT GROUP_CONCAT(field)
    FROM tablename
    WHERE CONDITION GROUP BY field;
    在上述语句中会显示每个数组中的字段值。

    在这里插入图片描述

    展开全文
  • like模糊查询 limit分页 like模糊查询 limit 分页 分组查询 having 和 where 的区别 多表查询(可以理解成在笛卡尔集的基础上进行条件筛选) 内连接(本质就是在笛卡尔集上加条件) 外连接 查询 左外连接 右外连接 子...

    创建表

    CREATE TABLE tb_user(
       id INT PRIMARY KEY AUTO_INCREMENT,
       username VARCHAR(20),
       password VARCHAR(20),
       girl_friend VARCHAR(20)
    )
    

    基本增删查改

    select * from 表名 where 条件;
    insert into 表名 values(数据);
    delete from 表名 where 条件;
    update <表名> set <列名=更新值> [where <更新条件>]

    查询专题

    在查询中使用as进行重命名 或者 直接空格

    select Personname as ps from a where xingbie=‘男’

    select * from category c,products p where c.cid = p.category_id;

    查询返回限制行数(关键字:top percent)

    select top 6 name from a
    显示列name的前6行,top为关键字
    select top 60 percent name from a
    显示列name的60%,percent为关键字

    查询排序(关键字:order by , asc , desc)

    select name from a where chengji>=60 order by desc
    asc升序,desc降序

    使用between在某个范围内进行查询

    select * from a where nianling between 18 and 20

    使用in在列举值内进行查询

    select name from a where address in (‘北京’,‘上海’,‘唐山’)
    查询表a中address值为北京或者上海或者唐山的记录

    like模糊查询 limit分页

    Select * from person where name like “%长沙%” limit 0,20

    like模糊查询

    模糊查询 dname like " % 张%"
    查的张某某 或者 xx张xx

    limit 分页

    limit N,M
    N:从哪一行开始(初始从0开始,不是1), M:每一页的行数
    page 第几页
    N=(page-1)*M
    比如 第二页 N=(2-1)*M

    分组查询

    查询工资大于2000的,工资总和大于9000的部门名称以及工资和
    select deparmant,GROUP_CONCAT(salary), SUM(salary) from employee
    WHERE salary > 2000
    GROUP BY deparmant
    HAVING sum(salary) > 9000
    ORDER BY SUM(salary) DESC;

    使用group by进行分组查询,使用having子句进行分组筛选
    having 和 where 一样,但 having 只能用于 group by

    having 和 where 的区别

    having 是在分组后对数据进行过滤,where 是在分组前对数据进行过滤
    having后面可以使用分组函数(统计函数),where后面不可以使用分组函数
    where 是对分组前记录的条件,如果某行记录没有满足where字句的条件,那么这行记录不会参加分组;而having是对分组后数据的约束

    多表查询(可以理解成在笛卡尔集的基础上进行条件筛选)

    内连接(本质就是在笛卡尔集上加条件)

    隐式内连接:select * from A,B where 条件;
    显式内连接:select * from A inner join B on 条件;(效率更高)
    区别
    》使用关键字 inner join
    》前者在笛卡尔集的基础上筛选,后者在原始表上筛选

    隐式内连接:select * from A,B where 条件;
    
    select * from category c,products p where c.cid = p.category_id;
    
    显式内连接:select * from A inner join B on 条件;(效率更高)
    
    select * from category c inner	join products p on c.cid = p.category_id;
    
    

    外连接 查询

    两个表中选一个表将数据全部输出,另一个表没有对应数据则输出NULL

    左外连接

    select * from A left outer join B on 条件;
    以左表为主,左表中的数据全部输出,右表中如果没有同等的数据则补NULL

    # 左外连接
    select * from province p left outer join city c on p.pid = c.pid_fk;
    
    

    右外连接

    select * from A right outer join B on 条件;
    以右表为主,右表中的数据全部输出,左表中如果没有同等的数据则补NULL

    # 右外连接
    select * from province p right outer join city c on p.pid = c.pid_fk;
    

    子查询

    select的嵌套:一个select的查询结果作为另一个select查询语法的一部分

    select * from product where cid = 1
    select cid from category where cname='电子'
    
    select *from product where cid = (select cid from category where cname='电子')
    

    一对多

    create database day13_2
    use day13_2
    》创建主表(分类表)
    create table category(
    	cid int primary key auto_increment,
    	cname varchar(20)
    )
    》创建从表(商品表)
    create table product(
    	pid int primary key auto_increment,
    	pname varchar(20),
    	price double,
    	cid int -- 外键 表示属于哪个分类
    )
    》给主表和从表之间添加外键约束 
    `alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);`
    alter table product add  foreign key (cid) references category(cid)
    》给主表添加数据(随便添加)
    insert into category value(null,'电子')
    insert into category value(null,'服装')
    》给从表添加数据(添加数据是必须依赖主表)
    insert into product value(null,'联想',2000,1)
    insert into product value(null,'华为',4000,1)	
    insert into product value(null,'真维斯',100,2)	
    

    like模糊查询 limit分页

    Select * from person where name like “%长沙%” limit 0,20

    like模糊查询

    模糊查询 dname like " % 张%"
    查的张某某 或者 xx张xx

    limit 分页

    limit N,M
    N:从哪一行开始(初始从0开始,不是1), M:每一页的行数
    page 第几页
    N=(page-1)*M
    比如 第二页 N=(2-1)*M

    展开全文
  • 模糊查询4.统计查询5.分组查询 SQL语法格式 SELECT [all | DISTINCT] <目标列表达式> [别名] [,<目标列表达式> [别名]]... FROM <表名或视图名> [别名] [,<表名或视图名> [别名]]... | (<...

    SQL语法格式

    SELECT [all | DISTINCT] <目标列表达式> [别名] [,<目标列表达式> [别名]]...
    FROM <表名或视图名> [别名] [,<表名或视图名> [别名]]... | (<SELECT语句>) [AS] <别名>
    [WHERE <条件表达式>]
    [GROUP BY <列名1> [HAVING <条件表达式>]]
    [ORDER BY <列名2> [AES|DESC]]
    

    单表查询

    1.基础查询

    1. 查询表中的所有数据,返回所有信息
    语法格式:

    	SELECT * FROM <表名或视图名>
    

    使用示例:返回student表的所有信息

    	select * from student
    

    2. 查询表中的所有数据,返回部分信息
    语法格式:

    	SELECT <需要返回的属性列1> [,<需要返回的属性列2>]... FROM <表名或视图名>
    

    使用示例:返回student表的学号、姓名、性别信息

    	select StuNo,StuName,Sex from student
    

    3. 查询表中的所有数据,返回部分信息,改变标题显示
    语法格式:

    	SELECT <需要返回的属性列1>  别名1 [,<需要返回的属性列2> 别名2]... FROM <表名或视图名>
    

    使用示例:返回student表的学号、姓名、性别信息,并以学号、姓名、性别作为标题

    	select StuNo 学号,StuName 姓名,Sex 性别
        from student
    

    4. 查询表中前N条数据
    语法格式:

    	SELECT TOP N  <目标列表达式> FROM <表名或视图名>
    

    使用示例:返回student表前5条数据

    	select TOP 5 *
        from student
    

    5. 查询表中前N%调数据
    语法格式:

    	SELECT TOP N  PERCENT  <目标列表达式> FROM <表名或视图名>
    

    使用示例:返回student表前10%的数据

    	select TOP 10 percent
        from student
    

    6. 查询表中数据,消除重复行
    语法格式:

    	SELECT DISTINCT <需要消除重复行的目标列表达式> FROM <表名或视图名>
    	 --使用distinct来消除重复数据
    

    使用示例:返回student表中的班级编号,并消除相同的班级编号

    	select distinct ClassID
        from student
    

    7. 查询表中数据,并进行排序
    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	ORDER BY [ASC|DESC]
    	--ASC 为升序排序,如果不直接写明,则默认情况下认为是升序排序
    	--DESC为降序排序
    

    使用示例:返回student表的所有信息,并按照学号进行降序排序

    	select *
        from student
        order by StuNo desc
    



    2.条件查询

    1. 比较条件查询
    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <比较条件表达式>
    	
    	比较条件有:
    	= 等于
    	> 大于
    	< 小于
    	>= 大于等于
    	<= 小于等于
    	!=或<> 不等于
    	!> 不大于
    	!< 不小于
    

    使用示例:查询学生年龄小于20岁的学生

    	select *
        from student
        where Age < 20
    

    2. 范围条件查询
    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <范围条件表达式>
    	
    	范围条件有:
    	BETWEEN AND 在指定范围内,包括指定范围的上限和下限
    	NOT BETWEEN AND 不在指定范围内,不包括指定范围的上限和下限
    

    使用示例:查询学生年龄在18-24岁的学生(包括18岁和24岁)

    	select *
        from student
        where Age between 18 and 24
    

    3. 集合条件查询
    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <集合条件表达式>
    	
    	集合条件有:
    	IN 在指定集合内
    	NOT IN 不在指定集合内
    

    使用示例:查询所在班级ID为1903和1905的学生

    	select *
        from student
        where ClassID IN(1903,1905)
    

    4. 空值条件查询
    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <空值·条件表达式>
    	
    	空值条件有:
    	IS NULL 是空值
    	IS NOT NULL 不是空值
    

    使用示例:查询没有年龄的学生信息

    	select *
        from student
        where Age is null
    

    5. 逻辑条件查询
    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <逻辑条件表达式>
    	
    	逻辑条件有:
    	AND 与逻辑,两个或多个条件同时满足时返回查询结果
    	OR 或逻辑,任何一个条件满足时返回查询结果
    	NOT 非逻辑,不满足条件时返回查询结果
    

    使用示例:查询年龄为20岁且所在班级编号为1903的学生信息

    	select *
        from student
        where Age=20 and ClassID=1903
    



    3.模糊查询
    通配符含义示例
    %表示0个或0个以上的任意字符‘A%’:匹配以A开头的任意字符串;
    ‘%A’:匹配以A结尾的任意字符串;
    ‘A%B’:匹配以A开头,以B结尾的任意字符串;
    ‘%AB%’:匹配包含AB的任意字符串
    _(下划线)表示任意一个字符‘_A’:匹配以A结尾的并且长度为2个字符的字符串
    [ ]表示方括号内列出的任意单个字符‘[A-K]%’:匹配以A到K中的任意一个字符开头的字符串
    [ ^ ]表示不在方括号内列出的任意单个字符‘[^A-K]%’:匹配不是以A到K中的任意一个字符开头的字符串

    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <模糊条件表达式>
    	
    	--模糊条件使用LIKE或NOT LIKE进行查找
    

    使用示例:查询姓张的学生信息

    	select *
        from student
        where StuName like '张%'
    

    4.统计查询

    常见聚合函数

    函数名功能
    COUNT统计列值或者记录的个数,COUNT(列名)统计列值个数;COUNT(*)统计记录条数
    SUM计算列值的总和,该列值的数据类型必须为数值型
    AVG计算列值的平均值,该列值的数据类型必须为数值型
    MAX计算列值中的最大值
    MIN计算列值中的最小值

    语法格式:

    	SELECT  <含有统计函数的目标列表达式> 
    	FROM <表名或视图名>
    	WHERE <查询条件表达式>
    

    使用示例:查询student表的总记录数

    	select count(*)
        from student
    

    使用示例:查询student表中学生的平均年龄

    	select avg(Age) 平均年龄
        from student
    

    5.分组查询

    语法格式:

    	SELECT  <目标列表达式> 
    	FROM <表名或视图名>
    	[WHERE <查询条件表达式>]
    	GROUP BY <进行分组的列名>
    	[HAVING <条件表达式>]
    
    	--WHERE子句是在分组前过滤数据
    	--HAVING子句是在分组后过滤数据,通常与GROUP BY子句一起用来筛选结果集内的组
    

    使用示例:查询student表中每个班的人数

    	select count(*)
        from student
        group by ClassID
    

    展开全文
  • 分组查询: https://www.cnblogs.com/netserver/p/4518995.html 日期格式化格式: http://blog.csdn.net/qq_16769857/article/details/52289627 日期和字符串之间的转换: ...
  • 模糊查询分组查询

    2021-06-09 09:18:31
    模糊查询分组查询 模糊查询 模糊查询提取的数据不一定是确切的,它允许用户输入的查询条件也是模糊的、大概的、不特别明确的。 在进行数据库查询时,有完整查询模糊查询之分,完整查询模糊查询的区别在于where...
  • --简单查询 语法: select 列名,列名,列名... 或 *(代表所有) from 表名 例如: select * from Student --带条件查询 语法: select 列,列 或 * (代表所有列) from 表名 [where <查询条件>] 例如: ...
  • 前言 上一篇关系数据库常用SQL语句语法大全主要是关系型数据库大体结构,本文细说一下关系型数据库查询的SQL语法。 语法回顾 SELECT [ALL|DISTINCT] [,]… ...SQL查询语句的顺序:SELECT、FROM、WHERE、GR
  • --1 查询客房表表并显示客房表的详细信息,(类型编号 改为类型名称显示) select fid, tid 类型名称 ,fprice,fkzrs,fyzrs,fcnt,fmenu from tb_kefang --2 查询客房登记表,显示客房登记表和客房表的详细信息 select...
  • 二、模糊查询  like '模式' 只能用在文本类型的数据  %:任意长度的任意字符  _:任意字符的一个字符  []:指定范围中的任意字符 [杨青] [0-9][^A-Z]    CHECK STUNO LIKE '[0-9][0-9][0-9]' 001 002 100 ...
  • my sql-关于sql模糊分组统计

    千次阅读 2016-03-18 16:58:23
    今天遇到了一个以前没有遇到过的问题,我把它归类到“模糊分组统计”。 [题目] 若数据库中数据表如下,根据type1分组求和,其中a,b项分解并分计算到a和b的结果中,得出第二个图的结果。 ---------从酱紫--------->...
  • 最近在学习数据库,寻找教程中,苦于视频长度几十个...使用SQL 通配符可以替代一个或多个字符,即模糊查询SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符如下: 1、% 替代一个或多个字符 2、
  • select * from StudentInfo1 where name like '[^刘%]' select * from StudentInfo1 where name like '%实%' select * from StudentInfo1 where name like '_实_' select * from StudentInfo1 where age ...
  • 一、SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时,你不能使用=或!=;...
  • 使用通配符模糊查询,关键字:like,通配符:% 排序查询(升序、降序),关键字:order by、desc 分组查询,关键字:group by 使用函数,关键字:max、avg 规定要返回的记录的数目,关键字...
  • sql @1,concat 和 case when 用法 拼接字段名和修改名 例子:select CONCAT( s.site_name, ‘(’, CASE WHEN s.station_type = ‘0’ THEN ‘微型站’ WHEN s.station_type = ‘1’ THEN ‘小型站’ WHEN s.station_...
  • 分组查询模糊查询

    2018-08-20 23:13:26
    分组查询关键字:group by 注意:select 后的列名必须出现在group by 后面 例如: Select 列名 from 表名 where 条件 Group by 列名 开窗函数:over() 用法:聚合函数() over() as ‘列名’ ...
  • SQL语言_4 连接查询分组查询 作者:田超凡 版权所有,转载请注明原作者,仿冒侵权...
  • SQL模糊匹配后再分组

    千次阅读 2017-11-21 15:51:19
    ####按硬件厂家统计覆盖质量 create table Manufacture_STAT ... when DeviceId like '%CIOT%' then 'CIOT' when DeviceId like '%FHTT%' then 'FHTT' when DeviceId like '%HWTC%' then 'HWTC' when De
  • 1 use StudentManageDB 2 go 3 select StudentName,StudentAddress from Students ... 4 where StudentAddress like '天津%' 5 6 select StudentName,StudentAddress from Students 7 where StudentN...
  •  文章出处:关系数据库SQL之基本数据查询:子查询分组查询模糊查询  回顾:【知识库】-数据库_MySQL常用SQL语句语法大全示例  Learn [已经过测试校验]  一、简单查询  二、别名/更名  三、子查询...
  • MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结 前言 今天在使用MySQL语句执行增删改查操作时,控制台报出了以下错误:Parameter...
  • oracle 《三》group by like 模糊查询

    万次阅读 2018-08-10 14:53:42
    --查询的字段需要在group by 后边出现 select t.sname,count(t.sno) from testuser t where t.sno is not null group by t.sname; -- max(t.sno),min(t.sno) 通配符 % 与 _ % :表示任意多个字符 _ : 表示...
  • 相信很多人和我一样,学习sql 就是记忆各种sql的...首先对select查询用法有一个大概的了解:分组查询(group by), 连接查询(join), 聚合查询(使用到sum,avg等函数)。遇到具体查询问题,心里有一个方向,要使用哪...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,051
精华内容 8,820
关键字:

like模糊分组查询sql