我们对数据库的操作,大部分是对表的操作。表存放于表空间之中,一个表空间内有多个表,但是一个表只能存在于一个表空间内。
创建表
create table 表名(
列名 类型,
列名 类型
);
create table students(
stuno number(10), 学号
stuname varchar2(8), 姓名
sec char(2), 性别
age int, 年龄
departno varchar2(2), 系别编号
classno varchar2(4), 班级编号
regdate date 建档日期
);
注:oracle本没有int,为了增加兼容性,添加了int类型用于存整数。
类型详解
CHAR(length)
存储固定长度的字符串。参数length指定了长度,如果存储的字符串长度小于length用空格填充,默认长度是1,最长不超过2000字节。
VARCHAR2(length)
存储长度可变的字符串。length指定了该字符串的最大长度,默认长度为1,最长不超过4000字符。
NUMBER(p,s)
既可以存储浮点数,也可以存储整数,其存储方式为四舍五入。p表示一共有多少位有效数字(当s为负数的时候表示小数点左边最多有p-s位有效数字),s表示小数点右边有s位有效数字。如number(5,3)表示最多5位有效数字,其中小数点前面最多有2个有效数字,小数点后面最多有3个有效数字。number(5,-3)表示最多5位有效数字,其中小数点前面最多有5个有效数字,但小数点前面可以有8位(5-(-3)=8),小数点后面为0位。例:12345678最后存储为12346000。
DATE
存储日期和时间,存储纪元、4位年、月、日、时、分、秒。存储时间从公元前4712年1月1日至公元后4712年12月31日。
TIMESTAMP
不但存储日期的年月日,时分秒,以及秒后6位,同时包含时区。
CLOB
存储大的文本,比如存储非结构化的XML文档。
BLOB
存储二进制对象,如图形、视频、声音等。
注:varchar2把空串等同于null处理,而varchar仍按空串处理。在create中,每一个数据名 类型后面要跟一个",",但最后一个不需要添加,也不能添加。
查看用户所有表
select * from dba_tables where owner='用户名';
注:用户名须大写,如SCOTT,SYSTEM。
select * from dba_tables where owner='SCOTT';
查看表结构
desc 表名 或者 describe 表名
查询结果为表的结构分别输出表中列的下面数据
Name:名字,Type:类型,Nullable:可为空Y表示可以,Default:默认值,Comments:注释
desc students;
删除表
drop table 表名 [cascade constraints]
cascade constraints为可选项,当有其他表关联到要删除的表的主键列或唯一键列,那么就需要添加这个,否则会报错。
drop table students;
更改表
(1)增加列(增加一个新列)
alter table 表名 add 列名 属性;
alter table students add addres varchar2(10);
(2)删除列(删除一个列)
alter table 表名 drop [column] 列名
删除单列的时候需要添加column,删除多列不能添加column。
alter table students drop column addres;
alter table students drop (addres1,addres2);
(3)修改列字段(修改某个列的相关属性)
alter table 表名 modify 列名 属性
alter table students modify stuname varchar2(20);
(4)重命名表
alter table 旧表名 rename to 新表名
alter table students rename to student;
注:在个别语句执行之后需要commit一下才能完成上传同步。
DML语言,比如SELECT、INSERT、UPDATE、DELETE等修改表中数据的操作需要commit;
DDL语言,比如CREATE TABLE、DROP TABLE等改变表结构的操作就不需要写commit(因为其内部隐藏了commit);