语法:
create table 表名称(
字段名 类型(长度) primary key,
字段名 类型(长度),
....
);
(1)CHAR : 固定长度的字符类型,最多存储2000个字节
(2)VARCHAR2 :可变长度的字符类型,最多存储4000个字节
(3)LONG : 大文本类型。最大可以存储2个G
例如:NUMBER(5) 最大可以存的数为99999
NUMBER(5,2) 最大可以存的数为999.99
(1)DATE:日期时间型,精确到秒
(2)TIMESTAMP:精确到秒的小数点后9位
(1)CLOB : 存储字符,最大可以存4个G
(2)BLOB:存储图像、声音、视频等二进制数据,最多可以存4个G
实例:创建业主表
/*创建业主表 表名:t_owners*/
CREATE TABLE t_owners
(
ID NUMBER PRIMARY KEY,-- 业主编号
NAME VARCHAR2(30),--业主名称
addressid number, --所有地址(地址ID)
hoursenumber VARCHAR2(30), --门牌号
watermeter number, --水表编号
adddate DATE, -- 登记日期
ownertypeid NUMBER --业主类型ID
);
1、增加字段语法:
ALTER TABEL 表名称 ADD(列名 1 类型[DEFAULT 默认值], 类名2 类型[DEFAULT 默认值]...)
为业主表增加两个字段,语句:
-- 追加字段
ALTER TABLE T_OWNERS ADD
(
REMARK VARCHAR2(20),
OUTDATE DATE
)
2、修改字段类型语法:
ALTER TABLE 表名 MODIFY(列名1 类型[DEFAULT 默认值,列名1 类型[DEFAULT 默认值]...])
修改两个字段的类型,语句:
-- 修改字段
ALTER TABLE T_OWNERS MODIFY
(
REMARK CHAR(20),
OUTDATE TIMESTAMP
)
3、修改字段名语法:
ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名
语句:
ALTER TABLE T_OWNERS RENAME COLUMN OUTDATE TO EXITDATE
4、删除字段名
-- 删除一个字段名
ALTER TABLE 表名称 DROP COLUMN 列名
-- 删除多个字段
ALTER TABLE 表名称 DROP (列名1,列名2...)
语句:
-- 删除字段
AlTER TABLE T_OWNERS DROP COLUMN REMARK
3、删除表
语法:
DROP TABLE 表名称
总结:对行的操作什么时候加colume,在对字段名直接操作加colume反之(对字段的长度操作不加)
语法:
insert into 表名[(列名1,类名2,...)] values(值1,值2,...)
实例:向业主表插入数据
-- 向业主表中插入数据
insert into T_OWNERS values(1,'小宝',1,'2-2',5678,sysdate,1);
-- 说明:sysdate是order 中用来获取当前日期时间的系统变量
在执行了以上insert语句后,使用ORACLE客户端连接数据库并查询T_OWNERS表时发现:
没有数据执行
SQL> select * from T_OWNERS;
no rows selected 没有数据行
原因:在PLSQL Developer 工具中,执行了INSERT 语句后,并没有提交事务。
注意:INSERT后一定要执行commit 提交事务
在PLSQLDeveloper 中点击齿轮的图标后,再点击下图的绿色图标(图标为commit)
我们再次录入一条数据,语句如下:
insert into T_OWNERS VALUES (2,'赵大侃',1,'2-3','9876',sysdate,1);
commit;
以上INSERT 语句的后面添加了commit命令,表示在执行完INSERT后又提交了事务。
语法:
UPDATE 表名 SET 列名1=值1,类名2= 值2,...WHERE 修改条件;
执行UPDATE后一定要再执行commit提交事务
需求:将ID为1的业主的登记日期更改为三天前的日期
update T_OWNERS set adddate = adddate-3 where id=1;
commit;
语法1:
DELETE FROM 表名 WHERE 删除条件;
执行DELETE 后一定要再执行commit提交事务
需要:删除业主ID为 2的业主信息
delect from T_OWNERS where id=2;
commit;
语法2:
TRUNCTE TABEL 表名名称
比较
truncat 与 delete 实现数据删除?
1)delete删除的数据可以rollback;truncate是不可回滚
2)delete删除可能产生碎片,并且不释放空间;truncate不会产生碎片,会释放空间