MySQL
- 查询某字段值为NULL的数据:
is null
select id from 表名 where id is null;
Oracle
1、查看表结构
- 一
select * from dba_tab_columns where table_name = '表名大写';
- 二
select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_columns where table_name='表名大写';
注:dba_tab_columns 或者user_tab_columns
2、修改字段
- 表有数据:
ALTER table tableName MODIFY (字段名 字段类型(长度))
alter table 表名 modify(person VARCHAR2(30));
- 表中没有有数据:
ALTER TABLE TABLENAME MODIFY ID CHAR(16)
alter table 表名 modify person VARCHAR2(30)
3、删除数据库表中数据
TRUNCHAR TABLE tbale_name
(删除表中的所有数据,并不是删除表)
比delete要快很多,表被截断。
DROP TABLE table_name
(删除表的结构)
4、备份、清楚数据库表
-
CREATE TABLE DZHYUKKT_BACKUP AS SELECT * FROM DZHYUKKT
;
–查询备份是不是成功:
SELECT * FROM DZHYUKKT_BACKUP
;–可以查出数据,证明备份成功 -
还原数据库备份的表:
INSERT INTO DZHYUKKT SELECT * FROM DZHYUKKT_BACKUP;
(1)清空数据库表信息的两种方法:
-
delete from t
-
truncate table t
-
区别:
-
delete是dml操作;truncate是ddl操作,ddl隐式提交不能回滚
-
delete from t可以回滚,truncate table t 不可以回滚
-
truncate table t 执行效率更高,会回收表空间,delete from t执行效率慢,不会回收表空间
-
truncate table t高水线下降,delete from t高水线不降(这个不太明白…)自增ID,TRUNCATE后从1开始,DELETE后还是接着自增
- 调用delete删除表数据:
DELETE FROM DZHYUKKT;
COMMIT;
- 使用备份表:DZHYUKKT_BACKUP恢复DZHYUKKT;
INSERT INTO DZHYUKKT SELECT * FROM DZHYUKKT_BACKUP;
COMMIT;
ODPS
- 使用ODPS期间发现String类型应该分成三种:数值型(123456)、字符型(文字@#)、日期型(2020-07-15)
- 为什么这么分呢,是因为不同操作符对这三种类型的string的操作是不同的
- 比如数值型(123456)使用AVG,另外两种就不合适
Other
1、KEY
分为bai主键primary key,外键FOREIGN KEY,以及一般键(即索引)du
应该说是 key 属性:
-
如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列。
-
如果Key是PRI, 那么该列是主键的组成部分。
-
如果Key是UNI, 那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)。
-
如果Key是MUL, 那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。