我是靠谱客的博主 陶醉向日葵,最近开发中收集的这篇文章主要介绍数据库学习笔记4,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数据库学习笔记4

    • 1、基本查询语法
    • 2、指定查询字段
        • 2.1 查询全部的行和列
        • 2.2 查询指定的列
    • 3、列别名的用法
    • 4、去除重复列
    • 5、where条件
        • 5.1 where工作原理
        • 5.2 搜索条件的组成
    • 6、运算符
        • 6.1 算术运算符
        • 6.2 比较运算符
        • 6.3 逻辑运算符
        • 6.4 位运算符
    • 7、空值
    • 8、范围查询
    • 9、模糊查询
    • 10、聚合函数
    • 11、MySQL常用函数
        • 11.1 字符串函数
        • 11.2 日期函数
        • 11.3 数学函数
        • 11.4 数据类型转换函数
            • 11.4.1 整数转字符串
            • 11.4.1 字符串转数字类型
        • 11.5 分组查询
            • 11.5.1 分组查询条件
        • 11.6 where 与 having 的区别

1、基本查询语法

查询使用 select 语句,最简单的查询语句的格式可以表示如下。
语法:

select < 列名 | 表达式 | 函数 | 常量 > from < 表名 >
[where <查询条件表达式>]
[order by <排序的列名>[ascdesc]];

其中,where 条件是可选的,若不限制查询返回所有行的数据项。order by 是用来排序的。

2、指定查询字段

2.1 查询全部的行和列

把表中的所有行和列都列举出来比较简单,这时候可以使用 “ * ” 表示所有的列。
例如:

select * from student;

注意: 这种方式如果数据较多的时候,效率是比较低的。

2.2 查询指定的列

查询部分列需要列举不用的列名而查询部分行需要使用 where 子句进行条件限制。
例如:

select studenNo,studentName from sudent where address = '成都市锦江区';

3、列别名的用法

as 子句可以用来改变结果集中列的名称,也可以为组合或者计算出的列指定名称,还有一种情况是让标题列的信息更易懂,甚至是表都可以取一个别名,例如,把是 studentNo 列名查询后显示为“学生编号”。
例:

select studentNo as '学生编号',studentName as '学生姓名' from student where address = '成都市锦江区';

还有一种情况是使用表达式。例如,在查询出的各个学生编号的基础上 +100 。
例:

select studentNo + 100 as '新编号' ,studentName from student where address = '成都市锦江区';

4、去除重复列

在数据表中的数据存在重复的记录,如果只看不同的数据,那么可以使用 distinct 关键字。
例:

select distinc * from student;

5、where条件

5.1 where工作原理

在之前已多次用到 where ,那么它的工作原理是 根据条件对是数据进行逐条对比,where 条件为真时,就返回记录。

5.2 搜索条件的组成

搜索条件有4种方式:表达式、算术运算符、逻辑运算符、比较运算符。

6、运算符

运算符分为算术运算符、比较运算符、逻辑运算符、位运算符,通过它们,可以进行一系列的数据计算。

6.1 算术运算符

符号说明
+加号,返回操作数之和
-减号,返回操作数之差
*乘号,操作数之积
/除号,操作数之商
%取模,操作数相除后的余数

6.2 比较运算符

符号说明
=等于,相等于 Java 中的恒等于
<=>严格等于
>小于
<大于
<> 或 !=不等于
>=大于等于
<=小于等于
is null若记录为null,结果为真
is not null若记录不为null,结果为真
between and范围在 a 到 b 之间,结果为真
likeSQL模式匹配,匹配相应格式,结果为真
in在指定的值的范围内,结果为真

6.3 逻辑运算符

符号说明
and 或 &&逻辑与,两边操作数都为
or 或 ||逻辑与,两边操作数都为
not 或 !逻辑与,两边操作数都为

6.4 位运算符

符号说明
&按位与,1&1=1,0&1=0
|按位或,1|1=1,1|0=1
<<左移,将一个二进制数左移指定位数
>>右移,将一个二进制数右移指定位数

7、空值

null代表空值,没有值;它区别于 0 和空字符串,三者并不相同;他只能出现在定义为允许NULL值的字段;同时必须使用 is null 或 is not null 判断字段是否为空。

8、范围查询

between…and… 的语法

select <字段1>,<字段2>... from <表名> where <字段名> between <1> and <2>;

MySQL中的 between and 包含两端的值。

9、模糊查询

in的语法

select <字段1>,<字段2>... from <表名> where <字段名> in (1,2,...);

10、聚合函数

