Oracle之建表详细

基本表机构:表:包含行与列命名规则:视图:序列:索引:字段建表语法:CREATE TABLE [user.]table(column # 字段 datatype [DEFAULTSIZE expr] [..,...,]);多字段之间使用逗号分隔 创建一个用户在用户下建表[oracle@dbserver ~]$ sqlplus / as sysdba ...
摘要由CSDN通过智能技术生成

基本表机构:

表:包含行与列

命名规则:

视图:序列:索引:字段

建表语法:

CREATE TABLE [user.]table

(column # 字段 datatype [DEFAULTSIZE expr] [..,...,]);

多字段之间使用逗号分隔

 

创建一个用户在用户下建表

[oracle@dbserver ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 29 10:00:37 2019

 

Copyright (c) 1982, 2013, Oracle. All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 431038464 bytes

Fixed Size 1365124 bytes

Variable Size 192940924 bytes

Database Buffers 230686720 bytes

Redo Buffers 6045696 bytes

Database mounted.

Database opened.

 

创建用户

SQL> create user thx identified by thx;

 

User created.

 

给用户授权:

SQL> grant connect to thx;

 

Grant succeeded.

 

SQL> conn / as sysdba

Connected.

 

SQL> grant create table to thx;

 

Grant succeeded.

 

SQL> conn thx/thx

Connected.

 

查看当前用户的权限:

SQL> select * from session_privs;

 

PRIVILEGE

----------------------------------------

CREATE SESSION

CREATE TABLE

建表:

SQL> create table dept

2 (deptno number(2),

3 dname varchar2(14),

4 create_date date default sysdate);

 

Table created.

 

SQL> desc dept

Name Null? Type

----------------------------------------- -------- ----------------------------

DEPTNO NUMBER(2)

DNAME VARCHAR2(14)

CREATE_DATE DATE

 

再建表时 注意默认值不能为其他字段

SQL> create table prod(id number(10),

2 name varchar2(20),

3 numsal number,

4 numproice number(10,2),

5 numsum number defalut numsal*numprice);

numsum number defalut numsal*numprice)

*

ERROR at line 5:

ORA-00907: missing right parenthesis

 

正确的:

 

SQL> create table prod(id number(10),

2 name varchar2(20),

3 numsal number,

4 numproice number(10,2),

5 numsum number default 0);

 

Table created.

 

数据类型:

1: varchar2(#), 是可变长度字符型

2: char(#),固定长度字符

 

 

一 字符串类型

    字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种.

    所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。同时还能减少数据行迁移情况发生。

所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。

1.1:CHAR类型 CHAR(size [BYTE | CHAR])

CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般来说默认是存储字节,你可以查看数据库参数

NLS_LENGTH_SEMANTICS的值。

SQL Code

  1. SQL> show parameter nls_length_semantics;
  2.  
  3. NAME                   TYPE           VALUE
  4. ------------------   ----------- -----------------
  5.  
  6. nls_length_semantics   string          B
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值