如何将sqlserver表中的数据导出sql语句或生成insert into 语句语句

sql server如何将一张表导出数据成insert语句.
[问题点数:100分,无满意结帖,结帖人auqfxapyud]
sql server如何将一张表导出数据成insert语句.
[问题点数:100分,无满意结帖,结帖人auqfxapyud]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2012年7月 荣获微软MVP称号
2010年2月 MS-SQL Server大版内专家分月排行榜第一2009年5月 MS-SQL Server大版内专家分月排行榜第一
2014年8月 其他数据库开发大版内专家分月排行榜第二2014年2月 其他数据库开发大版内专家分月排行榜第二2014年1月 其他数据库开发大版内专家分月排行榜第二2013年12月 其他数据库开发大版内专家分月排行榜第二2013年10月 其他数据库开发大版内专家分月排行榜第二2013年8月 其他数据库开发大版内专家分月排行榜第二2013年5月 其他数据库开发大版内专家分月排行榜第二2013年1月 其他数据库开发大版内专家分月排行榜第二2012年8月 其他数据库开发大版内专家分月排行榜第二2012年5月 其他数据库开发大版内专家分月排行榜第二2012年4月 其他数据库开发大版内专家分月排行榜第二2012年1月 其他数据库开发大版内专家分月排行榜第二
2014年11月 其他数据库开发大版内专家分月排行榜第三2014年7月 其他数据库开发大版内专家分月排行榜第三2014年6月 其他数据库开发大版内专家分月排行榜第三2014年5月 其他数据库开发大版内专家分月排行榜第三2013年7月 其他数据库开发大版内专家分月排行榜第三2013年3月 其他数据库开发大版内专家分月排行榜第三2012年7月 其他数据库开发大版内专家分月排行榜第三2012年6月 其他数据库开发大版内专家分月排行榜第三2011年12月 其他数据库开发大版内专家分月排行榜第三
2008年11月 MS-SQL Server大版内专家分月排行榜第三2008年10月 MS-SQL Server大版内专家分月排行榜第三2006年7月 MS-SQL Server大版内专家分月排行榜第三
2010年7月 荣获微软MVP称号
2008年11月 MS-SQL Server大版内专家分月排行榜第一2008年10月 MS-SQL Server大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。前段时间做一个东西,做的时候用的是SQLServer2005,做完后经理说服务器是SQLServer2000,真是郁闷!
不过不要紧,因为数据库有直接导出SQL语句的功能,把整个数据库导成SQL在SQLServer2000下执行就可以了。
也许你回问:“在2005下导出的SQL可以在2000下执行吗?”,问的好,这也正是我要说的重点。
答案是:SQL2005导出的格式有些与SQL2000不兼容,但SQLServer2005导出SQL的时候是可以选择导出到那个版本的。
在左边对象资源管理器中右键点击数据库,在弹出菜单中选择任务-〉生成脚本,出现脚本到处向导
然后选择下一步就可以了!
可是虽然说SQL脚本是导出去了,数据库和表也在2000上成功建立了,但是还有一个问题,就是我的基础数据怎么导出呢?
大家都知道,我们在做项目的时候,经常会有一些表中要存在一些基础数据,以保证项目的正常运行!
这里有一个技巧,就是用一条sql语句把表中的数据查出来,不过在查的时候要把insert语句拼进去,如下:
select 'insert Module(ModuleName,ParentID,Link,DisplayIndex,ImgUrl) values('''+ModuleName+''','+cast(ParentID as varchar(3))+','''+Link+''','+cast(DisplayIndex as varchar(3))+','''+ImgUrl+''')' from Module
这条语句就是把Module中的数据都转换成insert语句。
&最近在网上看到还有一个更好的通用的办法就是用一个存储过程来实现,只要给存储过程传入不同的表名就可以了:
if&exists&(select&*&from&dbo.sysobjects&where&id&=&object_id(N'[dbo].[spGenInsertSQLHan]')&and&OBJECTPROPERTY(id,&N'IsProcedure')&=&<span style="font-weight: color:#)&&&
drop&procedure&[dbo].[spGenInsertSQLHan]&&&
SET&QUOTED_IDENTIFIER&ON&&&&
SET&ANSI_NULLS&ON&&&&
CREATE&&&proc&spGenInsertSQLHan&(@tablename&varchar(<span style="font-weight: color:#6))&&&
declare&@sql&varchar(<span style="font-weight: color:#00)&&&
declare&@sqlValues&varchar(<span style="font-weight: color:#00)&&&
set&@sql&='&('&&
set&@sqlValues&=&'values&(''&#43;'&&
select&@sqlValues&=&@sqlValues&&#43;&cols&&#43;&'&&#43;&'',''&&#43;&'&,@sql&=&@sql&&#43;&'['&&#43;&name&&#43;&'],'&&&&
&&from&&&&
&&&&&&(select&case&&&&
&&&&&&&&&&&&&&&&when&xtype&in&(<span style="font-weight: color:#,<span style="font-weight: color:#,<span style="font-weight: color:#,<span style="font-weight: color:#,<span style="font-weight: color:#,<span style="font-weight: color:#,<span style="font-weight: color:#4,<span style="font-weight: color:#6,<span style="font-weight: color:#8,<span style="font-weight: color:#2,<span style="font-weight: color:#7)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&then&'case&when&'&#43;&name&&#43;'&is&null&then&''NULL''&else&'&&#43;&'cast('&#43;&name&&#43;&'&as&varchar)'&#43;'&end'&&
&&&&&&&&&&&&&&&&when&xtype&in&(<span style="font-weight: color:#,<span style="font-weight: color:#)&&&
&&&&&&&&&&&&&&&&&&&&&then&'case&when&'&#43;&name&&#43;'&is&null&then&''NULL''&else&'&#43;'''''''''&&#43;&'&&#43;&'cast('&#43;&name&&#43;'&as&varchar)'&#43;&'&#43;'''''''''&#43;'&end'&&
&&&&&&&&&&&&&&&when&xtype&in&(<span style="font-weight: color:#7)&&&
&&&&&&&&&&&&&&&&&&&&&then&'case&when&'&#43;&name&&#43;'&is&null&then&''NULL''&else&'&#43;'''''''''&&#43;&'&&#43;&'replace('&#43;&name&#43;','''''''','''''''''''')'&&#43;&'&#43;'''''''''&#43;'&end'&&
&&&&&&&&&&&&&&&&when&xtype&in&(<span style="font-weight: color:#1)&&&
&&&&&&&&&&&&&&&&&&&&&then&'case&when&'&#43;&name&&#43;'&is&null&then&''NULL''&else&'&#43;'''N''''''&&#43;&'&&#43;&'replace('&#43;&name&#43;','''''''','''''''''''')'&&#43;&'&#43;'''''''''&#43;'&end'&&
&&&&&&&&&&&&&&&&when&xtype&in&(<span style="font-weight: color:#5)&&&
&&&&&&&&&&&&&&&&&&&&&then&'case&when&'&#43;&name&&#43;'&is&null&then&''NULL''&else&'&#43;'''''''''&&#43;&'&&#43;&'cast(replace('&#43;&name&#43;','''''''','''''''''''')&as&Char('&&#43;&cast(length&as&varchar)&&&#43;&'))&#43;'''''''''&#43;'&end'&&
&&&&&&&&&&&&&&&&when&xtype&in&(<span style="font-weight: color:#9)&&&
&&&&&&&&&&&&&&&&&&&&&then&'case&when&'&#43;&name&&#43;'&is&null&then&''NULL''&else&'&#43;'''N''''''&&#43;&'&&#43;&'cast(replace('&#43;&name&#43;','''''''','''''''''''')&as&Char('&&#43;&cast(length&as&varchar)&&&#43;&'))&#43;'''''''''&#43;'&end'&&
&&&&&&&&&&&&&&&&else&'''NULL'''&&
&&&&&&&&&&&&&&end&as&Cols,name&&
&&&&&&&&&from&syscolumns&&&&&
&&&&&&&&where&id&=&object_id(@tablename)&&&&
&&&&&&)&T&&&&
set&@sql&='select&''INSERT&INTO&['&#43;&@tablename&&#43;&']'&&#43;&left(@sql,len(@sql)-<span style="font-weight: color:#)&#43;')&'&&#43;&left(@sqlValues,len(@sqlValues)-<span style="font-weight: color:#)&&#43;&')''&from&'&#43;@tablename&&&
--print&@sql&&&
exec&(@sql)&&&
SET&QUOTED_IDENTIFIER&OFF&&&&
SET&ANSI_NULLS&ON&&&&
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:84768次
积分:1333
积分:1333
排名:第17125名
原创:58篇
评论:11条
(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(3)(2)(2)(1)(2)(1)(1)(1)(6)(2)(6)(1)(5)(4)(9)如何自己编写程序从一个数据库表导出数据到另一个数据库表中(数据是追加到另一个表中)-MS-SQLServer/疑难问题-mssql-电脑编程网如何自己编写程序从一个数据库表导出数据到另一个数据库表中(数据是追加到另一个表中)-MS-SQLServer/疑难问题作者:allonhoo 和相关&&我建了两个,其中两个中各有一个完全相同的表,如何自己编写程序从一个数据库的表导出数据到另一个数据库表中(数据是追加到另一个表中)???------回答---------------其他回答(50分)---------如有库db1,db2,都有表t,现在将db1中的t中的数据导入到db2中
insert & into & db2..t(col1,col2...)
select & col1,col2... & from & db1..t
如果存在着自动编号id,则:
set & identity_insert & id & on
insert & into & db2..t(id,col2...)
select & id,col2... & from & db1..t
set & identity_insert & id & off
------其他回答(20分)---------insert & into & databasename1.dbo.tablename & select & * & from & tablename------其他回答(10分)---------老兄!我试了一下!你可以直接用DTS!因为DTS也是执行INSERT操作!
下面是DTS系统执行时的脚本:
insert & bulk & [net].[dbo].[TABLE1]( &id & & char(10) & COLLATE & Chinese_PRC_CI_AS, &name & & char(10) & COLLATE & Chinese_PRC_CI_AS, &age & & char(10) & COLLATE & Chinese_PRC_CI_AS)with(check_constraints)------其他回答(10分)---------insert & into & 目的数据库名.dbo.目的表 & select & * & from & 源数据库名.dbo.源表------其他回答(10分)-----------加上列名,这样即使原表中有自动编号也没关系!
insert & into & 库名1.所有着1.表名1(col1,col2...)
select & col1,col2... & from & 库名2.所有着2.表名2相关资料:|||||||如何自己编写程序从一个数据库表导出数据到另一个数据库表中(数据是追加到另一个表中)-MS-SQLServer/疑难问题来源网络,如有侵权请告知,即处理!编程Tags:                &                    当前位置:&>&&>&
Oracle数据库常用Sql语句大全
发布时间:编辑:
本文介绍了oracle数据库查询中常用sql语句,很全面的oracle语句大全,有需要的朋友参考下。
一,数据控制语句 (DML) 部分
1.INSERT& (往数据表里插入记录的语句)
INSERT INTO 表名(字段名1, 字段名2, &&) VALUES ( 值1, 值2, &&);
INSERT INTO 表名(字段名1, 字段名2, &&)& SELECT (字段名1, 字段名2, &&) FROM 另外的表名;
字符串类型的字段值必须用单引号括起来, 例如: &GOOD DAY&
如果字段值里包含单引号& 需要进行, 我们把它替换成两个单引号''.
字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.
日期字段的字段值可以用当前的系统时间SYSDATE, 精确到秒
或者用字符串转换成日期型函数TO_DATE(&&,&YYYY-MM-DD&)
TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC.
年-月-日 小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS
INSERT时最大可操作的小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,
方法借用ORACLE里自带的DBMS_LOB程序包.
INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1& START& WITH& 1
MAXVALUE& 99999& CYCLE& NOCACHE;
其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999
INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
2,DELETE& (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unu.
如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间
TRUNCATE TABLE 表名;
此操作不可回退.truncate table
3,UPDATE& (修改数据表里记录的语句)
UPDATE表名 SET 字段名1=值1, 字段名2=值2, && WHERE 条件;
如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验;
值N超过定义的长度会出错, 最好在插入前进行长度校验..
A,以上SQL语句对表都加上了行级锁,
确认完成后, 必须加上事物处理结束的命令 COMMIT 才能正式生效,否则改变不一定写入数据库里。
如果想撤回这些操作,可以用命令 ROLLBACK 复原。
B,在运行INSERT, DELETE 和 UPDATE 语句前最好估算一下可能操作的记录范围,应该把它限定在较小 (一万条记录) 范围内,否则ORACLE处理这个事物用到很大的回退段。
程序响应慢甚至失去响应. 如果记录数上十万以上这些操作,可以把这些SQL语句分段分次完成,其间加上COMMIT 确认事物处理。
二,数据定义 (DDL) 部分
1.CREATE (创建表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)
ORACLE常用的字段类型有
CHAR&&&&&&&&&&&&&&&&&&&&&&& 固定长度的字符串
VARCHAR2&&&&&&&&&&&&&&& 可变长度的字符串
NUMBER(M,N)&&&&&&&&&&&&&&& 数字型M是位数总长度, N是小数的长度
DATE&&&&&&&&&&&&&&&&&&&&&&&
创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面
创建表时可以用中文的字段名, 但最好还是用英文的字段名
创建表时可以给字段加上默认值, 例如 DEFAULT SYSDATE
这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间
创建表时可以给字段加上约束条件
例如 不允许重复 UNIQUE, 关键字 PRIMARY KEY
2,ALTER&&&&&&& (改变表, 索引, 视图等)
改变表的名称
ALTER TABLE 表名1& TO 表名2;
在表的后面增加一个字段
ALTER TABLE表名 ADD 字段名 字段名描述;
修改表里字段的定义描述
ALTER TABLE表名 MODIFY字段名 字段名描述;
给表里的字段加上约束条件
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名);
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名);
把表放在或取出数据库的内存区
ALTER TABLE 表名 CACHE;
ALTER TABLE 表名 NOCACHE;
3,DROP (删除表, 索引, 视图, 同义词, 过程, 函数, 数据库链接等)
删除表和它所有的约束条件
DROP TABLE 表名 CASCADE CONSTRAINTS;
4,TRUNCATE (清空表里的所有记录, 保留表的结构)
TRUNCATE 表名;
三,查询语句 (SELECT) 部分
SELECT字段名1, 字段名2, && FROM 表名1, [表名2, &&] WHERE 条件;
字段名可以带入函数
& 例如:& COUNT(*), MIN(字段名),& MAX(字段名),& AVG(字段名), DISTINCT(字段名),
&&&&&&&&&& TO_CHAR(DATE字段名,'YYYY-MM-DD HH24:MI:SS')
NVL(EXPR1, EXPR2)函数
IF EXPR1=NULL
&&&&&&&&&&&&&&& RETURN EXPR2
&&&&&&&&&&&&&&&&&&&&&& RETURN EXPR1
DECODE(AAoV1oR1oV2oR2....)函数
IF AA=V1 THEN RETURN R1
IF AA=V2 THEN RETURN R2
RETURN NULL
LPAD(char1,n,char2)函数
字符char1按制定的位数n显示,不足的位数用char2左边的空位
字段名之间可以进行算术运算
例如:& (字段名1*字段名1)/3
查询语句可以嵌套
例如: SELECT && FROM
(SELECT && FROM表名1, [表名2, &&] WHERE 条件) WHERE 条件2;
两个查询语句的结果可以做集合操作
例如: 并集UNION(去掉), 并集UNION ALL(不去掉重复记录), 差集MINUS,& 交集INTERSECT
SELECT字段名1, 字段名2, && FROM 表名1, [表名2, &&] GROUP BY字段名1
[HAVING 条件] ;
两个以上表之间的连接查询
SELECT字段名1, 字段名2, && FROM 表名1, [表名2, &&] WHERE
&&&&&&&&&&&&&&& 表名1.字段名 = 表名2. 字段名 [ AND &&] ;
SELECT字段名1, 字段名2, && FROM 表名1, [表名2, &&] WHERE
&&&&&&&&&&&&&&& 表名1.字段名 = 表名2. 字段名(+) [ AND &&] ;
有(+)号的字段位置自动补空值
查询结果集的排序操作, 默认的排序是升序ASC, 降序是DESC
SELECT字段名1, 字段名2, && FROM 表名1, [表名2, &&]
ORDER BY字段名1, 字段名2 DESC;
字符串模糊比较的方法
INSTR(字段名, &字符串&)&0
字段名 LIKE& &字符串%&& [&%字符串%&]
每个表都有一个隐含的字段ROWID, 它标记着记录的唯一性.
四,ORACLE里常用的数据对象 (SCHEMA)
1,索引 (INDEX)
CREATE INDEX 索引名ON 表名 ( 字段1, [字段2, &&] );
ALTER INDEX 索引名 REBUILD;
一个表的索引最好不要超过三个 (特殊的大表除外), 最好用单字段索引, 结合SQL语句的分析执行情况,
也可以建立多字段的组合索引和基于函数的索引
ORACLE8.1.7字符串可以索引的最大长度为1578 单字节
ORACLE8.0.6字符串可以索引的最大长度为758 单字节
2,视图 (VIEW)
CREATE VIEW 视图名AS SELECT &. FROM &..;
ALTER VIEW视图名 COMPILE;
视图仅是一个SQL查询语句, 它可以把表之间复杂的关系简洁化.
3,同义词 (SYNONMY)
CREATE SYNONYM同义词名FOR 表名;
CREATE SYNONYM同义词名FOR 表名@数据库链接名;
4,数据库链接 (DATABASE LINK)
CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING &数据库连接字符串&;
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义。
数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样
数据库全局名称可以用以下命令查出
SELECT * FROM GLOBAL_NAME;
查询远端数据库里的表
SELECT && FROM 表名@数据库链接名;
五,权限管理 (DCL) 语句
1,GRANT&&&&&&& 赋于权限
常用的系统权限集合有以下三个:
CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理)
常用的数据对象权限有以下五个:
ALL&&&&&&&& ON 数据对象名,&&&&&&&& SELECT ON 数据对象名,&&&&&&&& UPDATE ON 数据对象名,
DELETE&&&&&&&& ON 数据对象名,& INSERT ON 数据对象名,&& ALTER& ON 数据对象名
GRANT CONNECT, RESOURCE TO 用户名;
GRANT SELECT ON 表名 TO 用户名;
GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;
2,REVOKE 回收权限
REVOKE CONNECT, RESOURCE FROM 用户名;
REVOKE SELECT ON 表名 FROM 用户名;
REVOKE SELECT, INSERT, DELETE ON表名 FROM 用户名1, 用户名2;
查询数据库中第63号错误:
select orgaddr,destaddr from sm_histable0116 where error_code='63';
查询数据库中开户用户最大提交和最大下发数: select MSISDN,TCOS,OCOS from ms_usertable;
查询数据库中各种错误代码的总和:
select error_code,count(*) from sm_histable0513 group by error_code order
查询报表数据库中话单统计种类查询。
select sum(Successcount) from tbl_MiddleMt0411 where ServiceType2=111
select sum(successcount),servicetype from tbl_middlemt0411 group by servicetype
oracle常用SQL语句
1、连接SQL*Plus system/manager
2、显示当前连接用户SQL& show user
3、查看系统拥有哪些用户SQL& select * from all_
4、新建用户并授权SQL& create us(默认建在SYSTEM表空间下)SQL& grant connect,
5、连接到新用户SQL& conn a/a
6、查询当前用户下所有对象SQL& select *
7、建立第一个表SQL& create table a(a number);
8、查询表结构SQL& desc a
9、插入新记录SQL& insert into a values(1);
10、查询记录SQL& select *
11、更改记录SQL& update a set a=2;
12、删除记录SQL&
13、回滚SQL&SQL&
14、提交SQL&
----------------------------------------------------------------
用户授权:GRANT ALTER ANY INDEX TO &user_id &GRANT &dba & TO &user_id &;ALTER USER &user_id & DEFAULT ROLE ALL创建用户:CREATE USER &user_id & PROFILE &DEFAULT & IDENTIFIED BY & DEFAULT TABLESPACE &USERS & TEMPORARY TABLESPACE &TEMP & ACCOUNT UNLOCK;GRANT &CONNECT & TO &user_id &;用户密码设定:ALTER USER &CMSDB & IDENTIFIED BY &pass_word &表空间创建:CREATE TABLESPACE &table_space & LOGGING DATAFILE 'C:\ORACLE\ORADATA\dbs\table_space.ora' SIZE 5M
------------------------------------------------------------------------
1、查看当前所有对象
SQL & select *
2、建一个和a表结构一样的空表
SQL & create table b as select * from a where 1=2;
SQL & create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;
3、察看数据库的大小,和空间使用情况
SQL & col tablespace format a20SQL & select b.file_id  文件ID,  b.tablespace_name  表空间,  b.file_name     物理文件名,  b.bytes       总字节数,  (b.bytes-sum(nvl(a.bytes,0)))   已使用,  sum(nvl(a.bytes,0))        剩余,  sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比  from dba_free_space a,dba_data_files b  where a.file_id=b.file_id  group by b.tablespace_name,b.file_name,b.file_id,b.bytes  order by b.tablespace_name  /  dba_free_space --表空间剩余空间状况  dba_data_files --数据文件空间占用情况 4、查看现有回滚段及其状态
SQL & col segment format a30SQL & SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;
5、查看数据文件放置的路径
SQL & col file_name format a50SQL & select tablespace_name,file_id,bytes/,file_name from dba_data_files order by file_
6、显示当前连接用户
SQL & show user
7、把SQL*Plus当计算器
SQL & select 100*20
8、连接字符串
SQL & select 列1 | |列2 from 表1;SQL & select concat(列1,列2) from 表1;
SQL & select to_char(sysdate,'yyyy-mm-dd,hh24:mi:ss')
10、用户间复制数据
SQL & copy from user1 to user2 create table2 using select * from table1;
11、视图中不能使用order by,但可用group by代替来达到排序目的
SQL & create view a as select b1,b2 from b group by b1,b2;
12、通过授权的方式来创建用户
SQL & grant connect,resource to tes
SQL & conn test/test
13、查出当前用户所有表名。
-----------------------------------------------------------------------
/* 向一个表格添加字段 */alter table alist_table add address varchar2(100);
/* 修改字段 属性 字段为空 */alter table alist_table modify address varchar2(80);
/* 修改字段名字 */create table alist_table_copy as select ID,NAME,PHONE,EMAIL,QQ as QQ2, /*qq 改为qq2*/ADDRESS from alist_
drop table alist_rename alist_table_copy to alist_table/* 修改表名 */
空值处理有时要求列值不能为空create table dept (deptno number(2) not null, dname char(14), loc char(13));
在基表中增加一列alter table deptadd (headcnt number(3));
修改已有列属性alter table deptmodify dname char(20);注:只有当某列所有值都为空时,才能减小其列值宽度。只有当某列所有值都为空时,才能改变其列值类型。只有当某列所有值都为不空时,才能定义该列为not null。例:alter table dept modify (loc char(12));alter table dept modify loc char(12);alter table dept modify (dname char(13),loc char(12));
查找未断连接select process,osuser,username,machine,logon_time ,sql_textfrom v$session a,v$sqltext b where a.sql_address=b.
-----------------------------------------------------------------1.以USER_开始的数据字典视图包含当前用户所拥有的信息, 查询当前用户所拥有的表信息:select * from user_2.以ALL_开始的数据字典视图包含ORACLE用户所拥有的信息,查询用户拥有或有权访问的所有表信息:select * from all_
3.以DBA_开始的视图一般只有ORACLE数据库管理员可以访问:select * from dba_
4.查询ORACLE用户:conn sys/change_on_installselect * from dba_conn system/select * from all_
5.创建数据库用户:CREATE USER user_name IDENTIFIED BYGRANT CONNECT TO user_GRANT RESOURCE TO user_授权的格式: grant (权限) on t删除用户(或表):drop user(table) username(tablename) (cascade);6.向建好的用户导入数据表IMP SYSTEM/MANAGER FROMUSER = FUSER_NAME TOUSER = USER_NAME FILE = C:\EXPDAT.DMP COMMIT = Y7.索引create index [index_name] on [table_name]( &column_name &)intersect运算
返回查询结果中相同的部分
exp:各个部门中有哪些相同的工种
fromaccount
fromresearch
返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。
有哪些工种在财会部中有,而在销售部中没有?
exp:selectjobfromaccount
1. oracle安装完成后的初始口令?
 internal/oracle
  sys/change_on_install
  system/manager
  scott/tiger
  sysman/oem_temp
2. oracle9ias web cache的初始默认用户和密码?
administrator/administrator
3. oracle 8.0.5怎么创建数据库?
用orainst。假如有motif界面,可以用orainst /m
4. oracle 8.1.7怎么创建数据库?
5. oracle 9i 怎么创建数据库?
6. oracle中的裸设备指的是什么?
裸设备就是绕过文件系统直接访问的储存空间
7. oracle如何区分 64-bit/32bit 版本???
$ sqlplus '/ as sysdba'
sql*plus: release 9.0.1.0.0 - production on mon jul 14 17:01:09 2003
(c) copyright 2001 oracle corporation. all rights reserved.
connected to:
oracle9i enterprise edition release 9.0.1.0.0 - production
with the partitioning option
jserver release 9.0.1.0.0 - production
sql& select * from v$
----------------------------------------------------------------
oracle9i enterprise edition release 9.0.1.0.0 - production
pl/sql release 9.0.1.0.0 - production
core 9.0.1.0.0 production
tns for solaris: version 9.0.1.0.0 - production
nlsrtl version 9.0.1.0.0 - production
8. svrmgr什么意思?
svrmgrl,server manager.
9i下没有,已经改为用sqlplus了
sqlplus /nolog
变为归档日志型的
9. 请问如何分辨某个用户是从哪台机器登陆oracle的?
select machine , terminal from v$
10. 用什么语句查询字段呢?
desc table_name 可以查询表的结构
select field_name,... from ... 可以查询字段的值
select * from all_tables where table_name like '%'
select * from all_tab_columns where table_name='??'
11. 怎样得到触发器、过程、函数的创建?
desc user_source
user_triggers
12. 怎样计算一个表占用的空间的大小?
select owner,table_name,
blocks*aaa/ &size m&,
empty_blocks,
last_analyzed
from dba_tables
where table_name='xxx';
here: aaa is the value of db_block_
xxx is the table name you want to check
13. 如何查看最大会话数?
select * from v$parameter where name like 'proc%';
sql& show parameter processes
name type value
------------------------------------ ------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 4
log_archive_max_processes integer 1
processes integer 200
这里为200个用户。
select * from v$
其中sessions_highwater纪录曾经到达的最大会话数
14. 如何查看系统被锁的事务时间?
select * from v$locked_
15. 如何以archivelog的方式运行oracle。
log_archive_start = true
restart database
16. 怎么获取有哪些用户在使用数据库
select username from v$
17. 数据表中的字段最大数是多少?
表或视图中的最大列数为 1000
18. 怎样查得数据库的sid ?
select name from v$
也可以直接查看 init.ora文件
19. 如何在oracle上通过sqlplus查看本机ip地址 ?
select sys_context('userenv','ip_address')
假如是登陆本机数据库,只能返回127.0.0.1,呵呵
20. unix 下怎么调整数据库的时间?
21. 在oracle table中如何抓取memo类型字段为空的数据记录?
select remark from oms_flowrec where trim(' ' from remark)
22. 如何用bbb表的数据去更新aaa表的数据(有关联的字段)
up aaa set bns_snm=(select bns_snm from bbb where aaa.dpt_no=bbb.dpt_no) where bbb.dpt_
23. p4安装方法
将symcjit.dll改为sysmcjit.old
24. 何查询server是不是ops?
select * from v$
假如parallel server=true则有ops能
25. 何查询每个用户的权限?
select * from dba_sys_
26. 如何将表移动表空间?
alter table table_name move tablespace_
27. 如何将索引移动表空间?
alter index index_name rebuild tablespace tablespace_
28. 在,unix下如何启动dba studio?
oemapp dbastudio
29. 查询锁的状况的对象有?
v$lock, v$locked_object, v$session, v$sqlarea, v$
查询锁的表的方法:
select s.sid session_id, s.username, decode(lmode, 0, 'none', 1, 'null', 2, 'row-s (ss)', 3, 'row-x (sx)', 4, 'share', 5, 's/row-x (ssx)', 6, 'exclusive', to_char(lmode)) mode_held, decode(request, 0, 'none', 1, 'null', 2, 'row-s (ss)', 3, 'row-x (sx)', 4, 'share', 5, 's/row-x (ssx)', 6, 'exclusive', to_char(request)) mode_requested, o.ccbzzp||'.'||o.object_name||' ('||o.object_type||')', s.type lock_type, l.id1 lock_id1, l.id2 lock_id2 from v$lock l, sys.dba_objects o, v$session s where l.sid = s.sid and l.id1 = o.object_
30. 如何解锁?
alter system kill session &sid,serir#&;
31. sqlplus下如何修改编辑器?
define _editor=&& -- 必须加上双引号
来定义新的编辑器,也可以把这个写在$oracle_home/sqlplus/admin/glogin.sql里面使它永久有效。
32. oracle产生随机函数是?
dbms_random.random
33. linux下查询磁盘竞争状况命令?
33. linux下查询cpu竞争状况命令?
34. 查询当前用户对象?
select * from user_
select * from dba_
35. 如何获取错误信息?
select * from user_
36. 如何获取链接状况?
select * from dba_db_
37. 查看数据库字符状况?
select * from nls_database_
select * from v$nls_
38. 查询表空间信息?
select * from dba_data_
39. oracle的interal用户要口令?
修改 sqlnet.ora
sqlnet.authentication_services=(nts)
40. 出现java.exe的解决办法?
一般是将oracleorahomexihttpserver改成手工启动可以的
41. 如何给表、列加注释?
sql&comment on table 表 is '表注释';
注释已创建。
sql&comment on column 表.列 is '列注释';
注释已创建。
sql& select * from user_tab_comments where
42. 如何查看各个表空间占用磁盘情况?
sql& col tablespace format a20
sql& select
b.file_id 文件id号,
b.tablespace_name 表空间名,
b.bytes 字节数,
(b.bytes-sum(nvl(a.bytes,0))) 已使用,
sum(nvl(a.bytes,0)) 剩余空间,
sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id
43. 如把oracle设置为mts或专用模式?
#dispatchers=&(protocol=tcp) (service=sidxdb)&
加上就是mts,注释就是专用模式,sid是指你的实例名。
44. 如何才能得知系统当前的scn号 ?
select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$
45. 请问如何在oracle中取毫秒?
9i之前不支持,9i开始有timestamp.
9i可以用select sy
大家在应用oracle的时候可能会碰到很多看起来不难的问题, 非凡对新手来说, 今天我简单把它总结一下, 发布给大家, 希望对大家有帮助! 和大家一起探讨, 共同进步!
对oracle高手来说是不用看的.
46. 如何在字符串里加回车?
select 'welcome to visit'||chr(10)||'www.csdn.net'
47. 中文是如何排序的?
oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置nls_sort值
schinese_radical_m 按照部首(第一顺序)、笔划(第二顺序)排序
schinese_stroke_m 按照笔划(第一顺序)、部首(第二顺序)排序
schinese_pinyin_m 按照拼音排序
48. oracle8i中对象名可以用中文吗?
49. 如何改变win中sql*plus启动选项?
sql*plus自身的选项设置我们可以在$oracle_home/sqlplus/admin/glogin.sql中设置。
50. 怎样修改oracel数据库的默认日期?
alter session set nls_date_format='yyyymmddhh24miss';
可以在init.ora中加上一行
nls_date_format='yyyymmddhh24miss'
51. 如何将小表放入keep池中?
alter table xxx storage(buffer_pool keep);
52. 如何检查是否安装了某个patch?
check that orainventory
53. 如何使select语句使查询结果自动生成序号?
select rownum,
54. 如何知道数据裤中某个表所在的tablespace?
select tablespace_name from user_tables where table_name='test';
select * from user_tables中有个字段tablespace_name,(oracle);
select * from dba_segments where &;
55. 怎么可以快速做一个和原表一样的备份表?
create table new_table as (select * from old_table);
55. 怎么在sqlplus下修改procedure?
select line,trim(text) t from user_source where name =&a&
56. 怎样解除procedure被意外锁定?
alter system kill session ,把那个session给杀掉,不过你要先查出她的session id
把该过程重新改个名字就可以了。
57. sql reference是个什么东西?
是一本sql的使用手册,包括语法、函数等等,oracle官方网站的文档中心有下载.
58. 如何查看数据库的状态?
ps -ef | grep ora
看服务是否起来
是否可以连上数据库
59. 请问如何修改一张表的主键?
alter table aaa
drop constraint aaa_
alter table aaa
add constraint aaa_key primary key(a1,b1) ;
60. 改变数据文件的大小?
用 alter database .... datafile .... ;
手工改变数据文件的大小,对于原来的 数据文件有没有损害。
61. 怎样查看oracle中有哪些程序在运行之中?
查看v$sessions表
62. 怎么可以看到数据库有多少个tablespace?
select * from dba_
63. 如何修改的用户连接数?
修改initsid.ora,将process加大,重启数据库.
64. 如何查出一条记录的最后更新时间?
可以用logminer 察看
65. 如何在pl/sql中读写文件?
utl_file包答应用户通过pl/sql读写操作系统文件。
66. 怎样把&&&放入一条记录中?
insert into a values (translate ('at{&}t','at{}','at'));
67. exp 如何加query参数?
exp user/pass file=a.dmp tables(bsempms)
query='&where emp_no=&'s09394&'&& r
68. 关于oracle8i支持简体和繁体的字符集问题?
zhs16gbk可以支
69. data guard是什么软件?
就是standby的换代产品
70. 如何创建spfile?
sql& connect / as sysdba
sql& select * from v$
sql& create spfile from pfile='e:&ora9i&admin&eygle&pfile&init.ora';
文件已创建。
sql& create spfile='e:&ora9i&database&spfileeygle.ora' from pfile='e:&ora9i&admin&eygle&pfile&init.ora';
文件已创建。
71. 内核参数的应用?
  含义:这个设置并不决定究竟oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。
  设置方法:0.5*物理内存
  例子:set shmsys:shminfo_shmmax=
  shmmin
  含义:共享内存的最小大小。
  设置方法:一般都设置成为1。
  例子:set shmsys:shminfo_shmmin=1:
  shmmni
  含义:系统中共享内存段的最大个数。
  例子:set shmsys:shminfo_shmmni=100
  shmseg
  含义:每个用户进程可以使用的最多的共享内存段的数目。
  例子:set shmsys:shminfo_shmseg=20:
  semmni
  含义:系统中semaphore identifierer的最大个数。
  设置方法:把这个变量的值设置为这个系统上的所有oracle的实例的init.ora中的最大的那个processes的那个值加10。
  例子:set semsys:seminfo_semmni=100
  semmns
  含义:系统中emaphores的最大个数。
  设置方法:这个值可以通过以下方式计算得到:各个oracle实例的initsid.ora里边的processes的值的总和(除去最大的processes参数)+最大的那个processes&2+10&oracle实例的个数。
  例子:set semsys:seminfo_semmns=200
  semmsl:
  含义:一个set中semaphore的最大个数。
  设置方法:设置成为10+所有oracle实例的initsid.ora中最大的processes的值。
  例子:set semsys:seminfo_semmsl=-200
72. 怎样查看哪些用户拥有sysdba、sysoper权限?
sql&conn sys/change_on_install
sql&select * from v_$pwfile_
73. 如何单独备份一个或多个表?
exp 用户/密码 tables=(表1,&,表2)
74. 如何单独备份一个或多个用户?
exp system/manager owner=(用户1,用户2,&,用户n) file=导出文件
75. 如何对clob字段进行全文检索?
select * from a where dbms_lob.instr(a.a,'k',1,1)&0;
76. 如何显示当前连接用户?
77. 如何查看数据文件放置的路径 ?
col file_name format a50
sql& select tablespace_name,file_id,bytes/,file_name from dba_data_files order by file_
78. 如何查看现有回滚段及其状态 ?
sql& col segment format a30
sql& select segment_name,ccbzzp,tablespace_name,segment_id,file_id,status from dba_rollback_segs
79. 如何改变一个字段初始定义的check范围?
sql& alter table xxx drop constraint constraint_
之后再创建新约束:
sql& alter table xxx add constraint constraint_name check();
80. oracle常用系统文件有哪些?
通过以下视图显示这些文件信息:v$database,v$datafile,v$logfile v$controlfile v$
81. 内连接inner join?
select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_
82. 如何外连接?
select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+);
select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_
83. 如何执行脚本sql文件?
sql&@$path/filename.
84. 如何快速清空一个大表?
sql&truncate table table_
85. 如何查有多少个数据库实例?
sql&select * from v$
86. 如何查询数据库有多少表?
sql&select * from all_
87. 如何测试执行所用的时间?
sql&select *
88. chr()的反函数是?
select char(65)
select ascii('a')
89. 字符串的连接
select concat(col1,col2)
select col1||col2
90. 怎么把select出来的结果导到一个文本文件中?
sql&spool c:&abcd.
sql&select *
91. 怎样估算sql执行的i/o数 ?
sql&select *
sql&select * from v$
可以查看io数
92. 如何在sqlplus下改变字段大小?
alter table table_name modify (field_name varchar2(100));
改大行,改小不行(除非都是空的)
93. 如何查询某天的数据?
select * from table_name where trunc(日期字段)=to_date('','yyyy-mm-dd');
94. sql 语句如何插入全年日期?
create table bsyear (d date);
insert into bsyear
select to_date('','yyyymmdd')+rownum-1
from all_objects
where rownum
95. 假如修改表名?
alter table old_table_name rename to new_table_
96. 如何取得命令的返回状态值?
97. 如何知道用户拥有的权限?
select * from dba_sys_
98. 从网上下载的oracle9i与市场上卖的标准版有什么区别?
从功能上说没有区别,只不过oracle公司有明文规定;从网站上下载的oracle产品不得用于 商业用途,否则侵权。
99. 怎样判定数据库是运行在归档模式下还是运行在非归档模式下?
进入dbastudio,历程--〉数据库---〉归档查看。
100. sql&startup pfile和ifile,spfiled有什么区别?
pfile就是oracle传统的初始化参数文件,文本格式的。
ifile类似于c语言里的,用于把另一个文件引入
spfile是9i里新增的并且是默认的参数文件,二进制格式
startup后应该只可接pfile
101. 如何搜索出前n条记录?
select * from employee where rownum
102. 如何知道机器上的oracle支持多少并发用户数?
103. db_block_size可以修改吗?
一般不可以o不建议这样做的。
104. 如何统计两个表的记录总数?
select (select count(id) from aa)+(select count(id) from bb) 总数
105. 怎样用sql语句实现查找一列中第n大值?
select * from
(select t.*,dense_rank() over (order by sal) rank from employee)
where rank =
106. 如何在给现有的日期加上2年?(
select add_months(sysdate,24)
107. used_ublk为负值表示什么意思?
it is &harmless&.
108. connect string是指什么?
应该是tnsnames.ora中的服务名后面的内容
109. 怎样扩大redo log的大小?
建立一个临时的redolog组,然后切换日志,删除以前的日志,建立新的日志。
110. tablespace 是否不能大于4g?
111. 返回大于等于n的最小整数值?
select ceil(n)
112. 返回小于等于n的最小整数值?
select floor(n)
113. 返回当前月的最后一天?
select last_day(sys)
114. 如何不同用户间数据导入?
imp system/manager file=aa.dmp fromuser=user_old touser=user_new rows=y indexes=
115. 如何找数据库表的主键字段的名称?
sql&select * from user_constraints where constraint_type='p' and table_name='table_name';
116. 两个结果集互加的函数?
sql&select * from bsempms_old intersect select * from bsempms_
sql&select * from bsempms_old union select * from bsempms_
sql&select * from bsempms_old union all select * from bsempms_
117. 两个结果集互减的函数?
sql&select * from bsempms_old minus select * from bsempms_
118. 如何配置sequence?
建sequence seq_custid
create sequence seq_custid start 1 incrememt by 1;
create table cust
{ cust_id smallint not null,
insert 时:
insert into table cust
values( seq_cust.nextval, ...)
日期的各部分的常用的的写法
119&.取时间点的年份的写法:
select to_char(sys,'yyyy')
120&.取时间点的月份的写法:
select to_char(sys,'mm')
121&.取时间点的日的写法:
select to_char(sys,'dd')
122&.取时间点的时的写法:
select to_char(sys,'hh24')
123&.取时间点的分的写法:
select to_char(sys,'mi')
124&.取时间点的秒的写法:
select to_char(sys,'ss')
125&.取时间点的日期的写法:
select trunc(sys)
126&.取时间点的时间的写法:
select to_char(sys,'hh24:mi:ss')
127&.日期,时间形态变为字符形态
select to_char(sys)
128&.将字符串转换成日期或时间形态:
select to_('')&
129&.返回参数的星期几的写法:
select to_char(sys,'d')
130&.返回参数一年中的第几天的写法:
select to_char(sys,'ddd')
与 Oracle数据库常用Sql语句大全 有关的文章
本文标题:
本页链接:
12345678910
12345678910}

我要回帖

更多关于 insert into 语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信