最近公司培训DB2,现在把DB2的基础知识总结下

一:数据库基础

1.下载DB2

db2exc_974_WIN_x86.exe


2.安装检查
db2cmd:检查是否已经安装过db2?
db2start:如果安装了,是否能启动?

3.正式安装
安装路径:
D:\IBM\SQLLIB
用户名:db2admin
密码:123


4.安装后检查
4.1程序项
所有程序里面,查看是否有IBM DB2
右下角是否db2的启动图标

4.2服务组件
services.msc

4.3服务设置
右键服务,进行设置登录为本地用户
启动类型,全部更改为手动

4.4实例启动与停止
instance:
db2start
db2stop
远程连接管理服务:
一般开发时不需要启动。
db2admin start

db2admin stop


二:数据库db2使用
1.实例相关操作
db2ilist 查看所有实例
db2icrt erp 创建实例
db2 get instance 查看当前实例
db2idrop 删除实例
2.创建示例数据库:
db2fs批处理出现第一步,可点击创建示例数据库
db2sampl.exe
3.如何连接数据库
3.1命令行两种方式
db2cmd:每个命令之前必须要写db2
db2cmd->db2,每个命令执行之前无须写db2,退出时使用quit
3.2连接数据库
使用用户名与密码
db2 connect to sample user db2admin using 123
如果连接本地数据库可不写用户名与密码,默认以当前操作系统登录用户
db2 connect to sample
list tables:查看当前连接数据库有哪些表,
使用 ?查看命令集,及相关帮助
db2cc:db2控制中心,所有的操作都可以在此界面中操作
db2ca:配置助手,包括建立数据库,查看数据库,远程连接等
3.3断开数据库
db2 terminate
db2 connect reset

3.4创建新的数据库
create database MyDb:在默认安装路径的盘符中建立数据库文件
create database MyDb on d:在指定盘符中建立数据库文件
数据库文件在:D:\DB2\NODE0000

3.5查看当前所有数据库
db2 ? list,
db2 list db directory


三:模式的相关操作
1.查看模式
连接到相关数据库
db2 connect to mydb
db2 select schemaname,owner from syscat.schemata
2.创建模式schema
显示创建:db2 create schema db authorizations ownername:默认的拥有都为登录用户
隐式创建: db2 create table tblUser(strname varchar(100)):默认的拥有为sysibm
db2 create table tblAddress(strname varchar(100)):默认的拥有为sysibm
3.显示当前使用schema
db2 select current schema from sysibm.dual
4.设置默认模式名
set current schema db
set schema db


四:数据库语句操作
1.操作数据库基本步骤
db2start
db2 connect to 数据库
db2 terminate/db2 connect reset
2.查看命令帮助
db2 ? 查看所有的命令
db2 ? db2-command 关于指定命令的帮助
db2 ? OPTIONS 关于所有命令选项的帮助
db2 ? HELP - 关于阅读帮助屏幕的帮助
3.建立表
3.1建立tblGrade年级表
create table db.tblGrade
(
intId int not null generated by default
as identity primary key,
strName varchar(50) not null
)
3.2删除表
drop table

3.3每一行结束符号
db2 -td@

3.4创建表tblStudent学生表
create table db.tblStudent
(
intId int not null generated by
default as identity primary key,
strName varchar(50),
intAge int default 18,
strAddress varchar(100),
strSex char(1),
gradeId int
)
3.5创建表tblCourse课程表
create table db.tblCourse
(
intId int not null generated by
default as identity primary key,
strName varchar(50),
bookName varchar(50)
)
3.6创建表tblScore分数表
create table db.tblScore
(
intId int not null generated by
default as identity primary key,
studentId int not null,
courseId int not null,
num float default 0
)
4.插入数据
插入数据检验,是针对一行,不是某一列
grade:
insert into db.tblGrade values(1,'一年级')@
insert into db.tblGrade(strName) values('二年级')@
insert into db.tblGrade(strName) values('三年级')@
insert into db.tblGrade(strName) values('四年级')@
insert into db.tblGrade(strName) values('五年级')@

student:
insert into db.tblStudent(strName,intAge,strAddress,strSex,gradeid)
values('张三',18,'南京','T',1)@
insert into db.tblStudent(strName,intAge,strAddress,strSex,gradeid)
values('李四',28,'北京','T',1)@
insert into db.tblStudent(strName,intAge,strAddress,strSex,gradeid)
values('王王',38,'上海','F',1)@
insert into db.tblStudent(strName,intAge,strAddress,strSex,gradeid)
values('吴六',16,'南京','T',1)@
insert into db.tblStudent(strName,intAge,strAddress,strSex,gradeid)
values('冯七',19,'天津','F',1)@
course:
insert into db.tblCourse(strName,bookName) values('Java基础','java大学生教程')@
insert into db.tblCourse(strName,bookName) values('C#基础','C#权限指南')@
insert into db.tblCourse(strName,bookName) values('Servlet精通','Jsp Servlet权威')@
insert into db.tblCourse(strName,bookName) values('SVN操作指南','svn入门')@
score:
insert into db.tblScore(studentId,courseId,num) values(1,1,80)@
insert into db.tblScore(studentId,courseId,num) values(1,2,90)@
insert into db.tblScore(studentId,courseId,num) values(1,3,85)@
insert into db.tblScore(studentId,courseId,num) values(2,1,85)@
insert into db.tblScore(studentId,courseId,num) values(2,2,60)@
insert into db.tblScore(studentId,courseId,num) values(2,3,58)@
insert into db.tblScore(studentId,courseId,num) values(3,1,70)@
insert into db.tblScore(studentId,courseId,num) values(3,2,90)@
insert into db.tblScore(studentId,courseId,num) values(3,3,80)@
5.查看表结构
db2 describe table db.tblStudent
db2 describe table db.tblStudent show detail

