zoukankan      html  css  js  c++  java
  • Mysql查询数据库 整理

    一、       查询数据:

    查询所有列:SELECT * FROM student;

    查询指定列:SELECT id,NAME,gender FROM student;

    格式:select字段名, 字段名, 字段名 from 表名

    查询时添加常量列:

    在查询xxx表时添加一个班级列,内容为“xxx”

    SELECT id,NAME,gender,age,'xxx' AS '年级'  FROM xxx;

    查询时合并列:

    需求: 查询每个学生的servlet和jsp的总成绩

    SELECT id,NAME,(servlet+jsp) AS '总成绩' FROM student;

    注意:合并列只能合并数值类型的字段

    SELECT id,(NAME+servlet) FROM student;

    查询时去除重复记录:

    需求: 查询学生的性别     男 女

    SELECT DISTINCT gender FROM student;

    另一种语法

    SELECT DISTINCT(gender) FROM student;

    条件查询(where):

    1)    逻辑条件: and(与)     or(或)

    a)         需求: 查询id为2,且姓名为李四的学生

    SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集

    b)         需求: 查询id为2,或姓名为张三的学生

    SELECT * FROM student WHERE id=2 OR NAME='张三'; -- 并集

    2)    比较条件: >   <   >=  <=  =  <>(不等于) between and (等价于>= 且 <=)

    a)         需求: 查询servlet成绩大于70分的学生

    SELECT * FROM student WHERE servlet>70;

    b)         需求: 查询jsp成绩大于等于75,且小于等于90分的学生

    a)         SELECT * FROM student WHERE jsp>=75 AND jsp<=90;

    另一个语法

    b)         SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包后)

    3)    判空条件(null 空字符串):  is null / is not null / =''  / <>''

    a)         需求: 查询地址为空的学生(包括null和空字符串)

    null vs  空字符串

    null:表示没有值

    空字符串:有值的,但是值是空字符串

    b)         判断null

    SELECT * FROM student WHERE address IS NULL ;

    c)         判断空字符串

                                                         i.              SELECT * FROM student WHERE address='';

                                                       ii.              SELECT * FROM student WHERE address IS NULL OR address=''; -- (包括null和空字符串)

    d)         需求: 查询有地址的学生(不包括null和空字符串)

    SELECT * FROM student WHERE address IS NOT NULL AND address<>'';

    4)    模糊条件: like

    通常使用以下替换标记:

    % : 表示任意个字符

    _ : 表示一个字符

                                                         i.              需求: 查询姓‘张’的学生

    SELECT * FROM student WHERE NAME LIKE '李%';

                                                       ii.              需求: 查询姓‘李’,且姓名只有两个字的学生

    SELECT * FROM student WHERE NAME LIKE '李_';

    聚合查询

    常用的聚合函数:sum()  avg()  max()  min()  count()/*记录*/

    求和:

    Select sum(字段名) from 表名

    求平均:

    Select avg(字段名) from 表名

    最大值:

    Select sum(字段名) from 表名

    最小值:

    Select sum(字段名) from 表名

    统计表记录数(常用):

    Select count(*) from 表名

     

     

    分页查询(limit 起始行,查询几行)

     

    分页查询当前页的数据的sql:

    公式:

    SELECT * FROM student LIMIT (当前页-1)*每页显示多少条,每页显示多少条;

    查询第xx条记录

     

    查询排序(order by)

    语法: order by 字段 asc正序/desc倒序

    asc: 顺序,正序。数值:递增,字母:自然顺序(a-z)

    SELECT * FROM student ORDER BY id ASC;

    格式:select * from 表名order by 字段名 desc

    desc: 倒序,反序。数值:递减,字母:自然反序(z-a)

    SELECT * FROM student ORDER BY id DESC;

    格式:select * from 表名 order by 字段名 desc

    分组查询(group by)

    SELECT gender,COUNT(*) FROM student GROUP BY gender;

    格式:select 字段名,count(*) from 表名group by

    分组查询后筛选(group by   having)

    筛选出人数大于2的记录

    SELECT gender,COUNT(*) FROM student GROUP BY gender HAVING COUNT(*)>2;

    格式:select 字段名,count(*或者字段名) from 表名 group by  字段名 having  count(*)>值

  • 相关阅读:
    TensorFLow手写字识别深度学习网络分析详解
    使用MSBUILD 构建时出错 error MSB3086: 任务未能使用 SdkToolsPath“”或注册表项“XXX”找到“LC.exe”,请确保已设置 SdkToolsPath。
    解决Win7启动时出现“windows未能启动。原因可能是最近更改了硬件或软件”的问题
    SSH安装篇之——SecureCRT连接(内网和外网)虚拟机中的Linux系统(Ubuntu)
    git push 冲突
    ubuntu快捷键收集
    ubuntu中wine下安装QQ
    ubuntu下安装无线网卡去驱动Qualcomm-Atheros-QCA9377
    spring mvc添加静态资源访问时@Controller无效的解决
    git更新到远程服务器代码
  • 原文地址:https://www.cnblogs.com/mengmengi/p/10282620.html
Copyright © 2011-2022 走看看