第四章笔记 数据查询入门

1.什么是数据查询

对数据表中现有的数据进行逐行筛选的工作,按照要求从符合条件的记录中把指定的字段值提取出来,形成一个结果呈现出来。

2.简单查询

(1)基本语法

SELECT select _ list

FROM table _ name

[ WHERE search _ condition ]

[ ORDERBY order _ expression [ ASC ] DESC ] ]

[ LIMIT [ offset ] rowcount ]

语法说明:

select _ list:用户要查询的字段列表,“*”代表所有字段。

table _ name:用户要查询信息的表(表或视图)。

where:查询的筛选条件开始关键字。

search condition:查询条件的内容。

orderby:关键字,标明查询结果的排列顺序。

order _ expression :按着哪些字段进行排序。

asc: 标明是升序排序。

desc:将结果集按照降序排序。

Uimit:限制每次查询出来的数据条数。

(2)基本应用

<1>SELECT 全表查询

SELECT * FROM 表名;

<2>SELECT 选择列查询

SELECT 列名1,列名2,列名3... FROM 表名;

(3)查询中的别名

<1> 使用AS关键字为字段定义别名

SELECT 字段名1 AS 学号,字段名2 AS 别名... FROM 表明;

<2>使用空格为字段定义别名

SELECT  字段名1  别名,字段名2  别名...   FROM  表名;

  3.条件查询

(1)使用 WHERE 子句限制查询结果

<1>单条件查询

在 WHERE 语句后面只有一个条件,在 WHERE 子句后面使用比较运算符。

<2>多条件符合查询

多个条件的组合,使用逻辑运算符 "NOT","AND","OR"。

(2)使用DISTINCT消除重复行

SELECT  DISTINCT  列名  FROM  表名;

(3)使用LIMIT限定查询返回行

LIMIT  [位置偏移量]  行数

位置偏移量:用于指示MYSQL 从哪一行开始显示,是一个可选的参数,如果不指定该参数,将会从结果集的第一条记录开始(从零开始计数);

行数: 指示返回的记录条数

注:LIMIT 语句是MYSQL 特有的功能。ORACLE , SQL  SERVER  限定查询返回行使用的是其他语句。

(4)处理NULL 值

为空: IS  NULL           不为空: IS  NOT  NULL

注:用字段名=NULL 和IS  NOT  NULL 判断结果是错误的,直接通过SQL语句查询NULL是查询不到的结果都是0条。

(5)使用ORDER  BY 进行查询排序

<1>单列排序

按学号表中的某一个列进行排序,ORDER  BY  后面只有一个列名。

升序  ASC            降序  DESC

注:①在数据库中默认是以升序排列的,所有ASC可以省略不写;

②在数据中,NULL值比所有的值都要小。

<2>多列排序

ORDER  BY  子句后面跟多个字段,字段之间用逗号隔开,每个字段后面都可以跟ASC  或 DESC。

5.MYSQL 的内置函数

(1)字符串函数

函数名示例函数功能
CONCAT

SELECT CONCAT ('今天','晴天')

返回:今天晴天

连接成字符串
LENGTHLENGTH(' hello  world') 结果为11返回字符串的长度
UPPERUPPER('abcd') 返回为'ABCD'将字符串转为大写
LTRIMLTRIM('abc')返回'abc'去除字符串左边的空格
RTRIMRTRIM('abc')返回'abc'去除字符串右边的空格
TRIMTRIM('   ABC    ')返回‘ABC’去除字符串左右两边的空格
REPLACEREPLACE('abcccd','c','x')返回为‘abxxxd’将abcccd中c替换为x
STRCMPSTRCMP(S1,S2)比较字符串S1和S2,如果S1等于S2,返回0。如果S1小于S2,返回-1。如果S1大于S2,返回-1。
SUBSTRINGSUBSTRING('Johnson',5,3)返回为‘son’从第五个位置开始截取长度为3的字符串

注:LENGTH:括号内为汉字时,则表示字节,可用char-length;

如果新闻长度超过10个字符长度,超过部分用“...” 表示。

(2)日期函数

<1>获取当前日期,时间的函数

获得当前日期+时间(date +time)函数:NOW();

获得当前日期函数:CUPDATE();

获得当前函数时间函数:CUPTIME();

<2>获取日期,时间指定部分的函数

函数名函数功能
MONTH(DATE)返回日期对应的月份(数字类型,返回1到12的整数)
MONTHNAME(DATE)返回日期对应的月(字符串,返回月份的英文全名,如:2月份是Februray)
DAYNAME(DATE)返回日期对应的工作日的英文名称
DAYOFWEEK(DATE)返回日期对应的一周中的索引。1表示周日,2表示周一
WEEKDAY(DATE)返回日期对应的工作日索引。0表示周一,1表示周二... 6表示周日
WEEK(DATE)计算日期是一年中的第几周,范围从1到52
DAYOFYERA(DATE)计算日期是一年中的第几天,范围从1到366
DAYOFMONTH(DATE)计算日期是一个月中的第几天,范围从1到31
YEAR(DATE)返回日期从中年份,范围从1000到9999
QUARTER(DATE)返回日期对应的一年中的季度值,范围从1到4
MINUTE(TIME)返回时间的分钟部分,范围从0到59
SECOND(TIME)返回时间的秒部分,范围从0到59

<3>计算日期和时间的函数

函数名函数功能
NOW()获得当前日期+时间格式
DATE_ADD()为日期增加一个时间间隔
ADDDATE

可以用date_add()  来代替,用法一致

DATE_SUB()为日期减少一个时间间隔
SUBDATE()可以用date_sub()来替代,用法一致
ADDTIME()可以用date_add()来代替,用法一致
DATEDIFF()日期时间相减函数

查询学生姓名,姓名长度和系统当前时间

SELECT  STUNAME , NOW() ,  LENGTH ( STUNAME )   FROM  表名;

(3)数学函数

函数名函数功能
format(x,y)将一个数字x,保留y位小数,并且整数部分用逗号分隔千
分位,小数部分进行四舍五入。
abs()求一个数的绝对值;absolute
sqrt()求一个数的平方根。sqrt是sqruar(平方,矩形),root(根)
的缩写。
mod(x,y)x除数,y被除数。结束是余数。
ceil()向上取整
floor()向下取整
rand()是用来生成随机数用的
truncate()不管四舍五入,直接把x的y位小数直接删除
sign()返回当前结果的符号,如果是负数返回-1,如果是0返回0,如果是正数,返回1
power幂运算
round()将数值表达式四舍五入为指定精度

(4)系统函数

函数名函数功能
DATABASE()返回当前数据库名
BENCHMARK( count,expr)将表达式 expr 重复运行 count 次
CONNECTION_ID()返回当前客户的链接ID
FOUND_ROWS()返回最后一个SELECT查询进行检索的总行数
VERSION()返回MYSQL服务器的版本

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值