6.修改主记录
select * from db.tblStudent

update db.tblStudent set strAddress='北京',intAge=29 where intId=1 按主键Id更新
update db.tblStudent set intAge=intAge+1 where intAge<20 按条件更新

7.删除记录
删除针对整行记录,不能删除某列
insert into db.tblGrade(strName) values('八年级')@

delete from db.tblGrade where intId=6 按主键Id删除

insert into db.tblGrade(strName) values('八年级')@
insert into db.tblGrade(strName) values('八年级')@
insert into db.tblGrade(strName) values('八年级')@
insert into db.tblGrade(strName) values('八年级')@

delete from db.tblgrade where strname='八年级'@ 按条件删除


8.查询记录
8.1:select * from db.tblgrade@ :查询表的所有记录,所有列
8.2:select strName from db.tblgrade @ 查询表部分列,所有记录
8.2:select strName from db.tblgrade where strName='一年级' @ 查询部分列,部分记录
8.3:select strName as 年级名称 from db.tblGrade@ 指定列的别名,使用as
8.4:where中的条件包括:
>,<,=,<>,in,not in ,between and ,and ,or
select * from db.tblgrade where intId>3
8.5:排序 order by desc: 降序,Asc:升序
select * from db.tblstudent order by intAge Asc@ 学生表按年龄升序
select * from db.tblstudent where intAge>20 order by intAge Asc@ 学生表按年龄升序
8.6: 聚合函数
sum,max,min,avg,count
select max(intAge) from db.tblstudent@
select min(intAge) from db.tblstudent@
select avg(intAge) from db.tblstudent@
select count(*) from db.tblstudent where strSex='F'@
select count(*) from db.tblstudent where strSex='T'@
8.7:子查询
select * from db.tblstudent where intAge=(select max(intAge) from db.tblstudent)@
8.8:union 把两个结果集结合到一起显示

select 'F' as strSex,count(*) as pers from db.tblstudent where strSex='F'
union
select 'T' as strSex,count(*) as pers from db.tblstudent where strSex='T'

8.9分组 group by
select strSex,count(*) as pers from db.tblstudent group by strSex@

8.10having

select strSex,count(*) as pers from db.tblstudent group by strSex having count(*)>2 @

8.11where ,group by ,having ,order by等几种关系

where:对记录进行过滤
group by 对过滤后的结果进行分组 having对分组后的数据进行限制或过滤
order by 是对过滤分组后的最终结果进行排序

where>group by having>>order by

select strSex,count(*) from db.tblstudent
where intAge>17 group by strSex
order by strSex

8.12多表查询
查询出学生的所在年级中文名称,
select db.tblstudent.*,db.tblgrade.strName from db.tblstudent,db.tblgrade
where db.tblstudent.gradeid=db.tblgrade.intid
表的别名:
select a.*,b.strName as 年级名称 from db.tblstudent as a,db.tblgrade as b
where a.gradeid=b.intid

内连接:
inner join :只有两表记录匹配都会出现在结果集中
select a.*,b.strName as 年级名称
from db.tblstudent as a
inner join db.tblgrade as b on a.gradeid=b.intid

外连接:可分为:

左连接:
left join on
select a.*,b.strName as 年级名称
from db.tblstudent as a
left join db.tblgrade as b on a.gradeid=b.intid

右连接:
right join on
select a.*,b.strName as 年级名称
from db.tblstudent as a
right outer join db.tblgrade as b on a.gradeid=b.intid

全连接:
select a.*,b.strName as 年级名称
from db.tblstudent as a
full outer join db.tblgrade as b on a.gradeid=b.intid

注意:左连接与右连接相互互换

五:数据库备份与恢复
单表:
导出:export
1.命令行方式导出
e:
mkdir tranTmp
cd tranTmp
执行如下语句:
db2 export to student.xls of del messages msg.txt select * from db.tblstudent
db2 export to student.ixf of ixf messages msg.txt select * from db.tblstudent

2.GUI方式导出
db2cc

导入:import

db2 import from studentGui.xls of del messages msg.txt insert into db.tblStudent

db2 import from student.ixf of ixf messages msg.txt REPLACE_CREATE into db.tblStudent2

整个库备份与恢复:
db2move:

export:
mkdir mydb
cd mydb

db2move mydb export -u db2admin -p 123

import:
create database mydbNew

db2move mydbNew import -u db2admin -p 123

授权:
连接上数据后:

db2 grant dbadm on database to user db2admin




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值