MySQL(四)
本帖最后由 yukari123 于 2023-3-21 14:53 编辑sum()
max()
min()
count()
以上函数都是选择非空集合运算
如果要把空的也算进去需要
count(*)
distinct关键字表示对 distinct 后面的所有列进行组合去重
order by 分组子句
SELECT
我靠。。。我没保存闪退了 数据全没了
从我现在学的开始吧。。之前的一大段没保存
SELECT product_id
FROM products p
where NOT EXISTS (
SELECT product_id
FROM order_items
WHERE product_id=p.product_id)数值函数:
round()四舍五入一个整数
round(a,b)b为需要四舍五入的精度
ceiling()返回大于或等于的整数
fool()地板函数
ABS()绝对值
RAND()返回随机0-1的浮点数
lower(‘’)字符串小写
LEIGHT(‘’)截取
SUBSTRING(‘’,3,6)截取其实位置3,长度为6的字符
LOCATE(''v,'love')查找后面字符串出现v的次数,不分大小写
REPLACE(‘原字符串’,‘需要替换的’,‘替换后的’)
CONCAT('','')连接两个字符
NOW() 获取当前完整时间
CURDATE()获取简写的日期
CURTIME()获取简写的时间
YEAR(NOW())
DATE(NOW())
MOUNTHNAME(NOW())
EXCEPT(YEAR FROM NOW())
格式化时间 DATE_FORMAT(NOW(),'%M %d %Y') 三月 11 2019
TIME_FORMAT(NOW(),' %H :%i %p')12:12 PM
DATE_ADD(NOW(),INTERVAL 1 YEAR/DAY) 返回一年前的时间,如果用负数就是未来
DATEDIFF('2019-07-21 12;00','2019-07-01 12;00')输出是-20 返回两个日期的时间差
TIME_TO_SEC(‘9:00’)-TIME_TO_SEC(‘9:02’) 输出的是-120 返回秒之差
IFNULL(shipper_id,'没有出货')AS shipper 定义空值
COALESCE(shipper_id,commend,'自定义') 挨个查找,返回
if语句
if(条件,正确输出,错误输出)
SELECT
product_id,name,order_id,count(order_id) a,if(count(order_id)>1,'多家','单件')
FROM sql_store.products
join order_items using(product_id)
group by product_id
CASE语句
CASE
when 条件 then ‘输入的字符’
when 条件 then ‘’
。。。
else ‘’
END AS 列名
static/image/hrline/1.gif
static/image/hrline/1.gif
视图view操作
创建
CREATE VIEW 表名 AS
SELECT 。。
CREATE VIEW seeseebalancebalance as
SELECT
c.client_id,
c.name,
sum(invoice_total-payment_total) as banlance
FROM sql_invoicing.clients c
join invoices i USING (client_id)
group by client_id,name
删除
DROP VIEW 表名
覆盖更改
CREATE OR REPLEACE VIEW表名 AS
删除列、更新列
DELECT FROM 视图名
where
UPDATE 视图名
SET
where
锁定视图
最后加WITH OPTION CHECK
页:
[1]