表的创建与管理一(学习笔记)
常用数据类型
- char(n) n=1 to2000字节,保存定长的字符串
- varchar2(n) n=1 to 4000字节,变长的可以入数字,字母,ASCII码字符集,12C开始最大支持32767字节长度
- long用来存放长文件最大2G,一个表中只能有一列是LONG
- number(m,n)m= 1 to 38 ,n=-84 to 127,总长度为M,小数分为N,整数部分为M-N
- date 日期类型,用来存放日期数据不包含毫秒
- timestamp ,日期类型,用来存放日期数据包含毫秒
- CLOB 4G容量,存放大量文本
- BLOB 4G容量,存放图片,电影,音乐等
- BFILE能够将二进制文件储存在数据库外部的操作系统文件中
- 整数number(m)也可以用INT替代
- 小数number(m,n)也可以用FLOAT替代
创建表的语法:
CREATE TABLE 用户名.表名( 字段名称 字段类型 [DEFAULT 默认值] 字段名称 字段类型 [DEFAULT 默认值] …….. );
创建表的操作属于DDL(数据库定义语言)命名要求
- 必须以字母开头
- 长度为1-30个字符
- 表名称由字线(A-Z,a-z),数字(0-9),_,下划线,$美元,#组成,而名称要有意义
- 对同一个用户不能使用相同的表名称
不能是ORACLE中的关键字如CREATE ,SELECT,UPDATE
示例一
创建一个member表,由成员编号(mid),姓名(name),年龄(age),生日(birthday),简介(note)5个字段组成
CREATE TABLE member( mid NUMBER(5), name VARCHAR2(50) DEFAULT '无名氏', age NUMBER(3), birthday DATE DEFAULT SYSDATE, note CLOB ); --查看当前用户下的全部表 SELECT * FROM tab;
查看member表的结构是否正确
DESC MEMBER;
向表中添加若干条记录
INSERT INTO MEMBER(mid,Name,Age,Birthday,NOTE) VALUES(1,'test1',30,to_date('1984-9-23','YYYY-MM-DD'),'bdqn1'); INSERT INTO MEMBER(mid,Name,Age,Birthday,NOTE) VALUES(2,'test2',25,to_date('1990-3-22','YYYY-MM-DD'),' bdqn2'); INSERT INTO MEMBER(mid,Name,Age,Birthday,NOTE) VALUES(3,'test2',31,to_date('1983-6-21','YYYY-MM-DD'),' bdqn3');
查看是否添加成功 select * from member;
示例二
复制表
CREATE TABLE 表名称 AS 子查询
将emp表复制为myemp表 CREATE TABLE myemp AS SELECT * FROM emp; 查询myemp 表 select * from myemp;
示例三
要求按emp表的结构建立一张employee表,但是不需要emp表的内容,只复制表结构,最好的方法就是在查询中写一个永远不可能成功的条件where 1=2
CREATE TABLE employee AS SELECT * FROM emp WHERE 1=2; --查询employee表 SELECT * FROM employee;
通过DESC employee查询表结构 DESC employee;
示例四
表的重命名
--语法
RENAME 旧的表名称 TO 新的表名称
将member表修改为mldnuser RENAME MEMBER TO mldnuser; --查询当前用户下的全部表 SELECT * FROM tab
示例五
截断表也叫清空表
DELETE FROM 表名称需要时间长
TRUNCATE TABLE 表名称 效率高 oracle专有
--截断mldnuser表也就是清空,先是查询
--清空表 TRUNCATE TABLE mldnuser;
示例六
表的删除
--语法
DROP TABLE 表名称
--删除myemp表
DROP TABLE myemp;