oracle数据库建表篇CREATE TABLE

这篇博客详细介绍了在Oracle数据库中创建表(CREATE TABLE)的语法和常见数据类型,包括CHAR、VARCHAR2、NUMBER、DATE以及CLOB和BLOB。文章还探讨了约束的概念,如主键(PRIMARY KEY)、非空(NOT NULL)、唯一(UNIQUE)、检查(CHECK)以及外键(FOREIGN KEY)。最后,博主提到了如何通过DDL和DML操作对表进行插入、更新和删除,以及事务管理和隔离级别的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

__________________________________________________________
                         Table
__________________________________________________________

Creat Table//建表

1、数据类型
1>char
create table lhj_char(
  a char(10),
  b varchar(10),
  c varchar2(10)
);

char(10)//固定长度,不足10个用空格填补,如果字段经常
               更新建议使用char类型
varchar(10),//可变长的sql标准的类型
varchar2(10)//可变长的oracle自己的类型

insert into lhj_char values('aaa','aaa','aaa');
select length(a),length(b),length(c) from lhj_char;
===========================================================
2>num
create table lhj_num(
  a number,
  b number(3),
  c number(5,2)
);

b number(3),//相当于数据只会存放整型
c number(5,2)
5代表插入数的总的位数
2代表小数点后的小数位数1234.1不可以插入

insert into lhj_num(a) values(1234);
insert into lhj_num(a) values(123456789123);
insert into lhj_num(a) values(1.2);
以上三条记录都可以成功插入

insert into lhj_num(b) values(1234);
ERROR at line 1:
ORA-01438: value larger than specified precision
 allows for this column

insert into lhj_num(b) values(123);
insert into lhj_num(b) values(1.2);
只保留整数部分

insert into lhj_num(c) values(123);

create table lhj_num1(
  a number,
  b number(3),
  c number(5,2),
  d int
);
===========================================================
3>date
create table lhj_date(
  a date
);
insert into lhj_date values(sysdate);
insert into lhj_date values('25-DEC-87');
日-月-年的格式可以自动加入表中
insert into lhj_date values('DEC-25-87');
ERROR at line 1:
ORA-01858: a non-numeric character was found
 where a numeric was expected

SQL> select * from lhj_date;

A
---------
24-SEP-08
25-DEC-87
23-SEP-80
24-SEP-08
23-SEP-08


select * from lhj_date;
查询显示系统默认的日期格式

to_date

insert into lhj_date
values(to_date('SEP-23-80','MM-DD-YY'));
insert into lhj_date
values(to_date('SEP-23-2008','MM-DD-YY'));


insert into lhj_date
values(to_date('2008-9-24','YYYY-MM-dd'));


to_char
用指定的格式显示日期
select to_char(a,'yyyy-mm-dd') from lhj_date;

insert into lhj_date values(sysdate);
select to_char(sysdate,'DD-MM-YY HH:MI:SS am') from dual;

select to_char(a,'DD-MM-YY HH:MI:SS am') from lhj_date;

TO_CHAR(A,'DD-MM-YYH
--------------------
24-09-08 09:16:59 pm
25-12-87 12:00:00 am
23-09-80 12:00:00 am
24-09-08 12:00:00 am
23-09-08 12:00:00 am
25-09-08 08:07:58 am

select to_char(a,'yyyy-mm-dd hh24:mi:ss am') from lhj_date;

TO_CHAR(A,'YYYY-MM-DDH
----------------------
2008-09-24 21:16:59 pm
1987-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值