首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL | SQL 必知必会笔记 (一 )

SQL 不区分大小写,但一般习惯关键字用大写,列名表名使用小写。 处理 SQL 语句时,所有空格都会被忽略。一般认为写成多行更容易维护。 选择多个列时,一定要在列名之间加上逗号,但最后一个列名不加。...选择单个列 SELECT prod_name FROM Products; 处理 SQL 语句时,所有空格都会被忽略。下面三个例子可以实现同样效果,一般认为写成多行更容易维护。...检索不同 SELECT vend_id FROM Products; 使用 DISTINCT 关键字只返回不同(唯一。...比如 SELECT DISTINCT vend_id, prod_id, prod_price 因为指定两列不完全相同,所以所有的行都会被检索出来。...NULL 表示空,确定是否空,不能简单 = NULL,SELECT 语句有一个特殊 WHERE 子句 IS NULL ,可用来检查具有 NULL 列。

2.5K51

使用SQL数据操作语言 (DML)

由于 SQL 具有易于学习语法,因此它通常被视为用于分析操作数据最佳高级编程语言之一。...您可以通过 regions 表对国家/地区进行筛选,以更新具有南美洲相应 region_id 国家/地区: SQL> UPDATE countries c 2 SET c.population...与 UPDATE 语句类似,您还可以根据其他表应用相同筛选器: SQL> DELETE FROM my_tab c 2 FROM regions r 3 WHERE r.region_id...如果 countries 表包含与 my_tab 表具有相同 country_id 行,则该语句只会更新 population 列(如 WHEN MATCHED THEN UPDATE 子句中所示)...如果 MERGE 语句在 countries 表中找不到具有相同 country_id 相应行,则它会将具有所有字段行插入到 countries 表中。 MERGE 语句还提供了一些灵活性。

10210
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL基础(快速复习版)

3、假如表中有可以为null字段,注意可以通过以下两种方式插入null ①字段都省略 ②字段写上,使用null 4、字段个数必须一致 5、字段名可以省略,默认所有列 二、方式二 语法:...insert into 表名 set 字段=,字段=,...; 两种方式 区别: 1.方式一支持一次插入多行,语法如下: insert into 表名【(字段名,..)】 values(,..)...,但可以有多个唯一 ②、主键不允许为空,唯一可以为空 2、相同点 都具有唯一性 都支持组合键,但不推荐 外键: 1、用于限制两个表关系,从表字段引用了主表某字段 2、外键列主表被引用列要求类型一致...,比如insert、update、delete 显式事务:具有明显开启结束 使用显式事务: ①开启事务 set autocommit=0; start transaction;#可以省略 ②编写一组逻辑...多个事务 同时 操作 同一个数据库相同数据时 2、并发问题都有哪些?

4.5K20

第36次文章:数据库查询语句

tips:我们可以将上面给出案例与sql92语法中案例进行对比,可以发现,sql99语法将连接条件使用关键字on进行连接,与筛选条件分开,具有更强可读性。...tips:sql99语法中,可以提供三种外连接,但是我们使用是mysql数据库,不支持全外连接,所以我们最后仅仅运行左外右外结果。两者结果相同,与我们在外连接特点中表述相同。...可读性:sql99实现连接条件筛选条件分离,可读性较高。 所以我们在使用连接查询时候,更加推荐使用sql99语法。 2、几种连接区别 内连接,左外连接,右外连接,以及其他集合形式实现方法 ?...出现在wherehaving后面的子查询,都属于产生筛选条件,标量子查询直接产生一个;列子查询返回一系列,但是需要配合any,some等关键字进行使用,最后依旧是使用一个常量值来代替筛选条件...部门表中每个部门编号如果存在员工表中,那么我们就列举出此员工详细信息,然后使用exist来判断此子查询是否存在,如果有,则返回1,如果没有,则返回0,当返回1时候,就满足筛选条件,然后主查询就显示出此部门名称

1.7K30

重学 SQL(四)

重学 SQL(四) 發佈於 2020-08-13 本篇,我们来介绍一下 SQL 中常用聚合函数(Aggregate Functions) GROUP BY 子句使用。...并且与之后要介绍数据处理函数不同,SQL 聚集函数在各种主要 SQL 实现中得到了相当一致支持。...如果在 SELECT 中使用表达式,则必须在 GROUP BY 子句中指定相同表达式,不能使用别名 除聚集计算语句外,SELECT 语句中每一列都必须在 GROUP BY 子句中给出 如果分组列中包含具有...如果列中有多行 NULL ,它们将分为一组 GROUP BY 子句位置必须在 WHERE 子句之后,ORDER BY 子句之前 SELECT date, pm....,并且 HAVING 子句所使用列必须是 SELECT 子句选择列,或者聚合函数列,WHERE 子句中不能使用聚合函数。

60010

史上最全 DB2 错误代码大全

-421 42826 UNION操作选择列表中没有提供相同数目的列 -423 0F001 为LOB或结果集定位器指定无效 -426 2D528 在不允许更新应用服务器不允许执行COMMIT语句...从版本5开始,父关键字多行更新将试图删除一个外关键字依赖父关键字,在版本5以前,当引用主关键值外健值当前存在时,试图更新该主健 -532 23504 删除操作违反了已指定参照约束 -533...21501 多行插入无效,试图将多行插到自我引用表中 -534 21502 可改变主健列更新语句不能在同一时刻用于更新多行 -535 21502 当从自我引用表中删除数据或者更新主健列时,不能指定...,但这些对象建立没有选择MODIFIES SQL DATA选项 -579 38004 试图修改用户自定义函数中数据或者存储过程中数据,但这些对象建立没有选择READ SQL DATA选项,也没有选择...811 21000 当多行作为一内嵌选择语句返回结果是,必须使用游标 -812 22508 在CURRENT PACKAGESET中ID集合是空白,语句不能被执行 -815 42920 在一个内置选择语句或者一个基本谓词子查询中

4.4K30

DB2错误代码_db2错误码57016

-421 42826 UNION操作选择列表中没有提供相同数目的列 -423 0F001 为LOB或结果集定位器指定无效 -426 2D528 在不允许更新应用服务器不允许执行COMMIT语句...从版本5开始,父关键字多行更新将试图删除一个外关键字依赖父关键字,在版本5以前,当引用主关键值外健值当前存在时,试图更新该主健 -532 23504 删除操作违反了已指定参照约束 -533...21501 多行插入无效,试图将多行插到自我引用表中 -534 21502 可改变主健列更新语句不能在同一时刻用于更新多行 -535 21502 当从自我引用表中删除数据或者更新主健列时,不能指定...,但这些对象建立没有选择MODIFIES SQL DATA选项 -579 38004 试图修改用户自定义函数中数据或者存储过程中数据,但这些对象建立没有选择READ SQL DATA选项,也没有选择...811 21000 当多行作为一内嵌选择语句返回结果是,必须使用游标 -812 22508 在CURRENT PACKAGESET中ID集合是空白,语句不能被执行 -815 42920 在一个内置选择语句或者一个基本谓词子查询中

2.5K10

JavaWeb05- 就这几步轻松操作MySQL数据库!

DB2数据库: 作为关系数据库领域开拓者领航人,IBM在1997年完成了System R系统原型,1980年开始提供集成数据库服务器—— System/38,随后是SQL/DSforVSEVM...DB2 forMVSV1 在1983年推出。该版本目标是提供这一新方案所承诺简单性,数据不相关性用户生产率。...1988年DB2 for MVS 提供了强大在线事务处理(OLTP)支持,1989 年1993 年分别以远程工作单元分布式工作单元实现了分布式数据库支持。...书写注意事项 lSQL语句可以单行或多行书写,以分号结尾 lMySQL数据库SQL语句不区分大小写,建议使用大写,例如:SELECT * FROM user 4....lhaving:对分组后信息进行筛选; lselect:选择所需要列信息; lorder by:对查询信息进行排序。

1K50

SQL Cookbook》 - 第三章 多表查询

合并两个行集 表可以没有相同字段列,但是他们对应列数据类型必须相同,且具有相同列个数, select ename, deptno from emp union all select '-----...为了避免NOT INNULL带来问题,可以结合使用NOT EXISTS关联子查询。关联子查询指的是外层查询执行结果集会被内层子查询引用。...标量子查询,不需要改主查询中正确连接操作,他是为现有查询增加新数据最佳方案。但是当使用标量子查询时,必须保证返回是标量值(单),不能返回多行。 7. ...DB2、MySQL、PGSQL Server,可以用, select d.deptno, d.dname, e.ename from dept d full outer join emp e...运算比较中使用NULL NULL不等于任何,甚至不能其自身进行比较,但是对从NULL列返回数据进行评估,就像评估具体一样。

2.3K50

运维必备--如何彻底解决数据库锁超时及死锁问题

而有些工具为了支持并发,如 datastage ,会将一个批量更新或插入语句拆分成多个进程同时执行,从而提高效率。如果多个进程同时 update 相同多行数据。...,一般选择已花费成本较少那个回滚,被回滚那个事务会报 911 错误。...如果过去活动数目高于此限制,那么将只报告最新活动。 HIST_AND_VALUES,对于那些包含输入数据活动,会将那些输入数据发送到任何活动锁定事件监视器。...可参考官网查询语句进行分析:DB2 V9.7 锁事件监控 方法二、生成格式化文本文件 db2 自代 java 环境生成格式化文本工具 db2evmonfmt。...如果临时处理:如果请求者事务优先级高,那就让拥有锁事务回滚,可以通过db2 "force application (agent id) “ 来结束事务,从而从拥有者那里释放锁。

2.2K20

mysql基本操作

values (....); 所有在字段位置填写了名字字段后面的必须是一一对应 insert into 表名(字段名,字段名。。。) values (....),(....)...,(....); 所有在字段位置填写了名字字段后面的必须是一一对应 value单数:一次性写入一行数据,values复数:一次性写入多行数据 写入角度: 第一个角度:写入一行内容还是写入多行...from employee where salary not in (20000,30000,3000,19000,18000,17000) 范围筛选 多选一:字段名 in (1,2,3)...id*10 = 1000000; 对两列内容进行条件查询 and and条件两端内容,优先选择一个有索引,并且树形结构更好,来进行查询 两个条件都成立才能完成where条件,先完成范围小缩小后面条件压力...-p123 db1 table1 table2 > db1-table1-table2.sql #多库备份 mysqldump -uroot -p123 --databases db1 db2 mysql

1.3K20

学习MySQL这一篇就够了

分组前筛选分组后筛选 针对表 语句位置 连接关键字 分组前筛选 分组前原始表 group by前 where 分组后筛选 分组后结果集...,但必须保证字段一一对应 假如表中有可以为null字段,注意可以通过以下两种方式插入null:①字段都省略、②字段写上,使用null 字段个数必须一致 字段名可以省略,默认所有列 方式一支持一次插入多行...2、主键不允许为空,唯一可以为空 #相同点: 1、都具有唯一性 2、都支持组合键,但不推荐 外键 1、用于限制两个表关系,从表字段引用了主表某字段 2、外键列主表被引用列要求类型一致,...:一个事务一旦提交了,则永久持久化到本地 三、分类 隐式事务:没有明显开启结束,本身就是一条事务可以自动提交,比如insert、update、delete 显式事务:具有明显开启结束,例如以下格式...多个事务同时操作同一个数据库相同数据时 二、事务并发问题都有哪些?

1.2K10

2-SQL语言中函数

min 最小 特点: sum,avg可以处理数值型数据,max,min,count可以处理任何类型数据 以上几个分组函数都会自动忽略null 可以distinct搭配使用 # 分组函数 /* 分类...】 GROUP BY 分组列表 【ORDER BY 子句】 注意: 查询列表比较特殊,要求是分组函数group_by后出现字段 分组查询中筛选可以分为两类 分组前筛选:分组前筛选也就是筛选内容在数据库中就存在...BY 分组列表 【ORDER BY 子句】 注意:查询列表比较特殊,要求是分组函数group_by后出现字段 分组查询中筛选可以分为两类 1....,则显示null 左外连接,left左边是主表 右外连接,left右边是主表 左外右外交换顺序,可以达到相同效果 */ # 左外连接 SELECT b.name,boy.* FROM beauty.../NOT IN 等于/不等于列表中任意一个 ANY/SOME 子查询中某个作比较,例如15>ANY(40,10,25),因为15>10所以上式成立 ALL 子查询返回所有比较,例如15

2.8K10

如何写出更快 SQL (db2)

级别的海量数据,劣质SQL语句优质SQL语句之间速度差别可以达到上百倍,因此写 sql 不能简单能查出相应数据即可,而是要写出高质量 SQL 语句,提高 SQL 语句执行速度。...下面我就自己工作经验,分享一下如何写出更快 SQL 一、查看执行计划来选择更快 SQL 在写 SQL 初期,你可能不知道到底是使用 UNION ALL 好还是 FULL JOIN 好,是使用 EXISTS...首先要明白什么是执行计划 执行计划是数据库根据 SQL 语句相关表统计信息作出一个查询方案,这个方案是由查询优化器自动分析产生,比如一条 SQL 语句如果用来从一个 10 万条记录表中查 1...任何在 where 子句中使用 IS NULL 或 IS NULL 语句优化器是不使用索引。 联接列 对于有联接列,即使最后联接为一个静态,优化器是不会使用索引。...在下面的例子中, LOC _ ID REGION 上都建有索引: 高效: SELECT LOC _ ID , LOC _ DESC , REGION FROM LOCATION WHERE

2.1K20

MySQL基础

`department_id`=d.department_id; 添加筛选条件: 查询部门编号>100 部门名所在城市名 SELECT department_name,city FROM departments...标量子查询(单行子查询):结果集为一行一列 列子查询(多行子查询):结果集为多行一列 行子查询:结果集为多行多列 表子查询:结果集为多行多列 代码示例: 查询最低工资大于 50 号部门最低工资部门...1.区别: ​ ① 一个表至多有一个主键,但可以有多个唯一 ​ ② 主键不允许为空,唯一可以为空 2.相同点: ​ 都具有唯一性 ​ 都支持组合键,但不推荐 外键: ① 用于限制两个表关系,从表字段引用了主表某个字段...=,字段=,…; 两种方式 区别: ​ 1.方式一支持一次插入多行,语法如下: insert into 表名【(字段名,..)】 values(,..)...,比如 insert、update、delete 显式事务:具有明显开启结束。

2.5K30

SQL 进阶技巧(上)

2、注释,有单行注释多行注释,如下 -- 单行注释 -- 从SomeTable中查询col_1 SELECT col_1 FROM SomeTable; /* 多行注释 从 SomeTable...SQL 性能优化技巧 一、参数是子查询时,使用 EXISTS 代替 IN 如果 IN 参数是(1,2,3)这样列表时,没啥问题,但如果参数是子查询时,就需要注意了。比如,现在有如下两个表: ?...现在我们要查出同时存在于两个表员工,即田中和铃木,则以下用 IN EXISTS 返回结果是一样,但是用 EXISTS SQL 会更快: -- 慢 SELECT * FROM Class_A...ON A.id = B.id; 用到了 「id」列上索引,而且由于没有子查询,也不会生成临时表 二、避免排序 SQL 是声明式语言,即对用户来说,只关心它能做什么,不用关心它怎么做。...,能减轻排序负担 在 WHERE 子句中可以使用索引,而 HAVING 子句是针对聚合后生成视频进行筛选,但很多时候聚合后生成视图并没有保留原表索引结构 四、在 GROUP BY 子句 ORDER

1.1K20

技术分享 | mysql Federated 引擎最佳实战

Federated 引擎架构: 当客户端发出引用 FEDERATED 表 SQL 语句时,本地服务器(执行 SQL 语句地方)远程服务器(实际存储数据地方)之间信息流如下: 存储引擎将遍历 FEDERATED...表具有的每一列,并构造一个引用远程表适当 SQL 语句。...不支持语法: FEDERATED 执行批量插入处理,以便将多行批量发送到远程表,从而提高了性能。另外,如果远程表是事务性,则它可以使远程存储引擎在发生错误时正确执行语句回滚。...此功能具有以下限制: 1) 插入大小不能超过服务器之间最大数据包大小。如果插入超过此大小,它将被分成多个数据包,并可能发生回滚问题。 2) 不会进行批量插入处理 INSERT ......在 insert_id timestamp 选项都不会传播到数据提供者。 DROP TABLE 针对 FEDERATED 表发出任何语句仅删除本地表,而不删除远程表。

1.5K20

如何编写SQL查询

SQL 具有不同语言元素,在高级别上可以分为 查询和数据操作。SQL 查询使用 SELECT 语句,而用于数据操作 SQL 使用 INSERT、UPDATE、DELETE MERGE 语句。...GROUP BY: 将具有指定列中公共聚合(或分组)到一行中。GROUP BY 子句将具有公共聚合到一行中,因此行数将与唯一数量一样多。...SELECT FROM 在最简单形式中,SQL 查询由 SELECT FROM 子句组成: SQL> SELECT * 2* FROM regions; REGION_ID NAME...此查询从名为 regions 表中选择所有行所有列(如 SELECT 后面的 * 所示,它表示“所有列”)。...如果您对该查询运行相同 FETCH 子句,则字母 C 将从结果中省略,尽管它与字母 B 具有完全相同数量国家/地区: SQL> SELECT SUBSTR(name,1,1), COUNT(*)

9210
领券