表名和列名的命名规则
- 必须以字母开头
- 长度不能超过30字符
- 不能使用oracle的保留字
- 只能使用以下字符A-Z,a-z,0-9,$,#等
数据类型
char | 定长,最长为2000字符 |
varchar2 | 变长,最长为4000字符 |
clob | 字符型大对象,最大4G |
number | 可以表示整数和小数 |
date | 年月日和时分秒 |
blob | 可以存放图片,声音 |
例如:char(8)‘小明’ 前四个字符存放小明,后四个字符空格补全
而varchar2(8)‘小明’ 就分配四个字符,节省了空间
number(3)表示一个3位整数,范围为-999到999
number(4,2)表示四个有效位,两位小数
创建表
创建student表
SQL> create table student(
2 sno number(8),
3 sname varchar2(20),
4 ssex char(2),
5 sbirth date
6 );
创建course表
SQL> create table course(
2 cno number(2),
3 cnamw varchar2(10)
4 );
修改表
添加一个字段
为student表添加一个字段sdept
SQL> alter table student add(sdept varchar2(20));
修改字段的长度
修改student表的sname的长度
SQL> alter table student modify (sname varchar2(30));
修改字段的类型(不能有数据)
将sdept修改为char类型
SQL> alter table student modify(sdept char(20));
删除一个字段
将sdept字段删除
SQL> alter table student drop column sdept;
修改表名
更改表名为stu
SQL> rename student to stu;
删除表
drop table stu;
添加数据
向student表插入数据
insert into student values('20200001','小红','女','01-1月-00');
oracle默认日期格式为DD-MON-YY
不习惯的话,可以更改日期格式
SQL> alter session set nls_date_format='yyyy-mm-dd';
insert into student values('20200002','小明','男','2000-02-01');
插入部分字段
insert into student(sno,sname)values('20200101','张三');
插入空值
insert into student(sno,sname)values('20201111',null);
修改数据
update student set ssex='女'where sno='20200002';
删除数据
删除数据,表结构还在,可以恢复
delete from student;
恢复数据
在删除之前创建保存点
savepoint a;
删除数据之后
rollback to a;
回滚,便可以恢复数据
drop table student;
表数据和结构一起删除
truncate table student;
删除表中所有数据,表结构还在,但是它没有写日志,是无法恢复的。