1.联合查询
对表中的数据进行限制;
2.从一个表复制到另一个表
SELECT INTO 将数据复制到一个新表(有的 DBMS 可以覆盖已经存在的表,这依赖于 所使用的具体 DBMS)
SELECT *(字段) INTO CustCopy FROM Customers;
INSERT SELECT 将数据添加到一个已经存在的表不同
3.SQL查询中选取某个字段的前几个字符
left(col_name,N),其中col_name为列名,N为左起前N个字符
subString
4.SQL查询多字段结合
A||B||'-'||C concat(A,'-',B)
5.SQL一次性查询一个字段不同条件下的统计结果
IFNULL(select a from tab where a='1',''),IFNULL(select a from tab where a='2','')
6.IF()函数使用
大数据情况下,提高数据库插入数据效率
1.批量插入 insert into 多条数据合并为单条数据
默认情况下insert是由事务控制
-- 构建批量插入语句
INSERT INTO users (id, name)
VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie'),
(4, 'David'),
(5, 'Eve');
2.使用事务
在事务中,多个操作被视为一个逻辑单元,只有在事务提交时才会将数据写入磁盘。这意味着多个操作可以在内存中完成,减少了磁盘IO的次数。
相比于每次操作都进行磁盘写入,事务将多个操作合并成一个批次写入,从而减少了IO开销,提高了效率。
先分组,再过滤
select job, avg(salary) from employee
group by job
having job ='develop' or job = 'test';
2、正例
先过滤,后分组
select job,avg(salary) from employee
where job ='develop' or job = 'test'
group by job;
3、理由
可以在执行到该语句前,把不需要的记录过滤
7.WITH
子句
WITH cte_name AS (-- CTE 查询语句SELECT columnsFROM tablesWHERE conditions ) -- 主查询 SELECT columns FROM cte_name JOIN other_tables ON join_conditions;
在 SQL 中,
WITH
子句(也称为 Common Table Expression,通常缩写为 CTE)用于定义一个临时的结果集,这个结果集可以在后续的查询中引用多次。
8.CAST类型转换
CAST(expression AS data_type)
CAST(salary AS DECIMAL(10, 2))