IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> sql语句笔记 -> 正文阅读

[大数据]sql语句笔记

1. mybatis中<小于号,>大于号
2. 删除两个表中的数据

delete employee, employeeSkills
from employee, employeeSkills, department
where employee.employeeID = employeeSkills.employeeID
and employee.departmentID = department.departmentID
and department.name='Finance';

3. 删除两个表中的数据,用using语法

delete from employee, employeeSkills
using employee, employeeSkills, department
where employee.employeeID = employeeSkills.employeeID
and employee.departmentID = department.departmentID
and department.name='Finance';

4. 年份用year()函数,月份用month()函数,日期是星期几用DAYOFWEEK(),格式化为年月日DATE_FORMAT(now(), '%Y-%m-%d'),时分DATE_FORMAT(now(), '%T:%f')date_sub(ds.constant_date,interval 1 day)取前一天

5. 时间戳比较

<select id="queryEndTime" parameterType="map" resultType="int">
        select count(*) from innovate_declaration_process_setting
        where declare_process_name = #{declareProcessName}
        and UNIX_TIMESTAMP(NOW()) &gt; UNIX_TIMESTAMP(end_time)
    </select>

6. 先查询再保存,批量保存多条

insert into attendance(student_no,is_attend,record_time,user_id,record_id)
          SELECT student_no,0,NOW(),record.user_id,record_id from record
               LEFT JOIN attendance_statistics on record.class_id = attendance_statistics.class_id WHERE record_id = ?

7. 当记录不存在时保存

insert if not exists
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where clients.client_id = 10345);
//使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。

8.回滚操作

SET XACT_ABORT ON;
GO
BEGIN TRANSACTION;
INSERT INTO t2 VALUES (4);
INSERT INTO t2 VALUES (5); -- Foreign key error.
INSERT INTO t2 VALUES (6);
COMMIT TRANSACTION;
GO

9. 删除同一张表先查后删

delete from attendance_statistics WHERE class_id in (SELECT s.id FROM (SELECT attendance_statistics.class_id as id from attendance_statistics where id = ?) as s)

10. mysql可通过begin;commit实现事务处理,中间可执行多个sql语句,其中每句sql都要有分号分割

11. max()配合group by查询每个人的最新时间的记录会出现数据不匹配的问题,所以改用子查询与原表关联

SELECT
	ds.stu_name,
	fir.return_id,
	b.*,
	fir.identify_time 
FROM
	face_bed b
	LEFT JOIN face_student ds ON ds.stu_no = b.stu_no
	LEFT JOIN (
	SELECT
		* 
	FROM
		face_identify_record y 
	WHERE
		y.identify_time = ( SELECT max( x.identify_time ) FROM face_identify_record x WHERE x.stu_no = y.stu_no ) 
	ORDER BY
	y.identify_time
	) fir ON ds.stu_no = fir.stu_no

12. mysql> set global max_allowed_packet=30*1024*1024;设置一次最多更新内容大小,默认的话是最多4m

13. 另一个表记录为空时查询该记录,3种方法,not exist这种方法可以参考not in理解,首先选取主表中的一个元组,然后一次判断子表中的每个元组是否可以输出,只要有一个元组可以输出,则最外层查询的where子句返回为false,即输出主表的该元组记录,接着选取主表中的下一个元组

	# not exist
	SELECT
	    s.stu_id,
        s.stu_name,
        s.username
        from
        train_student s
        <where>
            not exists (select ts.stu_task_id from train_submit ts where ts.stu_id = s.stu_id and ts.task_arrange_id = #{taskArrangeId})
            and s.classes_id = #{classesId}
        </where>
===================================================================
	# not in
	SELECT
		* 
	FROM
		train_student s 
	WHERE
		s.stu_id NOT IN ( SELECT ts.stu_id FROM train_submit ts ) 
		AND s.classes_id = 37
===================================================================
	# where条件实现
	SELECT
		s.stu_id,
		s.stu_name,
		s.username 
	FROM
		train_student s
		LEFT JOIN train_submit ts ON ts.stu_id = s.stu_id 
		AND ts.task_arrange_id = #{taskArrangeId}	
	WHERE
		ts.task_id IS NULL 
		AND s.classes_id = #{classesId}
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:14:20  更:2022-02-19 01:16:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:48:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码