DB2_SQL_常用知识点&实践

摘要:
并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用;TRUNCATETABLE比DELETE速度快,且使用的系统和事务日志资源少;DELETE语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATETABLE通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

一、删除表中的数据(delete或truncate)

1 truncate table T_USER immediate;

说明:Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用;

TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少;

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

范例

1 truncate table T_USER where USERNAME <> 'admin';

说明:"<>"符号是不等于的意思,即"!="

1 DELETE FROM T_USER WHERE ID = <condition>;

二、显示数据库中所有表

1 SELECT * from syscat.tables where tabschema = 'SCTS';

三、db2自动增长列

1 ---默认自增,允许手工修改
2 generated by default as identity3 ---不允许指定,只能由数据库自动分配并插入
4 generated always as identity

说明:第一种方式在插入数据时允许手工指定自增字段的值,只要不重复即可,并且数据库会自动设置下一个值;

第二种方式则不允许指定,只能由数据库自动分配并插入。

范例

1 ---定义id为int类型主键,并且不为空,自增长(从1开始,每次递增1)
2 id INTEGER NOT NULL generated by default as identity (START WITH 1, INCREMENT BY 1);

四、DB2 单引号(')转义

比如:未转义之前,看下面的sql几个value?3.5个?

1 INSERT INTO T_VCARD VALUES'11112','male','Let's Go!');

上面这句在DB里面执行肯定是错误的,实际上需要转义才是正确的:单引号转义符单引号(')

1 INSERT INTO T_VCARD VALUES'11112','male','Let''s Go!');

五、连接字符串

两种方式用运算法、利用函数

1 ---利用运算法
2 select ID || CREATE_TIME  FROMT_TOPIC_TEMPER;
3 ---利用拼接函数
4 select CONCAT(ID,CREATE_TIME)  FROM T_TOPIC_TEMPER;

说明:一般来说,当要连接多个字符串的时候,使用运算符要简单一点。

六、DB默认值default

1 "CREATE_TIME" TIMESTAMP DEFAULT CURRENT TIMESTAMP NOT NULL,
2 "MANUAL_ORDER"    INTEGER default '0',

七、主键

1 constraint "P_Identifier_1" primary key ("ID");

八、索引

1 CREATE UNIQUE INDEX T_USER_IDX ON T_USER (ID, TOPIC_ID)ALLOW REVERSE SCANS;

九、视图

1 CREATE VIEW
2 IM.T_TOPIC_CLASSIFY_MAPS_TEMPER_VIEW
3 (
4 TOPIC_ID,
5 CLASSIFY_ID,
6 MANUAL_ORDER,
7 SCORE
8     ) AS
9 SELECT
10     B.TOPIC_ID ASTOPIC_ID,
11     A.CLASSIFY_ID         ASCLASSIFY_ID,
12     A.MANUAL_ORDER         ASMANUAL_ORDER,
13     B.SCORE  ASSCORE
14 FROM
15 IM.T_TOPIC_CLASSIFY_MAPS A,
16 IM.T_TOPIC_TEMPER B,
17 IM.T_TOPIC C
18 WHERE
19     A.TOPIC_ID=B.TOPIC_ID
20 AND C.ID=B.TOPIC_ID
21 AND C.STATE =1;

十、修改字段属性、添加字段等

修改字段长度:

1 --==============================================================
2 --修改话题avatar的字段长度: Table: T_TOPIC
3 --==============================================================
4 alter table T_TOPIC ALTER COLUMN AVATAR SET DATA TYPE VARCHAR(256);

添加字段:

1 --==============================================================
2 --给T_TOPIC表增加TOPIC_PHOTO_NAME字段: Table: T_TOPIC
3 --==============================================================
4 ALTER TABLE T_TOPIC ADD COLUMN TOPIC_PHOTO_NAME VARCHAR (256);

十一、INSERT 语句

DB2的INSERT语句有三种格式:即一次插入一行一次插入多行从SELECT语句中插入

现在要求插入一行数据,我们这么写:

1 INSERT INTO USER(NAME,AGE) VALUES ('Jack','25');

现在要求插入三行数据(可以一行一行写,不再举例),推荐一次插入多行的写法:

1 INSERT INTO USER(NAME,AGE) VALUES 
2 ('Jack','25'),
3 ('Tom','26'),
4 ('Jucie','27');

那么一次插入多行的好处是什么呢?有两点好处:

1、性能更好

2、由于一条语句,所以它们是一个处理单元,要么都插入,要么都不插入

第三种,我们还可以从SELECT中插入,格式如下:

1 INSERT INTO USER(NAME,AGE)
2 SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME> WHERE ...

免责声明:文章转载自《DB2_SQL_常用知识点&amp;amp;实践》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DialogFragment异常Fragment already added的原因与解决办法wpf datagrid笔记 part 1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

kafka服务器搭建与测试

kafka服务器搭建   kafka自身集群信息的管理以及对producer和consumer的信息管理是通过zookeeper实现的,zookeepr是kafka不可分割的一部分,所以搭建zookeeper服务器是搭建kafka集群环境不可或缺的一部分。zookeeper集群的搭建在网上有很多相关资料,本文不在详细描述,也可参照我自己编写的zookeep...

css多栏自适应布局

css多栏自适应布局还是需要总结一下的,都是基本功。 一般使用position属性布局,或者用float属性布局,也可以使用display属性。 看资料说position适合首页布局,因为首页内容往往可以完全控制。float适合模板布局,模板中填充的内容无法控制。 一、左侧尺寸固定右侧自适应 1、浮动实现 在css浮动一文已介绍过。 .left{...

使用antd Table + mobx 处理数组 出现的一系列问题

在store中定义了一个数组: @observable list = [...] 若是在table组件中直接使用list: <Table className={styles.table} columns={this.columns} dataSource={list}  /> 这时就会提示以下错误...

Kafka — 高吞吐量的分布式发布订阅消息系统【转】

1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic、发送消息、消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件?6.producer是否直接将数据发送到broker的leader(主节点)?7.Kafa consumer是否可以消费指定分区消息?8.Kafka消息是采...

使用事务和SqlBulkCopy批量插入数据

SqlBulkCopy是.NET Framework 2.0新增的类,位于命名空间System.Data.SqlClient下,主要提供把其他数据源的数据有效批量的加载到SQL Server表中的功能。类似与 Microsoft SQL Server 包中名为 bcp 的命令行应用程序。但是使用 SqlBulkCopy 类可以编写托管代码解决方案,性能上优...

mybatis-- 分页插件(pageHelper)

pageHelper插件的优点和弊端 1.优点:快速,方便,简洁的查询结构,后端只需要提供一个select查询返回数据,插件自动给你的分页 java代码框架 @GetMapping("/ceshi")public BaseResponse ceshi(Model model, @RequestParam(required = false, defaultV...