Oracle 和Mysql的创建表的语法

  在本次的笔记中,主要是介绍创建表的过程,首先介绍了关于表的语法,包括,字段的类型,创建表的约束以及表的中文注释等,分为oracle与MySQL的区别,并且利用实例进行巩固训练。

1、Oracle创建表

create table 用户名.表名称(
    字段名称 字段类型 [default 默认值] 约束条件PK|UK|NK,
    字段名称 字段类型 [default 默认值],
    字段名称 字段类型 [default 默认值],
    字段名称 字段类型 [default 默认值]
    
     )

字段类型,可以有数字型或者是字符串型等

--oracle 常用的数据类型
1、char(n): n=1 to 2000(字节)  保存定长的字符串
2、varchar2(n): n=1 to 4000(字节) 可变长度的数据类型
3、number(m,n): m=1 to 38,n=-84 to 127 n表示小数的位数,m表示有效位数,m-n表示整数的位数
4、date  存放日期数据,不包含毫秒
5、timestemp 存放日期数据,包含毫秒
6、clob: 4G 用于存放海量的文字, 如一本书
7、blob:4G 用于保存二进制文件,例如图片,电影,音乐等;

 约束条件,在创建表时可以添加约束条件,或者是在创建表之后添加约束条件


-- 表约束字段------
1、非空约束 not null
2、唯一约束 unique
3、主键约束 primary key
4、检查约束 check
5、外键约束 foreign key (关联的字辈字段名) references 表名(关联的父辈字段名)
*一般在使用约束条件时,会利用constraint去定义一个约束的名称,这样在触犯约束时能够判断出具体的约束条件,进而将错误的数据进行修改
6、复合主键 constraint pk_mid_name primary key (mid,name)  尽量不使用复合主键
*外键约束可以是两张表,一个子表,一个父表,也可以是同一张表 
foreign key (外键) references 表名(主键)
** 在外键约束中,删除父表前需要将所有的子表数据进行删除,才能将父表的数据删除--级联操作on delete cascade:删除父表某个数据时,子表的数据也随之删除;--级联操作2 on delete null 当父表数据删除时,子表的数据不会删除

-- 查看约束 --user_constraints 数据字典表存储的约束条件信息
select constraint_name,constraint_type,table_name from user_constraints
-- 修改约束 
  --1、添加约束 alter table 表名 add constraint 约束名称 约束类型(约束字段)
*注意:非空约束不能使用添加约束的语法进行,需要使用修改约束进行添加
  --2、修改约束
       alter table 表名 modify (字段名 字段类型 约束条件)
  --3、禁用/启用约束
       禁用:alter table 表名 disable constraint 约束名称[cascade]
       启用:alter table 表名 enable constraint 约束名称
  --4、删除约束
       alter table 表名 drop constraint 约束名称[cascade]

创建表的过程中可以添加表的注释或者是字段的注释

--  添加表注释------
comment on table 表名称 is '表注释的内容';

-- 查看表注释的内容--user_tab_comments
select * from user_tab_columns where table_name = '表名'

-- 添加列注释-----user_col_comments
comment on column 列名称 is '列注释的内容';

-- 查看列注释的内容
select *from user_col_comments where table_name = '表名'

注意:

字符串长度和字节长度的区别

字节(byte): 计算机存储的基本单位,一般为8bite,

                  在ASCALL编码中,一个英文字符是一个字节,

                  在utf-8中,某些特殊的字符可能是2-4个字节;一个

字符串(string): 由字符序列组成的数据结构,用于表示文本信息,通常由字母,数字,符号或者其                        他字符组成

                      字符串的长度是指包含的字符数,在utf-8中,一个字符长度等于2个字节;

通常可以使用字节数与字符串数进行检索字段是否包含中文,一般,只有字母,数字组成的字段字节长度与字符串长度是一样的

oracle:
      length()----字符串长度
      lengthb()----字节长度
mysql:
      length()----字符串长度
      char_length()----字节长度

 2、MySQL创建表

create table 用户名.表名称(
    字段名称 字段类型 [default 默认值] 约束条件PK|UK|NK comment '列注释,
    字段名称 字段类型 [default 默认值],
    字段名称 字段类型 [default 默认值],
    字段名称 字段类型 [default 默认值]
    
     )comment '表注释'

mysql 的字段类型有些差别,字符串类型有char与varchar两种,数值类型为int;

在使用comment进行注释时,直接在列名或者是表名的后面加上comment ‘’即可。

3、oracle 创建的实例

  1. 创建一个报表,字段名称作为列名,中文名称作为comment包括中文表名,所有数值类保留2位小数;               

表名:tb_cst_unit存量单位客户身份信息表

字段名称

类型和字节长度

中文名称

Cst_no

字符型,50位

客户号

Acc_name

字符型,120位

客户名称

License

字符型,50位

依法设立或经营的执照号码

Rep_name

字符型,40位

法定代表人或负责人姓名

Id_no2

字符型,50位

法定代表人或负责人证件号码

Ope_name

字符型,40位

授权办理业务人员姓名

Id_no4

字符型,50位

授权办理业务人员证件号码

Reg_amt

数值型,18

注册资本金

本表建立索引字段,创建三个组合索引和一个独立索引

三个组合索引:rep_name+cst_no;

一个独立索引:cst_no。

CREATE TABLE tb_cst_unit (
cst_no VARCHAR2(50),
acc_name VARCHAR2(120),
license VARCHAR2(50),
rep_name VARCHAR2(40),
id_no2 VARCHAR2(50),
ope_name VARCHAR2(40),
id_no4 VARCHAR2(50),
reg_amt NUMBER(18,2)
);
--给出中文注释
COMMENT ON TABLE tb_cst_unit IS '存量单位客户身份信息表';
COMMENT ON COLUMN tb_cst_unit.cst_no IS '客户号';
COMMENT ON COLUMN tb_cst_unit.acc_name IS '客户名称';
COMMENT ON COLUMN tb_cst_unit.license IS '依法设立或经营的执照号码';
COMMENT ON COLUMN tb_cst_unit.rep_name IS '法定代表人或负责人姓名';
COMMENT ON COLUMN tb_cst_unit.id_no2 IS '法定代表人或负责人证件号码';
COMMENT ON COLUMN tb_cst_unit.ope_name IS '授权办理业务人员姓名';
COMMENT ON COLUMN tb_cst_unit.id_no4 IS '授权办理业务人员证件号码';
COMMENT ON COLUMN tb_cst_unit.reg_amt IS '注册资本金';
--创建唯一索引
CREATE UNIQUE INDEX tb_st_no ON tb_cst_unit(cst_no)
--创建组合的索引
CREATE INDEX tb_no_amt ON tb_cst_unit(cst_no,reg_amt)

4、mysql 创建的实例

同一个实例,在mysql中的代码为:

CREATE TABLE tb_cst_unit (
    cst_no VARCHAR(50) COMMENT '客户号',
    acc_name VARCHAR(120) COMMENT '客户名称',
    license VARCHAR(50) COMMENT '依法设立或经营的执照号码',
    rep_name VARCHAR(40) COMMENT '法定代表人或负责人姓名',
    id_no2 VARCHAR(50) COMMENT '法定代表人或负责人证件号码',
    ope_name VARCHAR(40) COMMENT '授权办理业务人员姓名',
    id_no4 VARCHAR(50) COMMENT '授权办理业务人员证件号码',
    reg_amt decimal(18, 2) COMMENT '注册资本金'
)COMMENT '存量单位客户身份信息表';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值