MySQL中的聚合函数用来对已有数据进行汇总,如求和、平均值、最大值、最小值等。

MySQL常用的聚合函数
符号说明
sum()返回某字段的和
avg()返回某字段的平均值
max()返回某字段的最大值
min()返回某字段的最小值
count()返回某字段的行数

11、MySQL常用函数

11.1 字符串函数

函数描述使用实例
length返回字符串所占的字节数select length(‘字符串’);
char_length返回字符串所占的字符数select char_lengh(‘字符串’)
positio
(substr in str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0select position(‘def’ in ‘abcdefg’);
select positio(‘学堂’ in ‘老九学堂’);
upper | lower转换大小写select lower(‘MySQL数据库’);
ltrim | rtrim清除字符串左右空格select rtrim(ltrim(‘abc’));
left | right从字符串两边返回指定数目的字符select left(‘中华人民共和国’,3);
replace字符串替换select replace(‘尼古拉斯凯奇’,‘凯奇’,‘赵四’);
substring字符串截取(参数1:起始截取位置;[参数2:截取位数])select substring(‘尼古拉斯凯奇’,1,4);
select substring(‘尼古拉斯凯奇’,5)
reverse颠倒字符串select reverse(‘尼古拉斯赵四’);
concat字符串拼接select concat(14,‘连胜’);

11.2 日期函数

函数描述使用示例
now获取系统当前日期select now();
adddate | date_add
(date,interval | expr type)
向日期添加指定的时间间隔select date_add(now(),interval 7 year);
dayofyear返回date在一年中的天数,在1到366范围内select dayofyear(now());
dayofmonth返回date在月份中的天数,在1到31范围内select dayofmonth(now());
dayofweek返回date的星期索引(1=星期天,2=星期一…)select dayofweek (now());
year返回年份select year(‘2019-07-15’);
month返回日期中的月份值,1到12select month(‘2019-07-15’);
day返回日期中的日期部分select day(‘2019-07-15’);
week计算日期是本年的第几个星期,范围是0~53select week(‘2019-07-15’);
hour返回小时数select hour(‘209-07-15’)
minute返回分钟值select minute(‘209-07-15’)
second返回秒钟值select second(‘209-07-15’)
timestampdiff
(unit,datetime_expr1,datetime_expr2)
日期之差
unit的基本取值:
year:年 month:月
day:天 hour:小时
minute:分钟 second:秒
week:周 microsecond:毫秒;
datetime_expr2 - datetime_expr1
select timestampdiff(year,now(),‘2019-07-15’);

11.3 数学函数

函数描述使用示例
abs取数值表达式的绝对值select abs(-83);
ceiling取小于或等于指定数值、表达式的最小整数select ceiling(40.1);
floor取小于或等于指定表达式的最小整数select floor(40.8);
power取数值表达式的幂值select pow(4,5);
rand(n)返回一个范围在0到1.0之间的随机浮点数。如果一个整数参数N被指定,它被当做种子值使用(用于产生一个可重复的数值)select rand(5);
round(x)
round(x,y)
将参数x四舍五入到最近的整数,然后返回。y的作用是将一个数字四舍五入到y个小数后返回select round(pi());
select round(pi(),2);

11.4 数据类型转换函数

11.4.1 整数转字符串

语法:

concat(int,varcahr);
#示例
select concat(742,'');
11.4.1 字符串转数字类型

语法:

cast(value as type) 或 conver(value,type)

type的类型有:

  • 二进制:同带binary前缀的效果:BINARY
  • 字符型:可带参数:CHAR()
  • 日期:DATE
  • 时间:TIME
  • 时间日期型:DATETIME
  • 浮点数:DECIMAL
  • 整数:SIGNED
  • 无符号整数:UNSIGNED
#示例
#字符串转为整数
select cast('8848' as signed);
select convert('8848',signed);
#字符串转为浮点数
select cast('88.48' as decimal);
select convert('88.48',decimal);

11.5 分组查询

语法:

select * from 表名 group by 分组字段
11.5.1 分组查询条件
select gradeId count(*) from 表名
group by 分组字段[gradeId]
having 分组查询条件[count(*) > 2];

11.6 where 与 having 的区别

where条件表达式:作用于表或者视图,是表和视图的查询条件。
having条件表达式:作用于分组后的记录,用于选择符合条件的组。
having 和 where 子句可以在同一个select语句中一起使用,使用顺序为:where -> group by -> having

最后

以上就是陶醉向日葵为你收集整理的数据库学习笔记4的全部内容,希望文章能够帮你解决数据库学习笔记4所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部