yukari123 发表于 2023-3-17 20:46:54

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]
查看完整版本: MySQL(四)