今日sql学习

目录

[一,union all](#一,union all)

二,GROUP_CONCAT函数

三,字符串函数:RIGHT()函数

[四,字符串函数:LENGTH() 函数 / REPLACE()函数](#四,字符串函数:LENGTH() 函数 / REPLACE()函数)

五,条件更新表内的值

六,创建外键

七,修改表名

八,删除记录

九,构建触发器

十,增加属性字段


一,union all

对查询结果进行连接 与 union 不同 union 不会去重

sql 复制代码
SELECT 
AVG(salary)
FROM `salaries8` 
WHERE to_date = '9999-01-01' AND salary NOT IN (

  SELECT MAX(salary) FROM `salaries8` AND to_date = '9999-01-01'
  UNION ALL 
  SELECT MIN(salary) FROM `salaries8` AND to_date = '9999-01-01'


)

二,GROUP_CONCAT函数

可以将分组后的相同字段连接

sql 复制代码
select
    dept_no,
    group_concat(emp_no) employees
from dept_emp
group by dept_no;

三,字符串函数:RIGHT()函数

从右向左获取字段的值 可以指定获取的个数

sql 复制代码
SELECT
first_name
FROM `employees`
ORDER BY RIGHT(first_name,2)

四,字符串函数:LENGTH() 函数 / REPLACE()函数

LENGTH()函数用来获取字符串的长度 / replace(字段,"被替换值","替换的值")函数可以替换值

sql 复制代码
SELECT id, (LENGTH(string) - LENGTH(REPLACE(string,",",''))) AS cnt  FROM `strings`
sql 复制代码
update titles_test
set titles_test.emp_no = replace(titles_test.emp_no, 10001, 10005)
where titles_test.id = '5';

五,条件更新表内的值

UPDATE "table_name" SET `字段` = "value" WHERE

sql 复制代码
-- 更新数据库
UPDATE `salaries6` SET salary = 1.1 * salary
WHERE salaries6.emp_no IN (

SELECT emp_no FROM `emp_bonus`

) AND salaries6.to_date = '9999-01-01'

update titles_test set to_date = NULL, from_date = "2001-01-01"

where id in

(

select * from (

select id

from titles_test

where to_date = "9999-01-01"

) as t

)

六,创建外键

sql 复制代码
ALTER TABLE audit ADD FOREIGN KEY (emp_no) REFERENCES employees_test(ID);

七,修改表名

sql 复制代码
ALTER TABLE `titles_test` RENAME AS `titles_2017`

八,删除记录

sql 复制代码
delete from titles_test
where id not in(
select min_id from (select min(id) as min_id from titles_test group by emp_no)t1);

九,构建触发器

sql 复制代码
create trigger audit_log
after insert on employees_test
for each row
begin
    insert into audit values(new.id,new.name);
end

十,增加属性字段

sql 复制代码
ALTER TABLE actor ADD DELETE_date DATETIME NOT NULL DEFAULT '0000 00:00:00'
相关推荐
ClickHouseDB5 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906945 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
时间售卖铺6 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw6 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社7 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙7 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
apple-mapping8 小时前
网络RTK定位学习总结
学习·网络rtk
captain3768 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02149 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
楚山之石9 小时前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri