一、创建和查看数据库
1创建数据库
CREATE DATABASE [IF NOT EXISTS]#可选内容 db_name [create_specification]#如下定义:
[DEFAULT] CHARACTER SET charset_name#字符集 | [DEFAULT] COLLATE collation_name#校对规则
(1)创建一个名称为mydb1的数据库
create database mydb1;
(2) 创建一个使用gbk字符集的mydb3的数据库
create database mydb2 character set gbk;
(3)创建一个使用utf8字符集,并带校对规则的mydb3数据库
create database mydb3 character set utf8 collate utf8_bin;
2查看数据库
(1)显示数据库 语句:
show databases;
(2) 显示数据库创建语句:
show create database mydb3;
3修改数据库
ALTER DATABASE [IF NOT EXISTS] db_name [alter_specification [, alter_specification [,#规格如下
[DEFAULT] CHARECTER SET charset_name [DEFAULT] COLLATE collation_name
(1) 查看服务器中的数据库,并把其中某一个库的字符集修改为utf8
alter database mydb2 character set utf8;
4修改数据库
DROP DATABASE [IF EXISTS] db_name
(1)删除数据库mydb3
drop database mydb3;
5选择数据库
use 数据库;
select database();#查看数据库
二、数据库中表的 *** 作
1学习数据库的数据类型
2增加表
CREATE TABLE table_name(
field1 datatype
field2 datatype
field3 datatype
field4 datatype
) character set 字符集 collate 校对规则 #建议默认
field:指定列名 datatype:指定列类型
(1)创建一个员工表employee
create table employee (
id int,
name varchar(20),
gender char(1),
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
3查看表
查看表结构:desc tab_name;
查询当前数据库中的所有表:show tables;
查看表的建表语句:show create table;
4修改表
ALTER TABLE table_name ADD (column datatype [DEFAUL expr] [,column datatype]);
ALTER TABLE table_name MODIFY (column datatype [DEFAUL expr] [,column datatype]);
ALTER TABLE table_name DROP (column );
修改列的名称:ALTER TABLE table_name change [column]
old_col_name column_definition;
修改表的名称:rename table 表名 to 新表名;
修改表的字符集编码:alter table tab_name character set utf8;
(1)在上面员工表基本上增加一个image列
alter table employee add image blob;
(2)修改job列,使其长度为60
alter table employee modify job varchar(60);
(3)删除gender列
alter table employee drop gender;
(4)表名改为user
alter table employee to user;
(5)修改表的字符集为utf8
alter table user character set utf8;
(6)列名name修改为username
alter table user change name username varchar(20)
5删除表
drop table table_name;
三、表的约束
1PRIMARY KEY 主键约束:非空&唯一
create table employee (
id int primary key,
name varchar(20),
gender char(1),
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
2NOT NULL非空约束:不能为空
create table employee (
id int primary key,
name varchar(20),
gender char(1) not null,
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
3UNIQUE唯一约束:唯一
create table employee (
id int primary key,
name varchar(20) unique,
gender char(1) not null,
birthday date,
entry_data date,
job varchar(50),
salay double,
resume text
);
4DEFAULT默认约束:
create table employee (
id int primary key,
name varchar(20) unique,
gender char(1) not null,
birthday date,
entry_data date,
job varchar(50) DEFAULT ‘sxs‘,
salay double,
resume text
);
查看环境变量 db2set 如果发现db2set中db2codepage不是819,执行以下是代码片段:db2set db2codepage=819db2 create database test05 on /home/db2inst1db2 connect to test05 user db2inst1 using db2 创建对应pagesize大小的缓冲池和表空间以下是代码片段:db2 CREATE Bufferpool USER8 SIZE 1000 PAGESIZE 8Kdb2 CREATE Bufferpool USER16 SIZE 1000 PAGESIZE 16 Kdb2 CREATE Bufferpool USER32 SIZE 1000 PAGESIZE 32 Kdb2stop force ( 可以先用:db2stop 、db2 terminate进行停止)db2startdb2 connect to test05 user db2inst1 using db2db2 "CREATE REGULAR TABLESPACE TS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('FSMS_8K_1') BUFFERPOOL USER8"db2 "CREATE REGULAR TABLESPACE TS_USER16 PAGESIZE 16K MANAGED BY SYSTEM USING ('FSMS_16K_1') BUFFERPOOL USER16"db2 "CREATE REGULAR TABLESPACE TS_USER32 PAGESIZE 32K MANAGED BY SYSTEM USING 创建临时表空间(用于缓冲查询结果或者临时表)以下是代码片段:db2 CREATE Bufferpool TMPBUF8 SIZE 10000 PAGESIZE 8Kdb2 "CREATE TEMPORARY TABLESPACE TempTS_USER8 PAGESIZE 8K MANAGED BY 给相关用户付权限以下是代码片段:db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,LOAD ON DATABASE TO USER EASYMISdb2 GRANT USE OF TABLESPACE TS_USER8 TO easymisdb2 GRANT USE OF TABLESPACE TS_USER16 TO easymisdb2 GRANT USE OF TABLESPACE TS_USER32 TO easymis 开始创建表、创建(这种方式是直接创建表、视图的方式,如果采用db2move的方式,那么则不需要)以下是代码片段:db2 connect to test05 user easymis using easymisdb2 -f dbstructsql >crttablogdb2 -f viewsql >crtviwlog 恢复db2move备份的数据库(备份的过程参见后面的db2move的说明)以下是代码片段:db2move test05 import -l /home/db2inst1/wk/test04db2 -tvf viewsql >crtviewlog #如果脚本是db2look,命令结束符为分号,行结束无特殊符号
通过开始菜单找到“DB2命令窗口(Administrator)”,打开之后运行“db2sampl”,创建样本数据库,然后可以“db2 connect to sample”连接到sample数据库中,对各种表(可以通过db2 list tables查看到所有表)开始 *** 作。
DB2的用户需要通过 *** 作系统创建,如果只是练习使用,不需要新建用户,直接用管理员账号 *** 作即可。
方法/步骤
打开dbvisualizer,点击新建连接按钮(点击其中任意一个即可)。
dbvisualizer怎样连接DB2,Oracle等数据库
需要填写7项信息
(1)设置格式,默认选择Server Info即可
(2)Name:数据库连接名称(自己随便起)
(3)DataBase Type:数据库类型(MySql,DB2,Oracle等)
(4)Driver:驱动类型
(5)Userid:数据库用户名
(6)Password:密码
(7)Auto Commit:是否自动提交,自动commit
dbvisualizer怎样连接DB2,Oracle等数据库
驱动(Driver)选择DB2之后,自动出现三个新的内容:
(1)Database Server:数据库的地址,IP
(2)Database Port:数据库端口
(3)Database:数据名称
dbvisualizer怎样连接DB2,Oracle等数据库
最终填写的信息如下,然后点击connect按钮进行连接。
dbvisualizer怎样连接DB2,Oracle等数据库
如果连接成功,则下方出现如下信息,代表您的DB2连接已经新建完毕。
dbvisualizer怎样连接DB2,Oracle等数据库
如果出现如下信息,则代表连接错误。需要检查用户名,密码,服务器IP,端口,数据库名等信息填写的是否正确。
dbvisualizer怎样连接DB2,Oracle等数据库
可以点击Ping Server按钮,查看与服务器之间的网络是否畅通。
dbvisualizer怎样连接DB2,Oracle等数据库
如果服务器网路畅通,会提示如下信息
dbvisualizer怎样连接DB2,Oracle等数据库
登录到AIX上
cd 到DB2 安装路径\instance
su 到root
db2icrt 创建实例
su db2 user
db2 create db 创建DB
CREATE DATABASE语法树
Read syntax diagramSkip visual syntax diagram
>>-CREATE--+-DATABASE-+----------------------------------------->
'-DB-------'
>----database-name--+-----------------------------+------------><
+-AT DBPARTITIONNUM-----------+
'-| Create Database options |-'
Create Database options
-AUTOMATIC STORAGE--YES-
|--+------------------------+----------------------------------->
'-AUTOMATIC STORAGE--NO--'
>--+---------------------------------------------+-------------->
| -,--------- |
| V | |
'-ON----+-path--+-+--+----------------------+-'
'-drive-' '-DBPATH ON--+-path--+-'
'-drive-'
>--+-----------------------+------------------------------------>
'-ALIAS--database-alias-'
>--+----------------------------------------------+------------->
'-USING CODESET--codeset--TERRITORY--territory-'
>--+-----------------------------------------------+------------>
| -SYSTEM--------------------- |
'-COLLATE USING--+-COMPATIBILITY--------------+-'
+-IDENTITY-------------------+
+-IDENTITY_16BIT-------------+
+-UCA400_NO------------------+
+-UCA400_LSK-----------------+
+-UCA400_LTH-----------------+
+-language-aware-collation---+
+-locale-sensitive-collation-+
'-NLSCHAR--------------------'
参数详解
1 DATABASE database-name
给数据库指定名称,在本地和系统库中,都必须唯一的,不能包含空格。
2 AT DBPARTITIONNUM
指定数据库将要被创建在发出命令的分区。当创建一个新库,不要指定这个参数。可以用它重建一个因为损坏而删除的数
据库分区。当用这个参数创建库,数据库将处于restore pending状态。不切断应用可能导致不一致,用时谨慎。
3 AUTOMATIC STORAGE NO | YES
指定自动存储打开或关闭。默认是打开的。
4 ON path or drive
这个子句和AUTOMATIC STORAGE的值有关,它指定了DB表空间的容器位置。详细的目录结构如下
/Path or Drive ----------> 数据库目录
|
|------ InstanceName ----------> 实例名
|
|------ NODEnnnn ----------> 节点名
|
|------ DataBaseName ----------> 数据库名
|
|------Tnnnnnnn ----------> 表空间容器
对于AUTOMATIC STORAGE NO:只有一个path可以包含在ON后,它指定了DB的位置。如果没有指定这个参数,DB创建到默认路径中,该默认路径为dbm cfg的dftdbpath指定。
对于AUTOMATIC STORAGE YES:可以列出多个路径,有逗号分隔,这些路径作为存储路径和保存自动存储表空间的容器。对于多分区DB,相同的存储路径被用在所有分区中。
创建数据库后将创建三个缺省表空间:
T0000000子目录中包含带有系统目录表的目录表空间。
T0000001子目录中包含缺省临时表空间。
T0000002子目录中包含缺省用户数据表空间。
每个子目录或容器中都会创建一个名为 SQLTAGNAM 的文件。这个文件可以标记正在使用中的子目录,因此在以后创建其他表空间时,不会尝试使用这些子目录。
此外,名为 SQLDAT 的文件中还存储有关子目录或容器包含的每个表的信息。星号()将被唯一的一组数字取代,用来识别每个表。对于每个 SQLDAT 文件,可能有一个或多个下列文件,这取决于表类型、表的重组状态或者表是否存在索引、LOB 或 LONG 字段:
SQLBKM(如果它是一个 MDC 表,那么它包含块分配信息)
SQLLF(包含 LONG VARCHAR 或 LONG VARGRAPHIC 数据)
SQLLB(包含 BLOB、CLOB 或 DBCLOB 数据)
SQLXDA(包含 XML 数据)
SQLLBA(包含有关 SQLLB 文件的分配和可用空间信息)
SQLINX(包含索引表数据)
SQLIN1(包含索引表数据)
SQLDTR(包含用于重组 SQLDAT 文件的临时数据)
SQLLFR(包含用于重组 SQLLF 文件的临时数据)
SQLRLB(包含用于重组 SQLLB 文件的临时数据)
SQLRBA(包含用于重组 SQLLBA 文件的临时数据)
5、DBPATH ON指定了数据库基础文件(控制文件,日志文件等)的创建位置。如果没有指定,则数据库在ON后面第一
个路径指定。如果没有指定路径,则在默认位置创建,该默认路径为dbm cfg的dftdbpath指定。数据库路径里面创建了
分层目录结构
以上就是关于如何创建一个使用gbk字符集的mydb2数据库全部的内容,包括:如何创建一个使用gbk字符集的mydb2数据库、如何在aix环境下创建DB2数据库、如何安装db2数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)