sql

01-如何写sql语句

starrylsi
2024-09-17 / 0 评论 / 14 阅读 / 正在检测是否收录...

问题: 不知道如何将一段需求用sql语句实现

需要关注

没有 null ,is null,is not null,ifnull
去重 distinct
不等于 <>
大于 >
小于 <
逻辑运算 and 和 or
范围 between ... and ...,not between ... and ...
取反 not
不在一个集合 not in()
排序 order by 列名 默认升序,asc 升序,desc降序
含有,有 like,not like
每个 group by
相同类型 使用count

在SQL中,分组(GROUP BY)的主要目的是为了对数据进行聚合操作,以便能够对数据集进行汇总、分析和报告。

表内数据关联: 自连接(Self Join)是SQL中的一种连接操作,它允许一个表与其自身进行连接。这种连接通常用于查询表中与另一行相关联的数据,例如,查找同一表中具有某种关系(如上下级关系、父子关系等)的行


#null值的特性
#1.任何与null做算术运算的结果都为null
#2.null值不可以使用比较运算符判断 不可以使用 = 或者 <> 判断是否为空
#    使用 is 或 is not 判断是否为null
#3.在mysql中 null被认为是无穷小   在oracle中 null被认为是无穷大
#    排序过程中一般要对null值做处理
#4.null值会被组函数忽略


SELECT 1 FROM DUAL;

SELECT "Hello World!";

#运算函数
#求绝对值
SELECT ABS(-10);

#开方
SELECT SQRT(9);

#乘方
SELECT POW(2,3);

#随机数
SELECT RAND();

#四舍五入
SELECT ROUND(3.14);

#向上取整
SELECT CEIL(3.14);

#向下取整
SELECT FLOOR(3.5);

#字符串函数
#拼接
SELECT CONCAT("abc","def");

#查看指定字符下标 数据库中函数 下标从1开始  找到返回指定下标 找不到返回0
SELECT INSTR("abc","a");

#转大写
SELECT UPPER("abc");

#转小写
SELECT LOWER("ABC");

#时间函数
#数据库中的时间类型 分为 
#     time         存储的是时分秒          hh:mm:ss
#    date         存储的是年月日          yyyy-MM-dd
#    datetime    存储的是年月日时分秒        yyyy-MM-dd hh:mm:ss
#     timestamp    存储的是时间戳            yyyyMMddhhmmss


#获取当前time
SELECT CURTIME();

#获取当前date
SELECT CURDATE();

#获取当前datetime 
#now也代表timestamp
SELECT NOW();

#日期不可以直接使用运算符运算 大部分结果是无效的
#使用datediff函数进行计算 两个日期之间的相差时间  结果按照 天返回
SELECT id,NAME,price,DATEDIFF(CURDATE() , create_date) livedate FROM product;
0

评论 (0)

取消