最近在导数据,包括使用kettle将sqlserver、mysql的数据导入oracle中(使用多表导入向导),添加主键、注释,为后续导入hbase打好基础。

--oracle
--找出最大的id
select max(id) from table_name
--导数据之前备份表
create table table_name_bak as select * from table_name
--对于已经建好的表可以这样备份(需要commit)
insert into table_name_bak select * from table_name
--计算表的行数(比count(*)快)但不能有null值
select count(1) from table_name
--清空表数据(导入出错需要重导时使用)
truncate table table_name
--为表添加注释
comment on table table_name is '要添加的表注释';
--为列添加注释
comment on column table_name.column_name is '要添加的列注释';
--重命名表(plsql中通过界面重命名好像会重建一张表)
alter table old_table_name rename to new_table_name 
--找出所有带CLOB字段的用户表(应尽量少的使用CLOB字段)
select distinct(t.TABLE_NAME) from all_tab_columns t 
    where t.TABLE_NAME in (select t2.TABLE_NAME from user_tables t2) 
    and t.DATA_TYPE = 'CLOB' order by t.TABLE_NAME;
--查询某一列有无重复的值,如果有则输出该列
select column_name, count(*) from table_name group by column_name having count(*)>1    


--sqlserver
--找出某一列最长的长度
SELECT max(len(column_name)) FROM table_name
--重命名某一列(遇到过因为sqlserver表列名过长而无法导入oracle的情况)
exec sp_rename 'table_name.old_column_name', 'new_column_name', 'column'
--因为使用kettle导表没有将注释导过去,所以手动拿到注释拼成sql语句进行导入
--获取所有表的注释
select tables.name, cast(ep.[value] as varchar(500)) from sys.tables tables 
left join sys.extended_properties ep on (tables.object_id = ep.major_id and ep.minor_id = 0) order by tables.name
--获取所有的表名、列名及相应的注释
select tables.name,columns.name,cast(ep.value as varchar(500)) from 
    sys.tables tables inner join sys.columns columns on columns.object_id = tables.object_id 
    left join sys.extended_properties ep on ep.major_id = columns.object_id and ep.minor_id = columns.column_id
--查看数据库中所有表的数据量,为确保显示一致按照名称排序
select a.name, b.rows from sysobjects as a inner join sysindexes as b on a.id = b.id where (a.type = 'u') and (b.indid in (0,1)) order by a.name

--mysql
--赋予某用户读表的权限
grant select on database_name.table_name to user_name;
--撤销某用户读表的权限
revoke select on database_name.table_name from user_name;
--修复某张表
repair table table_name
--检查某个库中的所有表并自动修复(cmd执行)
--mysqlcheck -c --databases db_name -uroot -p --auto-repair

更多相关文章

  1. 如何使用来自其他模型的信息来注释查询集,或者在Django Rest Fram
  2. PowerDesigner 生成SQL Server 2005 注释脚本
  3. 使用sqoop从mysql往hive中增量导数据shell脚本
  4. sqlserver各种注释语句的写法
  5. EJB 3.1 @LocalBean vs no注释
  6. VC6.0添加注释快捷键,类似Eclispe如此方便

随机推荐

  1. Android动态生成RadioButton
  2. Android 获取网络图片
  3. Android SharedPreferences本地缓存
  4. 如何开始使用Android应用程序模板
  5. iphone、android的mimetype
  6. Android 富文本编辑器 - ListItemSpan
  7. 【Android】AsyncTask 实现登陆
  8. Android编译相关
  9. Android working with Volley Library
  10. 通过设置android:imeOptions来改变软键盘