MySQL----查询

这篇博客详细介绍了MySQL的查询操作,包括查询单个和多个属性、使用limit限制结果、distinct去除重复行、数学表达式、处理null、取别名、排序、数据筛选、模糊查询、分组和函数应用。还涉及了SQL正则表达式、子查询、联接查询等高级技巧,是学习MySQL查询的全面教程。
摘要由CSDN通过智能技术生成

查询

  • 语法结构

  • select…from 表名;

  • 使用select 检索数据至少知道两点:

    1. 要查询什么
    2. 从哪里查询
  • select查询语句执行完成后,返回的是查询处理的结果,而结果是一张—(虚拟)表

1.查询一个表中的一个属性
  • select 属性名 from 表名;

  • 找出学生表中学生的姓名

    Select sname from t_student;

  • 从系主任表中找出系主任的姓名

    Select mname from t_man;

  • 找出系部管理表中系的名字

    Select dname from t_dept;

2.查找一个表中的多个属性
  • select 属性1,属性2…from 表名;

  • 找出学生的姓名和年龄

    Select sname,sage from t_student;

  • 从学生表中找出学生的学号、姓名、英文名

    Select sid,sname,sename from t_student;

  • 查询学生的姓名和系主任的名字–笛卡尔积现象

    Select sname,mname from t_student,t_man;

3.查询表中的所有记录
  • 重载学生表中的所有信息

    Select*from t_student;

4.查询语句的限制结果行
  • 关键字:limit

  • select…from 表名 limit n; 表示查询前n行(从0计数)

    • 从学生表中查找前5行学生的姓名和年龄

      Select sname,sage from t_student limit 5;

  • select…from 表名 limit n,m; 表示从第n(从0开始计数)行开始,一共查询m行

    • 从学生表中查找第4行到第10行学生的信息

      Select * from t_student limit 3,7;

    • 从学生表中查找第五行到第十行学生的学号、姓名及年龄

      Select sid,sname,sage from t_student limit 4,6;

5.去掉重复行的使用
  • 关键字:distinct

  • 从学生表中输出sclass,去掉重复的sclass

    Select distinct sclass from t_student;

  • 从学生表中找出学生的姓名,班级编号,并去掉重复行

    Select distinct sclass,sname from t_student;

    distinct 应放在select后

6.运用数学表达式:
  • Select 列名+数字(列名)from 表名;(列值必须是数字)

  • 使用 ±*/ 进行运算,乘除优先级高于加减,相同优先级先算左边,圆括号用来重新组合表达式的优先级

    • 找出学生10年后的年龄

      Select sage,sage+10 from t_student;

    • 从学生表中找出学生的姓名、年龄和10年后的年龄,并只取前5行

      Select sname,sage,sage+10 from t_student limit 5;

    • 输出学生表中学生的姓名,以及年龄,班级之和

      Select sname,sage+sclass from t_student;

      null + 数字结果为null

7.处理null
  • ifnull(可能会出现null的属性,如果是null给一个值);

  • 输出学生表中学生的姓名,以及年龄,班级之和,如果有空则赋值0

    Select sname,sage+ifnull(sclass,0) from t_student;

8.取别名
  • 关键字:as

  • Select 属性名 as 别名 from 表名;

    • 给学生表中的sname取别名“姓名”,只输出5个

      Select sname as '姓名' from t_student limit 5;

    • 输出学生表中的姓名、10年后的年龄并以此为别名

      Select sname,sage+10 as 10年后的年龄 from t_student;

  • Select 属性名 别名 from 表名;

  • Select 属性名 as ‘别名’ from 表名;

    • 在Java代码中sql语句是以字符串形式出现,所以sql使用单引号。

      String sql = " '' ";

    • 可以在单引号中敲空格

      • 查找学生的姓名并以此为别名

        Select sname '姓 名' from t_student;

      • 在学生表中找出学生的学号(取别名学号)、姓名(取别名姓名)、高考分数+100(取别名最终成绩),结果取第3行到第7行

        Select sid as '学 号',sname as '姓 名',sscore+100 最终成绩 from t_student limit 2,5;

9.串接操作符
  • concat()函数

  • Select concat(列名,列名) from 表名;

    • 将两列值拼接为字符串输出

      • 从学生表中找出学生的学号、姓名并凭借输出

        Select concat(sid,sname) from t_student;

  • concat(列名,‘自己加的字符串’,列名);

    • 在学号和姓名中间加一句话,形成一段完整的话输出

      Select concat(sid,'号是',sname) as '详细信息' from t_student;

10.获取时间的函数
  • select now();

    ±--------------------+
    | now() |
    ±--------------------+
    | 2018-08-01 09:32:19 |
    ±--------------------+

  • select now() from t_student;

    表示表里有多少行记录,就给你多少行当前时间。

  • select 3+4;

    ±----+
    | 3+4 |
    ±----+
    | 7 |
    ±----+

11.排序
  • 按某个字段/属性排序 关键字:order by(默认由低到高)

  • select …from 表名 order by 属性名 asc;

    按照从低到高排序ÿ

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值