基本表机构:
表:包含行与列
命名规则:
视图:序列:索引:字段
建表语法:
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
- SQL> show parameter nls_length_semantics;
- NAME TYPE VALUE
- ------------------ ----------- -----------------
- nls_length_semantics string B