一、数据类型
1、字符型
(1)char(n)
、nchar(n)
——固定长度类型
假如n=10,实际存放了3个字符,如图所示,3个字符占了3个位置,剩余7个字符位便是空着的
二者区别:
char(n)
——n的max= 2000
nchar(n)
——n的max= 1000,按照Unicode格式进行存放数据
(2)varchar(n)
、nvarchar(n)
——可变长度类型
假如n=10,实际存放了3个字符,如图所示,3个字符占了3个位置
二者区别:
varchar(n)
——n的MAX = 4000
nvarchar(n)
——n的MAX = 2000,按照Unicode格式进行存放数据
2、数值型
(1)number(p,s)
p : 有效数字
s : 小数点后的位数
例如:number(5, 2):有效数字5位,保留2位小数,如123.45
(2)float(n)
——用于存储二进制数据
(3)date
DATE类型表示范围:
公元前4712年1月1日到公元9999年12月31日
date类型在数据库中的存储固定为7个字节,格式为:
世纪+100 年 月 天 小时+1 分+1 秒+1
(4)timestamp
它与date的区别是不仅可以保存日期和时间,还能保存小数秒,小数位数可以指定为0-9,默认为6位,所以最高精度可以到ns(纳秒),数据库内部用7或者11个字节存储,如果精度为0,则用7字节存储,与date类型功能相同,如果精度大于0则用11字节存储。
格式为:
在date
的基础上加上第8-11字节:纳秒,采用4个字节存储,内部运算类型为整形
注:TIMESTAMP日期类型如果与数值进行加减运算会自动转换为DATE型,也就是说小数秒会自动去除。
(5)blob
可以存放4GB的数据,以二进制形式存放
(6)clob
可以存放4GB的数据,以字符串形式存放
二、管理表
1、创建表
创建用户信息表(Sys_User)
create table Sys_User
(
UserID number(6,0),
UserName varchar2(20),
UserPwd varchar2(20),
Email varchar2(20),
Regdate date
);
desc Sys_User;
2、修改表
(1)添加字段
alter table Sys_User
add remarks varchar2(500);
desc Sys_User;
(2)更改字段数据类型
alter table Sys_User
modify remarks varchar2(400);
desc Sys_User;
(3)删除字段
alter table Sys_User
drop column remarks;
desc Sys_User;
(4)修改字段名
alter table Sys_User
rename column email to new_email;
desc Sys_User;
(5)修改表名
rename Sys_User to new_Sys_User;
desc Sys_User;
desc new_Sys_User;
3、删除表
(1)清空表中数据TRUNCATE TABLE table_name
比delete速度要快
truncate table new_Sys_User;
desc new_Sys_User;
(2)同时删除表结构和表中的数据DROP TABLE table_name
drop table new_Sys_User;`在这里插入代码片`
desc new_Sys_User;
三、操作表中的数据
1、添加数据
INSERT INTO table_name
(column1, column2, …)
VALUES(value1, value2,…)
(1)向表中所有字段添加值
做下面的操作时记得新建表
insert into Sys_User
values(1,'用户','123456','[email protected]',sysdate);
select * from sys_user;
(2)向表中指定字段添加值
insert into Sys_User(userid,username,userpwd)
values(2,'用户2','123456');
select * from sys_user;
2、设置表中数据的默认值
(1)新建表时设置字段的默认值
create table new_Sys_User
(
UserID number(6,0),
UserName varchar2(20),
UserPwd varchar2(20),
Email varchar2(20),
Regdate date default sysdate
);
insert into new_Sys_User(userid,username)
values(1,'用户');
select * from new_sys_user;
(2)为已创建的表设置字段的默认值
alter table Sys_User
modify email default '无';
insert into Sys_User(userid,username)
values(3,'用户3');
select * from sys_user;
3、复制表数据
(1)在创建表时复制(复制表结构和数据)
Create table userinfo
as
select * from sys_user;
desc new_sys_user;
select * from userinfo;
(2)在添加数据时复制
insert into sys_user
select userid, username, userpwd,email,regdate
from userinfo;
4、修改数据
UPDATE table_name
SET column1 = value1, ...
[WHERE conditions]
(1)无条件更新
update sys_user
set userpwd = '111111';
select userid,userpwd,username from sys_user;
(2)有条件更新
update sys_user
set userpwd = '121212'
where username = '用户2';
select userid,userpwd,username from sys_user;
5、删除数据
(1)无条件删除
delete from userinfo;
select * from userinfo;
(2)有条件删除
delete from sys_user
where username = '用户3';
select * from sys_user;