Oracle-select...into...from语句的使用

select…into…from语句的使用

// 代码示例
select * into "新表" from "旧表"

语句解释

创建一张临时表,将旧表中的指定数据复制到新表中
注意:临时将在TempDB数据库中创建,在关闭用于创建这个表的连接后,SQL Server会自动删除这个表,以释放存储空间。

扩展内容

mysql中没有select…into…from语句,但有另外两种相关功能的语句

// 将一张表的数据插入到另一张表中
INSERT INTO table2 SELECT * FROM table1;

create table…as…的语句可以实现创建一张新表,并复制原表所有数据的作用

// 将一张表的数据插入到另一张表中
-- create table "table2" as select * fron "table1"
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C -- - 赵 A 3.CONCAT 连接两个字符串; SQL> select concat('010-','88888888')||'转23' 高乾竞电话 from dual; 高乾竞电话 ---------------- 010-88888888转23 4.INITCAP 返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 SQL> select instr('oracle traning','ra',1,2) instring from dual; INSTRING --------- 9 6.LENGTH 返回字符串的长度; SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) ------ ------------ ---------------- ------------ --------- -------------------- 高乾竞 3 北京市海锭区 6 9999.99 7 7.LOWER 返回字符串,并将所有的字符小写 SQL> select lower('AaBbCcDd')AaBbCcDd from dual; AABBCCDD -------- aabbccdd 8.UPPER 返回字符串,并将所有的字符大写 SQL> select upper('AaBbCcDd') upper from dual; UPPER -------- AABBCCDD 9.RPAD和LPAD(粘贴字符) RPAD 在列的右边粘贴字符 LPAD 在列的左边粘贴字符 SQL> select lpad(rpad('gao',10,'*'),17,'*')from dual; LPAD(RPAD('GAO',1 ----------------- *******gao******* 不够字符则用*来填满 10.LTRIM和RTRIM LTRIM 删除左边出现的字符串 RTRIM 删除右边出现的字符串 SQL> select ltrim(rtrim(' gao qian jing ',' '),' ') from dual; LTRIM(RTRIM(' ------------- gao qian jing 11.SUBSTR(string,start,count) 取子字符串,从start开始,取count个 SQL> select substr('13088888888',3,8) from dual; SUBSTR(' -------- 08888888 12.REPLACE('string','s1','s2') string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SQL> select replace('he love you','he','i') from dual; REPLACE('H ---------- i love you 13.SOUNDEX 返回一个与给定的字符串读音相同的字符串 SQL> create table table1(xm varchar(8)); SQL> insert into table1 values('weather'); SQL> insert into table1 values('wether'); SQL>
实验一 PL/SQLPL/SQLPL/SQLPL/SQLPL/SQLPL/SQL开发环境的使用 [实验目的 ] 1.掌握建立本地 Net服务名( TNS)的方法; 2.熟悉和掌握使用 SQL Plus工具操作数据库; 3.熟悉 TOAD工具。 [实验内容 ] 1.使用 Oracle 的 TNS配置程序建立本地服务名; a.运行 Oracle的 TNS配置程序;(程序里面的 oracle目录下的 Net Configuration Assistant) b.输入远程数据库服务名——orcl; c.输入远程数据库 IP地址(192.168.128.8)和端口(1521); d. 使用自己的姓名作为帐户和学号作为密码测试; e.输入一个自己容易记住的名字命名 TNS,如 orcl之类的。 f.完成配置。 2.使用 SQL Plus 工具登陆远程数据库; a.运行 Oracle的 SQL Plus工具; b. 使用自己的姓名作为帐户和学号作为密码,主机字符串为刚才自己配置的 TNS登陆; c.记录程序信息; d.键入“create table taba(cola int,colb int);”,记录 SQL语句运行结果; e.键入“insert into taba values(1,1);”,记录 SQL语句运行结果; f.键入“commit;”,提交插入操作; g.退出应用程序。 3.在命令行下使用 SQL Plus登陆远程数据库; a.点击运行菜单(或者按 Win+R键); b.输入 cmd; c.在命令行窗口下输入 sqlplus 用户名/密码@TNS,如 sqlplus scott/tiger@orcl; d.记录程序信息; e.键入“select * from taba;”,记录 SQL语句运行结果; f.退出程序。 4.使用 TOAD工具登陆远程数据库。 a.运行 TOAD程序(双击桌面的青蛙图标); b.选择刚才设定的 TNS,使用自己的姓名作为帐户和学号作为密码登陆; c.打开 SQL Editer,键入“select * from taba;”,按 F9,记录 SQL运行结果; d.退出程序。 [实验报告 ] 1. 记录所有的操作和操作结果; 2. 比较三种不同方式使用数据库的不同。
实验五 触发器实验报告 [实验目的] 1. 理解Oracle触发器的种类和用途 2. 掌握行级触发器的编写 [预备知识] 1. PL/SQL程序设计 [实验原理] 1. 建立触发器 CREATE [OR REPLACE] TRIGGER <触发器名> BEFORE"AFTER INSERT"DELETE"UPDATE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) <PL/SQL 程序块> ON 子句中的名称识别与数据库触发器关联的数据库表 触发器事件指定了影响表的 SQL DML 语句 ( INSERT、 DELETE 或 UPDATE) AFTER 指定了触发器在处理完成后触发 BEFORE 指定了触发器在处理完成前触发 默认情况下,触发器每个表触发一次 FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器) 要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREATE 语句以自动删除和重建触发器 2. 行级触发器中引用表数据 在行级触发器中,使用伪记录来表示旧数据:old和新数据:new 引用示例::new.customer_name, :old.customer_name 3. 行级触发器中的谓词 在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:inserting, updating,deleting。 示例: IF Inserting THEN 语句 ; END IF; IF Updating THEN 语句 ; END IF; IF Deleting THEN 语句 ; END IF; 4. 触发器的限制 SELECT 语句必须是 SELECT INTO 语句或内部游标声明。 行级触发器不可以对触发表进行查询,包括其调用的子过程中。 不允许 DDL 声明和事务控制语句 。 如果由触发器调用存储子过程,则存储子程序不能包括事务控制语句 。 :old 和 :new 值的类型不能是 LONG 和 LONG RAW。 [实验内容] 1. 给Customer表增加一列Savings,类型为int,来存放每个顾客的存款总额。 ALTER TABLE customer ADD (saving varchar2(30)); select * from customer; 2. 更新Customer表,使得Savings字段的值正确。 3. 在Account表上增加一个行级触发器,当对account的balance进行update和insert一个 记录时同步修改Customer的Savings字段,保证数据的一致性。 4. 对account进行update操作,记录account表和customer表的变化。 5. 去掉顾客- 存款账号表中引用account表的外键约束(如果不去掉,后面的操作无法实现。当然最 佳的方法是修改其外键约束的更新策略,但考虑到复杂性,这里使用不标准的做法, 但建议大家实际运用中不要这么做)。在顾客- 存款账号表插入一条记录,表明顾客开设了一个新的账户。 6. 将一条刚才新开账户号的存款记录插入账号表,记录account表和customer表的变化。 [实验总结] 1. 实验中遇到的问题和解决的方法。 ----------------------- "触发事件 ":old ":new " "Insert "无定义,所有字段都是N"该语句完成后插入的值 " " "ULL " " "Update "更新前该行的旧值 "更新后该行的值 " "Delete "删除前该行的值 "无定义,所有字段都是N" " " "ULL "

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值