建表语法,表约束,表数据类型,修改表,追加删除约束,增删改笔记
————老子亲笔
数据类型
-- 数值类型:
number(l,s):表示数值类型,可以表示整数和小数,l表示长度,最大长度是38,s表示精度默认是0,
number(5,2):表示整体长度是5,有2位小数
其他:int,integer 整数 float、double 浮点数(带小数)
-- 字符串类型:
varchar2(l):变长字符串类型,l表示长度,最长4000字节-- 中文在数据库中的字符串字节为 每个汉字占三个字节
char(l):定长字符串类型,l表示长度,例 char(8) 存'abcd' 它长度是8
其他:varchar、nlschar、nlsvarchar2、string
-- 日期类型:
date:表示日期类型,可以存放世纪、纪元、年月日时分秒
timestamp:时间戳,可以存放世纪、纪元、年月日时分秒,秒后面的9位
CLOB/BLOB:
CLOB:存储大文本文件的数据类型,
BLOB:二进制文件存储类型,
LONG:存储长字符串,最大可以存2G的字符串(oracle不建议使用)
建表语法,写表内容语法,删除表,表备份,恢复
--查询当前用户下数据库中所有的表名
select table_name from user_tables;
--查询 emp表中的全部字段 也就是列名
select column_name from user_tab_columns where table_name='EMP';
-- 建表语法概念定义
create table 表名(
列名(字段名) 数据类型 约束 默认值,--约束、默认值都是可以省略的
列名 数据类型 约束 默认值,
列名 数据类型 约束 默认值,
...
表级约束 --可选
)tablespace 表空间名;
表名、列名、表空间名等都叫做标识符,它一般以字母开头,可以有_、数字、$等,长度不能超过30个英文字符;
tablespace 表空间名:是可省略的,默认表会保存到用户的默认表空间中,也可以加上,表示指定将表存入某个表空间;
-- 中文在数据库中的varchar2()字符串占用字节为 一个汉字=三个字节
注意上句话
-- 一.表内容的特殊写法 (单独为几个列添加内容)insert into...特殊
insert into 表明 (列名,列名....) values(值,value,..,value);
create table tt3(
id number(2),
age number(2) default(18),
name varchar2(50)
)
select * from tt2; -- insert into 特殊示例
insert into tt3(id,name) values(2,'aaa');-- 特殊写法(可以直接定义into后面的列)
-- 二.表内容的特殊写法 insert into ...select..子查询
语法
insert into 表明(列名,列名,...)select...
insert into ....后面不用非得跟valuse 也可以跟子查询select
而且子查询的表现对象 也就是select后面跟的 可以直接是表中的数据,并不一定非得是列名
insert into sc(sno,cno,score) --- insert into ...select..示例
select sno,'c002',(select avg(score) from sc where cno='c002')
from student where sno not in (
select sno from sc where cno='c002') -- 跟子查询示例
-- 二.半 表内容 时间的写法****冷门点****
insert into emp1 values(001,'df',to_date('1997-12-29','yyy-mm-dd