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中存在隐式转换,但是执行计划没有变? 我思索了一下,觉得这个问题也有点意思,说 ...
随机推荐
- Android APP安装后不在桌面显示图标的应用场景
一般情况下是由于特殊情况下,需要隐藏app的启动入口,即在launcher界面不需要显示该入口,会由其他app跳转至.怎么设置如下代码: <activity android:name=" ...
- 数据库如何创建视图create view
数据库如何创建视图 创建视图的理想步骤: 一般来说,视图创建可以分为五步走: 第一步:先考虑select语句的编写.我们知道,视图其实就是一个select语句的集合,所以,我们建立视图的第一步 ...
- Apache 整合 Acitve Directory 達成 one single signon
原文地址:http://blog.hsdn.net/1266.html 我的公司使用AD進行使用者驗證,因此在使用者操作的便利性考量前提下.如何讓使用者不需要重覆輸入帳號與密碼,而直接抓取使用者已經登 ...
- index.js
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Python 3.x 连接 pymysql 数据库
首先,需要安装库: 使用 pycharm IDE,如PyCharm,可以使用 project python 安装第三方模块. [File] >> [settings] >> [ ...
- TensorFlow 安装 Ubuntu14.04
1.Install pip (or pip3 for python3) if it is not already installed: # Ubuntu/Linux 64-bit $ sudo apt ...
- Python --标准库 存储对象 (pickle包,cPickle包)
在之前对Python对象的介绍中 (面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象.当Python运行时,对象 ...
- ecshop的数据库getRow、getAll、getOne区别
ECShop没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现.这样做的好处是实现非常轻量,大大减小了分发包的文件大小.另外,当网站需要做memcached缓存时,也可以 ...
- Qt 检验器 三种典型类的用法
Qt提供了三个内置验证器类: QDoubleValidator, QIntValidator, QRegExpValidator. QDoubleValidator类: 提供了对浮点数的范围检查. Q ...
- location 符号
元字符 描述 \ 将下一个字符标记符.或一个向后引用.或一个八进制转义符.例如,“\\n”匹配\n.“\n”匹配换行符.序列“\\”匹配“\”而“\(”则匹配“(”.即相当于多种编程语言中都有的“转义 ...