DB2基础语法与简单使用

1、启动

[root@MyClone hadoop]# su db2inst1

[db2inst1@MyClone hadoop]$ db2start

2、创建数据库

[db2inst1@MyClone hadoop]$ db2 create database hiber;

3、 列出数据库

[db2inst1@MyClone hadoop]$ db2 list db directory

4、连接数据库

[db2inst1@MyClone hadoop]$ db2 connect to hiber;

5、列出表

[db2inst1@MyClone hadoop]$ db2 list tables;

6、创建表

[db2inst1@MyClone hadoop]$ db2 "create table tb_user(id integer primary key, user_name varchar(10) not null, user_age integer not null)"

 在db2上,primary key的字段一定要指明not null才行:所以上述语句报出错误 可以如下创建表

[db2inst1@MyClone hadoop]$ db2 "create table tb_user(id integer not null primary key, user_name varchar(10) not null, user_age integer not null)"

 7、执行代码块

[db2inst1@MyClone hadoop]$ db2 -td@

#db2 -td@表示命令以@结束

db2 =>  begin atomic
db2 (cont.) => declare v_id int;
db2 (cont.) => declare v_name varchar(10);
db2 (cont.) => declare v_age int;
db2 (cont.) => set v_id=1;
db2 (cont.) => while (v_id<=100) do
db2 (cont.) => insert into tb_user values(v_id, 'user_' || v_id, v_id);
db2 (cont.) => set v_id=v_id+1;
db2 (cont.) => end while;
db2 (cont.) => end @

8、取得前N条数据 

 

db2 => select * from tb_user fetch first 10 rows only@

9、清空表truncate

 

db2 => truncate table tb_user immediate@

10、存储过程

创建

db2 => create procedure pro_insert_user(in row_count integer)
db2 (cont.) => begin 
db2 (cont.) => declare v_id int;
db2 (cont.) =>  declare v_name varchar(10);
db2 (cont.) => declare v_age int;
db2 (cont.) => set v_id=1;
db2 (cont.) => while (v_id<=row_count) do
db2 (cont.) =>  insert into tb_user values(v_id, 'user_' || v_id, v_id);
db2 (cont.) => set v_id=v_id+1;
db2 (cont.) => end while;
db2 (cont.) => end @
DB20000I  The SQL command completed successfully.

调用

db2 => call pro_insert_user(10)@

  Return Status = 0

11、控制语句 if else

db2 => create procedure pro_insert_user(in row_count integer)
db2 (cont.) => begin
db2 (cont.) =>  declare v_id int;
db2 (cont.) =>  declare v_name varchar(10);
db2 (cont.) =>  declare v_age int;
db2 (cont.) =>  declare v_count int;
db2 (cont.) =>  declare v_cnt int;
db2 (cont.) =>  set v_count = 1;
db2 (cont.) =>  set v_cnt = 0;
db2 (cont.) =>  select count(id) into v_cnt from tb_user;
db2 (cont.) =>  if (v_cnt >= 1) then
db2 (cont.) =>    select max(id)+1 into v_id from tb_user;
db2 (cont.) =>  else
db2 (cont.) =>    set v_id = 1;
db2 (cont.) =>  end if;
db2 (cont.) =>  while (v_count<=row_count) do
db2 (cont.) =>      select cast(rand()*100 as int) into v_age from sysibm.sysdummy1;
db2 (cont.) =>      insert into tb_user values(v_id, 'user_' || v_id, v_age);
db2 (cont.) =>      set v_id=v_id+1;
db2 (cont.) =>      set v_count=v_count+1;
db2 (cont.) =>    end while;
db2 (cont.) => end @
DB20000I  The SQL command completed successfully.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值