SQL还可以这么玩儿
对于数据库的增删改查,我们都再熟悉不过了,今天,将和您一起探讨几种不一样的SQL用法,原来,SQL还可以这么玩儿。
以下是数据库的原表,如图-1。

1、快速复制表结构
这时,如果我们需要复制一份一模一样的表结构,您会怎么操作呢?当然,您可以通过导出表结构,再执行SQL脚本,这样肯定是可以达到目的的,再或者,您也可以再建一份一模一样的表,这样也可以达到目的。但是,如果有十几个字段呢,几十个字段呢,甚至上百个字段呢?这时我相信绝大部分人都不会这么干了,下面我们来看另外一种用法。咱们不妨执行一下以下的SQL语句来看看结果:
select * into T_Class_BF from T_Class where 1<>1;
select * from T_Class_BF;
再或者,执行一下以下SQL语句。
select top 0 * into T_Class_B from T_Class;
select * from T_Class_B;
怎么样,当您再刷新数据库的时候,是不是发现多了两个跟T_Class结构一模一样的表T_Class_BF和表T_Class_B呢?通过这种方法,可以快速的复制表结构。到这里有人就会问了,有了表结构没有数据怎么办呢?莫非我还要一条一条的添加数据么,当然不是了!
2、复制表数据
最常规的方法,我们可以选中以有的表,然后导出数据脚本,这样的话可以将数据导出到一个SQL脚本,然后执行一下这个脚本,肯定是可以得到想要的结果的,但是,执行以下SQL语句,更能快速的实现将数据从一个表导入到另一个表,请看示例:
select * from T_Class_BF; insert into T_Class_BF(ClassName,Count,AddDate,IsDel)
select ClassName,COUNT,AddDate,IsDEl from T_Class;
select * from T_Class_BF;
以下是执行结果:如图-2。
3、快速插入演示数据
在我们操作数据库的时候,很多时候,新建了一个表,但是表里刚开始却没有数据,如何快速的往表里添加大量的演示数据呢?除了一遍一遍执行SQL之外没有别的办法了吗?办法肯定是有的,这里就把平时自己经常用的一种拿来和大家分享以下。说到底也是执行SQL语句,只是执行的语句不一样。请看:
通过上文创建的T_Class_B表此时还是空的,我们拿它来演示一下。我们先通过一行SQL语句插入一条数据:
insert into T_Class_B(ClassName,Count,AddDate,IsDel)
values ('我是测试班级',100,getDate(),1)
有了这一行语句,我们便可快速的复制出数据来啦。请先注意一下,目前表里是只有刚才插入的这一条数据的,我们把以下这条语句执行三遍,再看看表里的数据,如图-3所示,执行的语句:通过结果我们看到,现在表里的数据变成了8条!8条!
insert into T_Class_B(ClassName,Count,AddDate,IsDel)
select '我是测试班级',100,getDate(),1 from T_Class_B

