一、表
1.1 查找
1.1.1 查询指定用户的所有表名
SELECT * FROM all_tables WHERE OWNER = '用户名'
1.1.2 查询当前用户的所有表名
SELECT * FROM user_tables
1.1.3 通过字段名查找表名
select table_name from user_tab_columns t where t.COLUMN_NAME = '字段名';
1.1.4 查询表名
select table_name,tablespace_name,temporary from user_tables [where table_name=表名]
1.2 添加
1.2.1 添加表名及字段
create table 表名(
字段名1 类型 [not/not null 自增长 注释 约束],
字段名2 类型 [not/not null 自增长 注释 约束],
......
);
1.3 修改
1.3.1 修改表名
alter table 旧表名 rename to 新表名;
1.4 删除
1.4.1 drop
drop table 表名
作用:直接删除表数据和结构,释放空间。速度最快,但是无法找回数据。
1.4.2 truncate
truncate table 表名
作用:删除表数据,不删除表的结构,速度排第二。
1.4.3 delete
delete table 表名
作用:删除表中的数据,不删除表结构,速度最慢,但可以与where连用,可以删除指定的行。但是过程是痛苦的(系统一行一行地删,效率较truncate低)
delete table 表名 where 条件
删除内容不删除定义,不释放空间。
二、 字段
2.1 查询
2.1.1 查询字段名
select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name=表名];
2.2 修改
2.2.1 修改列名
ALTER TABLE 表名 RENAME COLUMN 旧表名 TO 新表名;
2.2.2 修改列的类型
MySQL:
ALTER TABLE 表名 modify column 列名 类型;
Oracle:
一行:
alter table 表名 modify (列名 类型(长度));
多行:
alter table 表名 modify (列名1 类型(长度), 列名2 类型(长度));
2.3 添加
2.3.1 开头添加字段
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;
2.3.2 末尾添加字段
ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];
2.3.3 指定位置添加字段(某列之后)
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] AFTER <已经存在的字段名>;
2.4 删除
2.4.1 删除1列
alter table 表名 drop column 列名称;
2.4.2 删除多列
alter table 表名 drop (列名1,列名2,......)
三、 字段的值
3.1 查询
SELECT 字段名1/表达式/函数, 字段名2,… FROM 表名 [WHERE 条件表达式]
3.2 插入
3.2.1 插入全部字段的值
INSERT into 表名 VALUES (值1,值2,…);
3.2.2 插入部分字段的值
INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…);
3.2.3 插入多个字段的值
insert into 表名 values (值1,值2,…),(值1,值2,…),(值1,值2,…)......;
3.3 修改
3.3.1 修改一条字段的值
UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…] [ WHERE 条件表达式 ]
3.4 删除
3.4.1 删除整行
delete from 表名 [where <删除条件>]
3.4.2 删除整个表
truncate table 表名
注:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表