执行了3次之后,居然有了8条数据。对数据敏感的同学可能立刻会想到了,2的3次方刚好是8,那么恭喜你,答对了。按照以上的方式插入数据,是按照2的N次方来增加的,如果再执行一次,查询结果将会变成16条数据,怎么样,这样用来做演示数据是不是很方便呢?
希望对您有所帮助,如有任何问题,愿意一起探讨。谢谢!
SQL还可以这么玩儿的更多相关文章
- netstat 竟然还能这么玩儿?
一次摸鱼的机会,看到群里小伙伴问了一嘴 netstat -tnpl 这个命令是干啥的,这个命令用过很多,但是我其实也没有认真研究过,但是这是一个问题,我不能放过它,而且 netstat 这个命令我日常 ...
- 蚂蚁金服开源机器学习工具SQLFlow,机器学习比SQL还简单
来自:开源最前线(ID:OpenSourceTop) 综合自:AI前线.https://github.com/sql-machine-learning/sqlflow 5月6日,蚂蚁金服副 CTO 胡 ...
- 你的 SQL 还在回表查询吗?快给它安排覆盖索引
什么是回表查询 小伙伴们可以先看这篇文章了解下什么是聚集索引和辅助索引:Are You OK?主键.聚集索引.辅助索引,简单回顾下,聚集索引的叶子节点包含完整的行数据,而非聚集索引的叶子节点存储的是每 ...
- 函数还能这样玩儿~实现类似add(1)(2)(3)的函数
人生的第一份前端工作找到了,感谢大神主子们给半路出家自学的我这么多的机会,很高兴正式踏上客观又乐趣满满的程序员之路,哇咔咔咔. 分享一个准备面试时遇到的一个有趣的问题: 要求实现类似add(1)( ...
- MySQL中特别实用的几种SQL语句送给大家
在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑.减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮. 目录 实用的SQL 1.插 ...
- SQL Server-聚焦LEFT JOIN...IS NULL AND NOT EXISTS性能分析(十七)
前言 本节我们来分析LEFT JOIN和NOT EXISTS,简短的内容,深入的理解,Always to review the basics. LEFT JOIN...IS NULL和NOT EXIS ...
- 读书笔记--SQL必知必会11--使用子查询
11.1 子查询 查询(query),任何SQL语句都是查询.但此术语一般指SELECT语句. SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询. 作为子查询的SELECT语句只能 ...
- Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明
Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明 1. 常见编程语言的分类 :命令式语言.函数式语言.逻辑语言1 1.1. 按照编程语言的代际划分,又2gl,3gl,4gl ...
- SQL SERVER中隐式转换的一些细节浅析
其实这是一篇没有技术含量的文章,精通SQL优化的请绕道.这个缘起于在优化一个SQL过程中,同事问了我一个问题,为什么SQL中存在隐式转换,但是执行计划没有变? 我思索了一下,觉得这个问题也有点意思,说 ...
随机推荐
- js 函数定义的2种方式
js 函数定义的2种方式 CreateTime--2018年3月29日18:36:14 Author:Marydon 方式一: /** * 函数式声明 */ function mode() { c ...
- 31、Arrays数组排序(续)——自定义排序
自定义的类要按照一定的方式进行排序,比如一个Person类要按照年龄进行从小到大排序,比如一个Student类要按照成绩进行由高到低排序. 这里我们采用两种方式,一种是使用Comparable接口:让 ...
- ajax表单提交较慢原因的解决办法
ajax提交表单时,发现过了好长时间才有反应.使用F12打开开发人员工具一看,发现提示“provisional headers are shown”. 百度了一下,才知道可能是ajax异步提交和for ...
- tsung 学习
tsung简介: Tsung是开源的基于Erlang语言开发的多协议分布式压力测试工具,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 ...
- HTTP标头信息
HTTP头信息头信息由“键:值”组成.它们描述客户端或者服务器的属性.被传输的资源以及应该实现连接. 四种不同类型的头标 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联 ...
- Django模版中的过滤器详细解析 Django filter大全
就象本章前面提到的一样,模板过滤器是在变量被显示前修改它的值的一个简单方法. 过滤器看起来是这样的: {{ name|lower }} 显示的内容是变量 {{ name }} 被过滤器 lower 处 ...
- AutoFac文档2(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 Registering ...
- mysql 开启慢查询 如何打开mysql的慢查询日志记录
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢,接下来将详细为您介绍 原文出自:http://www.jbxue ...
- SpringBoot接口服务处理Whitelabel Error Page
转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50915979 <SpringBoot接口服务处理Whitelabel Erro ...
- python核心编程——python对象
一.什么是python对象 在python中,构造的不论什么类型的值都是一个对象.比方一个整数类型的值,一个字符串.一个列表等,都能够看做是对象. 全部的对象分为三部分: (1)身份.每一个对象都有个 ...