- ?
数据库之SQL经典面试题-行列转换二-列转行
蔺班
展开
本帖子是行转列的一个逆向操作——列转行,看下面一个面试题
面试题2:柠檬班第30期学生要毕业了,他们的Linux、MySQL、Java成绩数据表 tb_lemon_grade_column中,表中字段student_name,Linux,MySQL,Java分别表示学生姓名、Linux成绩、MySQL成绩、Java成绩,数据图1所示。请写出一条SQL,将图1的数据变成图2的形式(列转行)
下图示:
1:使用上节课学的知识,获得以列的形式展示的成绩数据(行转列)
SELECT student_name,SUM(CASE COURSE when'Linux'THEN SCORE ELSE0END) as'Linux',SUM(CASE COURSE when'MySQL'THEN SCORE ELSE0END) as'MySQL',SUM(CASE COURSE when'Java'THEN SCORE ELSE0END) as'Java'FROM tb_lemon_grade
结果如下:
2:使用导出功能,将数据导入到Excel
点击下一步,选择保存位置,输入保存的文件名
点击下一步,点击开始,讲数据导入到本地
3:使用导入功能,将导出的Excel表导入到数据库
选择表,点击右键选择导入向导
选择Excel文件,点击下一步,选择刚才保存的Excel文件,输入要保存的表,进行导入
4:导入完成,就生成了一个表,查看下数据
5:上面是使用导入本地文件的方式新建了一个表,并且把文件的数据也导入进来了,
如果是数据本身已经存在数据库中,我们还有更简单的方法,使用的是创建表的CREATE TABLE语法,可以新建表,并且把结果集的数据也会初始化到新建表中,如下所示:
CREATE TABLE new_tables(SELECT student_name,MAX(IF(COURSE = 'Linux',SCORE,0)) 'Linux',MAX(IF(COURSE = 'MySQL',SCORE,0)) 'MySQL',MAX(IF(COURSE = 'Java',SCORE,0)) 'Java'FROM tb_lemon_grade
6:怎么列传行呢?使用UNION ALL,然后行转列
SELECT student_name,'linux' course,linux scoreFROM tb_lemon_student2
7:我们想排下序怎么办呢? 采用子查询的方式(注意子查询中的别名a,一定要写上别名)
SELECT student_name,'linux' course,linux scorefrom tb_lemon_student2
今天就分享到这里了。如果大家觉得还不错,就点个赞吧!!!!
- ?
在数据文件上轻松使用SQL | 有了金刚钻,不惧瓷器活
Ella
展开
SQL,在数据处理和分析领域基本上类似“普通话”的地位,几乎是一项必备的能力,但是要使用SQL,又离不开关系数据库系统,也就是RDBMS,这就好比普通话主要还是得在中国说才管用。当然,如果为了去英国美国,学个英语还算值,这就像学个Python、Hadoop,出去找工作也算是个技能。但是如果要在一般的文本数据,或者Excel表格上作分析,就像是去个基里巴斯之类的小国家,为了能够愉快的购物,难道还要卷起舌头,从背单词、学语法开始?这种时候,恐怕第一时间想到的,就是上某宝,淘个好用的翻译器吧。
集算器,在这个问题上,可以说是一款居家旅行的必备神器了!
事实上,用SQL处理结构规整的文本或者Excel表格数据,除了是一种偷懒的想法外,也是一个很自然的思路。一个文件或者表格由若干数据行构成,而每行数据要么由确定的分隔符(空格、逗号、制表符……巴拉巴拉)分隔项目,要么就是规定了每个项目的固定长度。这种表示方式,和关系数据库中的表(Table)几乎是如出一辙,连变长字段和定长字段也都似乎有模有样。不同之处,是文件上没有主键、数据类型、是否可空这些概念。另外,就是文件之间关系的说明也没有像数据库那样明确,往往只是作为业务规则或者经验,存在于用户的脑袋里或者一些给人看的文件里面。
集算器的思路,也是如此,通过自动解析结构化文本或者Excel文件,将文件映射为 “表”,并在此基础上,充分支持SQL的语法和功能。
好了,闲言少叙,进入正题。我们以两个有关联的文件作为样例,看看如何在不“安装数据库->建数据库表->导入数据”的情况下,轻轻松松地进行查询分析:
首先,看一下样例数据,一共是两个文件:员工信息(employee.txt)和州的基本信息(state.xlsx),注意!这里我们使用了两种文件,一个是格式化的TXT文本,另一个是Excel电子表格,也就是说,集算器可以同时连接不同类型的数据源,神不神奇?意不意外?
更神奇的是,集算器可以根据文件后缀,自动识别和读取四种文件类型!分别是:文本(txt)、Excel(xls、xlsx)和csv文件。
下面两张图分别是员工信息和州信息的样本数据,两个文件之间通过员工信息中的STATE项(第5列)和州信息中的STATEID项(第1列)进行关联。
员工信息数据样本:
州信息数据样本:
好了,马上开始干活。首先,最简单的单表查询,看看员工中薪酬大于10000(SALARY>10000)的女(GENDER=’F’)员工,输出结果按照员工编号(EID)排序,集算器代码如下:
没错,就这么简单,就这么熟悉!第1 步,连接数据库……呃,这里没有指定参数,所以直接连接的就是文件系统,第2步,使用query()函数执行SQL查询,而这里的SQL,除了把from后的表名,换成了文件名,别的和数据库查询一模一样!查询结果如下:
注意,windows环境下,集算器里的文件路径用斜杠“/”而不是反斜杠“\”,这和Java语言一致。
好吧,这也太像了,下面我们来个不太像的,查询不早于1980年01月01日出生的,薪酬大于10000的员工:
很简单,使用$()相当于connect()函数,后面直接写SQL即可。事实上,括号中可以写不同的数据源名称,从而同时连接多个数据源。
另外,这个例子使用了SQL中的字符串转日期的函数date()。
接下来,是SQL数据库有别于单个文件的关键,关联查询。对于薪酬大于10000的女员工,还想再看看她们都在哪个州:
嗯,用文件名代替表名确实有点长,所以我们用了SQL中别名的用法,结果如下:
除了使用别名代替文件的绝对路径,对于特别长的路径或者文件很多的情况,为了方便书写和清晰阅读,还可以在集算器-菜单-工具-选项中配置主目录,这样就可以在SQL中直接使用文件名或者相对路径了。这是不是更像指定了一个数据库,直接访问其中的表了?
配置方法如下图所示:
配置了主目录后的查询是这个样子,查询工资总额大于100000的部门对应的人数和工资总额:
查询结果如下:
下面,进入一些细节内容:
1)集算器支持逻辑运算and、or和not,例如:查询员工姓Smith或者Robinson,并且是Sales部门之外的男员工:
2)集算器中,支持用is null来判断是否为空,用is not null判断非空,例如:找出surname为空的员工:
同时支持用coalesce函数处理空值,例如:员工surname字段为空时在结果中显示为“UNKNOWN”:
查询结果为:
注意:集算器中的字段别名,不能和文件中的字段名重复。
3)集算器支持Case when,例如:性别字段为“F”的要显示为“female”,为“M”的要显示为“male”。
查询结果为:
4)集算器支持like关键字进行模糊查询,例如:在员工中,查询surname字段包含“son”的员工。
其中的“%”为通配符,表示一个或者多个字符。另外,“_”表示一个字符。如果要查询以“son”结尾,并且前面有三个字符的情况,可以写成surname like ‘___son’;“[WJ]”表示包含“W”和“J”的字符列表。surname like ‘[WJ]%’表示surname是以“W”或者“J”开头。surname like ‘[!WJ]%’表示surname不是以“W”或者“J”开头。
5)集算器支持通过In关键字在多个值中查询数据。例如:查询“Finance、Sales、R&D”三个部门的员工。
6)集算器支持通过with T as (x)的方式定义一个外部表。例如:employee.txt中的state字段和另一个数据源demo数据库的state表的stateid字段左连接,查出每个员工所在州的名字和人口:
在这个SQL中:
with t2 as (connect(\”demo\”).query(\”select * from states\”))定义了一个外部表t2,连接demo数据源(实际上是集算器自带的hsql演示数据库),用query函数执行SQL“select * from states”。(其中,\”是在字符串中使用双引号的转义写法)
后边的“select t1.eid … left join t2 on t1.STATE=t2.STATEID”则利用定义好的t2和employee.txt左连接,查出每个员工所在州的名字和人口。
这个查询是典型的数据库和文本文件的联合查询。实际上,with关键字可以定义各种数据源查出的数据,从而非常灵活的实现跨异构数据源的联合查询。
7)集算器支持通过 into to 将查询结果输出的文件中。例如:查询工资总额大于100000的部门对应的人数和工资总额,结果写入deptResult.xlsx。这里,新的文件就类似关系数据数据库里的一个新表。
说了这么多,可以看出,通过集算器,我们就能够基本实现在结构化的文本数据(txt、csv等)和Excel文件(xls、xlsx)上轻松、直接地使用SQL。
当然,集算器并不是完全“平移”复制了SQL的能力,对于SQL中的子查询,集算器目前并不能直接支持,而是会以更加灵活、方便、直观的分布式计算方式加以解决。同时,对于有些特殊的join计算,集算器和传统数据库相比会慢一点。
最后,我们再来看看通过集算器进行SQL计算,还能额外获得哪些福利:
1)根据输入参数动态计算:
在进行数据查询时,常常需要根据不同的条件进行计算,也就是我们说的动态执行。这时,我们可以定义“网格参数”,为可能发生变化的条件预留位置。例如:想要找出公司里较高薪水的年轻员工有哪些,但是年龄段和薪酬起始线还不确定,我们就可以在集算器IDE的菜单“程序/网格参数”中,定义两个参数:birthday和salary:
然后在查询语句中用占位符“?”写出SQL,并按顺序指定对应的网格参数名作为输入:
如果在定义网格参数的时候指定了具体的数值,并且没有勾选“每次运行前设置参数”那么运行脚步会直接指定的数值。如果勾选了“每次运行前设置参数”,那么每次运行脚本的时候,都会弹出“设置参数值”窗口。这样,我们就可以随时输入我们需要的参数值了,相应地,查询结果也会随之改变了:
2)在命令行中使用SQL查询文件
在windows或者linux系统中,我们还可以通过命令行中调用编写好的集算器脚本,直接对文件数据进行查询。如果结合操作系统的定时任务机制,就可以在指定时间完成批量数据计算了。
我们先看一个不返回结果集的例子。定期为财务部门提供工资总额大于100000的部门对应的人数和工资总额,结果写入deptResult.xlsx(然后可以通过邮件或其他方式发送给相关人员)。
首先,编写集算器脚本,并保存为deptResult.dfx。
然后,在命令行执行esprocx.exe命令,(在集算器安装目录的bin文件夹中),执行结果:
C:\Program Files\raqsoft\esProc\bin>esprocx.exe deptResult.dfxcreate deptResult.xlsx successfully!
其中,第二行是Output函数输出的提示信息,可以用于监控程序执行和调试。
我们再看一个返回结果集的例子,同样的查询需求,但是不要求输出到文件中,而是直接查看结果。这次我们把编写的集算器脚本换个名字存为deptQuery.dfx。
在命令行中的执行并查看结果:
更进一步,集算器也可以做到直接在命令行写完整的SQL语句,直接从文件中返回需要查询的结果。是不是和数据库命令行查询工具一样方便?
先定义一个参数sql,用来传入需要查询的SQL语句。
然后编写如下集算器脚本,保存为query.dfx,
执行命令时,在命令行中直接写SQL语句,结果如下:
结合前面说的根据参数动态计算的方法,也可以在使用命令行计算时实现一定的交互。还是以前面说过的查询公司里薪酬较高的年轻员工为例:
在集算器IDE菜单“程序/网格参数”中,定义两个参数:birthday和salary。
编写如下集算器脚本,保存为empQueryParam.dfx,
执行命令时,按照顺序为两个参数提供数值,结果如下:
至此,我们已经充分了解了利用集算器,就可以用SQL这把“金刚钻”来揽数据文件这些“瓷器活儿”了。其实,这个故事里,集算器才是真正的“金刚钻”!除了本文描述的将数据文件直接作为“表”来处理的方式,集算器真正有力的武器库远不止此。通过这款轻量级的数据分析工具,无论是数据库还是文件系统中的数据,都可以被轻松处理,快刀斩乱麻!
- ?
golang数据库操作——database/sql
光之子
展开
golang
golang database操作
package database/sql; //导入database/sql包
官方文档解释:sql包提供了保证SQL或类SQL数据库的泛型借口
使用sql包时必须注入(至少)一个数据库驱动。
数据库驱动地址:http://golang.org/s/sqldrivers 驱动列表如下:Mysql,Oracle,Postgress,Sqlite等等
安装这些驱动也非常的简单
方法一、 go get github/mattn/go-sqlite3(驱动地址,记住不能带.git),否则会报错(invalid version control suffix in github/ path),go get命令直接git clone + go install ,安装成功
方法二、先git clone 下来,然后执行go install(这种有点多此一举,直接用第一种好了)
安装成功后,接下来介绍sql包中常见的struct和方法
type DB,DB是一个数据库操作句柄,可以安全地被多个go程使用,实现的主要方法:Close,Exec,Query,QueryRow,Prepare,Begin等
type Row ,查询结果,QueryRow方法返回Row类型(至多1行记录),实现的主要方法:Scan等
type Rows,查询结果集,Query 方法返回Rows(多行记录),实现的主要方法:Scan,Next,Close,Err等等
type Stmt,查询准备状态(Statement),主要实现方法:Prepare,Query,Exec,QueryRow,Close等等
type Tx,数据库事务(transaction),Exec,Query,QueryRow,Prepare,Stmt,Commit,Rollback等等,没有begin
DB,Row,Rows,Stmt,Tx中的有很多同名的方法,使用起来和Java JDBC类似
下面介绍几个常用方法的用法
1. func Open(driverName, dataSourceName string) (*DB, error);//打开一个数据库连接,返回DB
db, err := sql.Open("mysql", "username:password@(ip:port)/dbname?charset=utf8")
2. func (db *DB) Prepare(query string) (*Stmt, error);//返回Stmt类型
3. func (s *Stmt) Exec(args ...interface{}) (Result, error);//返回result类型
stmt, err = db.Prepare("insert into student(name) values(?),(?),(?)");//
result, err = stmt.Exec("golang1", "golang2", "golang3"); //类似JDBC stmt用法
4. func (db *DB) Query(query string, args ...interface{}) (*Rows, error);//直接执行sql语句,返回Rows
5. func (db *DB) QueryRow(query string, args ...interface{}) *Row; //执行sql语句,返回 <= 1行记录
还有很多其他的方法,在这儿就不一一介绍了,另外,有一些方法在多个struct都有实现,比如Query,Exec,QueryRow在DB,Stmt,Tx中都有实现,具体每个struct中实现的方法有什么不同,可以参考官方源码。
接下来看几个例子:
1. 查询
db, err := sql.Open("mysql", "root:password@(localhost:3306)/go?charset=utf8"); //连接数据库
checkErr(err); //检查错误,自定义函数
checkErr(err)
rows, _ := DB.Query("select * from student"); //Query方法查询
for rows.Next() { //Next方法取出查询结果集
var id int
var name string
err := rows.Scan(&id, &name) //Scan方法将结果写入变量(可变参)
fmt.Println(id, name) //输出
}
2. insert
tx, err := db.Begin(); //开启事务
stmt, err = db.Prepare("insert into student(name) values(?),(?),(?)")
result, err = stmt.Exec("golang1", "golang2", "golang3")
id, _ = result.LastInsertId() //返回之后一次插入的id
rowsNum, _ = result.RowsAffected() //返回这次执行影响的行数
fmt.Println(id, rowsNum)
result, err = stmt.Exec("xxxx", "yyyy", "zzzz") //一次Prepare,可以调用多次Exec方法
tx.Commit() //提交事务
id, _ = result.LastInsertId()
rowsNum, _ = result.RowsAffected()
3. delete
stmt, err = db.Prepare("delete from student where name like ?") // 用法类似insert
result, _ = stmt.Exec("%rekca%")
4. update 类似前面insert,delete。(省略)
以上就是 database/sql 基础用法,更多请参考官方文档,以后有时间再分享orm用法。
- ?
同和君带你玩转数据库!详解SQL Server基础操作……(附个人黑历史+大数据分析)
堪东蒽
展开
前几天同和君被某粉丝吐槽不务正业,那今天咱们就来务一下正业,来简单讲讲有关SQL Server的基础操作(其实是为了交差)。
有关SQL(结构化查询语言)与其对应的各类数据库管理系统(SQL Server、Access等)的功能与运用范围,在这里就不做赘述了,有兴趣的可以去搜一下,然后你就会发现一个新的世界了~
首先下载安装SQL Server并配置其实例,这方面也不详细说明了,有点电脑基础的都会~然后就是正式的实操环节,首先连接到服务器:
进入后第一件事当然是创建属于自己的数据库啦~
右键「数据库」,选择新建,然后跳出右边的对话框,根据实际需求来设置「文件初始大小」、「文件增长量」、「日志初始大小」、「日志增长量」。
增长方式和文件大小上线可以自定义。
确定后就能看的建立好的数据库了。
试着生成一个有关数据库信息的脚本~
详细sql文件信息如下:
当然你也可以选择使用Transact-SQL语言直接来创建数据库:
先点「新建查询」调出查询分析编译器:
然后输入以下语句:
createdatabase HKSDBonprimary(name=HKSDB_data,filename='d:\File\TEMP\HKSDB_data.mdf',size=20MB,maxsize=500MB,filegrowth=5MB)log on(name=HKSDB_log,filename='d:\File\TEMP\HKSDB_log.mdf',size=20MB,maxsize=100MB,filegrowth=1MB)
右键相应的数据库属性会跳出很多选项:
如果你把数据库的初始值设高了,可以通过收缩来减小:
接着是通过代码来查看&修改数据库属性:
--查看数据库属性sp_dboption HKSDB--查看数据库信息sp_helpdb HKSDB--修改日志文件的最大值和初始值use HKSDBgoalterdatabase HKSDB modifyfile(name=HKSDB_log,maxsize=200MB)alterdatabase HKSDB modifyfile(name=HKSDB_log,size=40MB)--更改数据库use HKSDBalterdatabase HKSDBaddfile(name=HKSDBFZ,filename='D:\File\TEMP\HKSDBFZ.ndf',size=2mb,maxsize=10mb,filegrowth=1mb)alterdatabase HKSDBadd log file(name=HKSDBLOG1,filename='D:\File\TEMP\HKSDBLOG1.ldf',size=2mb,maxsize=10mb,filegrowth=1mb)use HKSDBalterdatabase HKSDBremove file SYDBFZalterdatabase HKSDBremove file HKSDBLOG1如果你对某个数据库不爽,想把它打入冷宫,可以直接右键数据库删除,也可以手动输入代码:
use HKSDBdropdatabase HKSDB似乎碰上了钉子户:
试试大神的代码:
USE MASTER GO DECLARE@dbname SYSNAME SET@dbname='同和君的的数据库'--这个是要删除的数据库库名 DECLARE@s NVARCHAR(1000)DECLARE tb CURSORLOCALFORSELECT s ='kill '+ CAST(spid ASVARCHAR)FROM MASTER..sysprocesses WHERE dbid = DB_ID(@dbname)OPEN tb FETCHNEXTFROM tb INTO@sWHILE @@fetch_status=0BEGINEXEC(@s)FETCHNEXTFROM tb INTO@sENDCLOSE tb DEALLOCATE tb EXEC('drop database ['+@dbname+']')
完美~
好的,那么到这里大家已经大致了解了数据库的定义与管理,接下来带大家起飞了~
手动一个个创建数据表是一件很苦逼的事情,再加上我们还没学到JAVA和SQL Server链接的JDBC技术,所以同和君选择一种取巧的方式:从Excel表格直接导入数据~
选好数据源类型:
选好目标文件后下一步:
然后对目标表的各项数据分别选好类型(其中大多都系统默认好了,局部地区稍微修改下就好,比如学号之类的):
我们来预览一下~
成功~
然后我们可以开始骚操作了~
不过在此之前,还是先教大家如何备份&还原吧~
接下来是还原,这回我们导入一个不同的~
这个是我用来做多表连接的~详细的后边会讲到~
首先我们来查一下同和君初恋女孩高一的成绩:
然后保存该sql文件:
然后再查一下初中好基友的总分区排名:
再保存下:
然后查一下b站up主@SmartMogician 的黑历史
哟,竟然出现同校同学同名同姓的情况了!
这样的话就能成功筛选了:
没想到当年的语文竟然这么难!
当年的学霸……
这样看可能更直观:
(emmmm……这真的不是招生办的阴谋……)
这样看上去就舒心多了~
很多朋友应该都存在偏科的现象,但在我们的深入研究下,发现事情并不简单:
语文不好的同学不一定数学好,
但数学不好的同学就有可能语文好了……
三倍的人数差还是能说明问题的……
那么以上呢,就给大家详细展示了大多常用查询指令的用法~接下来给大家介绍的是「连接查询」,通过这个就能实现多表之间的查询了。
成绩与排名两个表连接,分析理科总成绩与数学成绩之间的关系:
看样子综合能力好的同学,真的是每一门都不偏科呢!
最后同和君要做一件集大成的骚操作~
首先合并一下数据:
嘿嘿嘿~
我们来看看初中的那些朋友们到了高中后学习状态如何~
唯一能对应上的只有姓名了,结果如下:
换个表试试:
大数据显示,初中成绩好的高中成绩不一定好,但高中成绩好的初中成绩一定不差!
什么?有人想看我的成绩?
抱歉,这两个表里都没有我的名字hhh,成绩好就是可以为所欲srgsrgz
[数据删除]
大家也看到了,现在在某二本混日子的我……(;д;)
所以学习这玩意嘛……哎,不谈了不谈了……
接下来介绍一些增删查改的相关操作:
--增加一条记录insert N校联考 (考号,姓名,班级,学校)values('10001','同和君','一班','社会大学')--求表中各校总分的平均分,并存入一个新的数据库createtable AvgMarks(学校 nvarchar(255),平均分 real)insertinto AvgMarks(学校,平均分)select 学校,AVG([9科总分分数])from N校联考groupby 学校--将「N校联考」中所有「广州市第五中学」的信息更新为「广州五中」update N校联考set 学校='广州五中'where 学校='广州市第五中学'执行结果:
ok,那么就暂且先告一段落吧,基本操作讲完了,下回咱们就讲讲高级操作吧~
鸣谢以上十七所高校提供的成绩信息~
- ?
MySQL导入导出文本数据
窒息感
展开
前言
MySQL表格数据可以直接通过select导入导出到文本,可以快速的提取数据。
INTO OUTFILE
在命令行中直接使用into outfile写到指定的目录下就可以了,记得目录需要MySQL运行用户有写的权限
select * into outfile "/data/outputdata/1.txt" from test.t1;
如果对文本格式用要求,可以队列和行的数据进行格式化
fields:设置字段选项
设置字段分隔符:field terminated by '\t'
lines:设置行选项
设置导出每行添加换行符:lines terminated by '\n'
每行开始添加指定的字符串:starting by 'start:'
例如
设置列以 , 分割,每行添加换行符并设置行头以start:开始
select * into outfile "/data/outputdata/2.txt" fields terminated by "," lines terminated by '\n' starting by 'start:' from test.t1;
文本数据如下
start:2,pppP
start:1,ddd
LOAD DATA INFILE
MySQL可以支持从文本文件里面直接load文本数据到表中,但是也需要指定分割符
load data infile "/data/outputdata/2.txt" into table test.t2 fields terminated by ',';
总结
这样子的导入导出就是为了方便获取到数据,如果是备份不建议使用这种方式。
- ?
mysql导入数据的N种方法 命令行/工具
绿邮筒
展开
mysql导入数据有很多种方法,对于初级别的应用来说,这些方法无所谓好坏之分,看个人习惯来使用。
连接进入数据库windows : 开始菜单->运行 cmd linux : 如果没有配置环境变量, 则到mysql 的bin 目录中去
输入: mysql -u root -p 回车 进入数据库
使用库/创建库 譬如数据库名字为:testdb如果数据库存在, 则 use testdb如果数据库不存在, 则创建 create database testdb 然后在 use testdb
将你要导入的数据库文件 *.sql 放到 D或者任意方便输入的位置, 我放置到了D盘的根目录下然后输入命令: source d:/testdb.sql 回车,会看到如图的
进入到命令行模式。步骤直接同上第一步。直接输入: mysqldump -u root -p testdb < d:/testdb.sql 然后回车
会提示输入密码: 直接输入密码,回车搞定!
我们常用的mysql工具有 phpmyadmin sqllog navcat 等。 工具导入的方式就以 sqllog 为例,第一步新建数据库: 输入数据库名, 注意字符集和编码
右键数据库, “导入”->"执行SQL脚本" 然后选择数据库。 点击确定即可
点击“执行”, 可能会弹出一个对话框,直接忽略,点击“确定”就可以了
- ?
如何实现批量导入数据
易巧
展开
SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表既可以在同一个服务器上,也可以在不同服务器上)。SqlBulkCopy 类允许编写提供类似功能的托管代码解决方案。还有其他将数据加载到 SQL Server 表的方法(例如 INSERT 语句),但相比之下 SqlBulkCopy 提供明显的性能优势。 使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader 实例读取数据。 下面分享如何使用实现批量导入信息资料功能。
1. 信息资料数据表设计
2. WinForm 程序设计Winform 程序 采用VS2008 C#语言开发。界面设计为工具栏、查询条件、数据列表及状态栏。
3. 数据导入界面设计数据导入选择导入数据文件,经解释正确后,进行确定,导入数据。
4. 选择CSV数据文件进行解释 本示例使用CSV文本文件导入。4.1. CSV 数据文件内容
4.2. CSV数据导入解释方法
5. 使用导入数据
至此,导入数据分享完毕,几万行数据,可在几秒内瞬间导入。从中我们也发现,想要达到这种速度,是有很多条件的。比如程序不会针对每一行数据进行数据有效性验证;导入的数据列必须与数据库中的数据表设计完全一致。所以一般只在数据转移、信息系统升级中常用。
- ?
SQL Server数据的导入导出
弋微凉
展开
SQL Server 2008的导入导出服务可以实现不同类型的数据库系统的数据转换。为了让用户可以更直观的使用导入导出服务,微软提供了导入导出向导。导入和导出向导提供了一种从源向目标复制数据的最简便的方法,可以在多种常用数据格式之间转换数据,还可以创建目标数据库和插入表。可以向下列源中复制数据或从其中复制数据:SQL Server、文本文件、Access、Excel、其他 OLE DB 访问接口。这些数据源既可用作源,又可用作目标。还可将 ADO.NET 访问接口用作源。指定源和目标后,便可选择要导入或导出的数据。 可以根据源和目标类型,设置不同的向导选项。例如,如果在 SQL Server 数据库之间复制数据,则指定要从中复制数据的表,或提供用来选择数据的 SQL 语句。
打开SQL Server Management Studio,在对象资源管理器中,展开“SQL Server 实例”→“数据库”→“MySchool”节点,单击鼠标右键,选择“任务”→“导出数据”命令。出现导入和导出向导的欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框,如图
在“选择数据源”对话框中设置如下选项:数据源:SQL Native Client 10.0。服务器名称:DC。身份验证:Windows身份验证。数据库:MySchool。单击“下一步”按钮,出现“选择目标”对话框,设置如下选项(如图所示):目标:平面文件目标。文件名:C:\student.txt。格式:带分隔符。
单击“下一步”按钮,出现“指定表复制或查询”对话框,如图所示。
在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮,出现“配置平面文件目标”对话框,如图所示。
设置源表或源视图为MySchool.dbo.student,单击“下一步”按钮。在“保存并执行包”对话框中选中“立即执行”复选框,如图所示,然后单击“下一步”按钮。
在如图所示的对话框中单击“完成”按钮。
如图所示,当执行完后,单击“关闭”按钮。
在Windows资源管理器中打开C:\student.txt文件,验证导出的结果。
打开SQL Server Management Studio,在对象资源管理器中,展开“SQLServer 实例”→“数据库”→“Benet”节点,单击鼠标右键,选择“任务”→“导入数据”命令。出现欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框。在“选择数据源”对话框中设置如下选项数据源:Microsoft Excel。Excel文件路径:C:\temp\Customer.xls。版本:Microsoft Excel 97-2005。(4)单击“下一步”按钮,出现“选择目标”对话框,设置如下选项:目标:SQL Native Client。服务器名称:TESTSQL。身份验证:Windows身份验证。数据库:Benet。
单击“下一步”按钮,出现“指定表复制或查询”对话框。在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮。出现“选择源表和源视图”对话框,设置如下选项,如图4.9所示,然后单击“下一步”按钮。源:Cumtomer。目标:Benet.dbo.Customer。
在“保存并执行包”对话框中选中“立即执行”复选框,然后单击“下一步” 按钮。在如图所示的对话框中单击“完成”按钮。当执行完后,单击“关闭”按钮。
- ?
利用MySQL工具之SQLYog进行数据导入
柳晓凡
展开
相关MySQL的安装包和工具,可以免积分到CSDN下载栏目下载,地址为:http://download.csdn/detail/taomanman/9642852
1、导入外部数据向导,如下图所示:
2、开始新工作,点击“下一步”,如下图所示:
3、建立新的DSN,如下图所示:
4、勾选“文件数据源”,点击“下一步”,如下图所示:
5、选择“SQL Server” ,点击“下一步”,如下图所示:
6、输入数据源路径及名称,点击“下一步”,如下图所示:
7、点击完成,点击“下一步”,如下图所示:
8、输入服务器IP地址,点击“下一步”,如下图所示:
9、输入登录ID和密码,点击“下一步”,如下图所示:
10、勾选“更改默认的数据库为” ,点击“下一步”,如下图所示:
11、点击“完成”,点击“下一步”,如下图所示:
12、点击“测试数据源”,点击“下一步”,如下图所示:
13、测试成功,点击“确定”,如下图所示:
14、输入数据源凭据,点击“下一步”,如下图所示:
15、选择文件DSN,浏览到先前创建的dsn文件,然后点击“下一步”,如下图所示:
16、输入MySQL信息,点击“下一步”,如下图所示:
17、选择从数据源拷贝数据,点击“下一步”,如下图所示:
18、选择源和目的表(表结构,表名称要完全一致),然后点击“下一步”,如下图所示:
19、默认出错错误处理,点击“下一步”,如下图所示:
20、何时运行任务,点击“下一步”,如下图所示:
21、正在完成数据库导入,点击“下一步”,如下图所示:
22、向导成功完成,点击“完成”,如下图所示:
23、在SQLyog中可以看到已经导入到MySQL数据库表中的数据了,如下图所示:
至此,关于SQL Server 2008 R2中的数据库表数据导入到MySQL数据库表中的操作步骤已经详细介绍完毕了。
- ?
PHP基础之使用phpMyAdmin导入sql文件
Tulla
展开
从基础到内核,分享PHP的方方面面。大家好,我是编程二哥。
最近遇到很多赶交期末作业的大学生求助,问Dreamweave怎么查接数据库啊二哥,本着让你渡过大学美好时光的最后时光, 二哥这个忙帮定了。
1、找到phpMyAdmin 打开(一般启动环境后输入http://localhost/phpMyAdmin即可打开),如图页面:
输入账号密码,一般默认:
账号:root 密码:(空的,不用输)
如果密码不为空,这对应的源代码目录 Connections\ localhost.php里面更改,如图:
2、输入完账号密码后,点击执行按钮,进入如图界面:
3、点击数据库,创建表students,然后点击执行
4、执行成功后,点击如图:
5、进入如图界面,点击导入
6、点击导入,然后选择源代码中的 students.sql文件
7、然后点击底部的执行。
8、执行成功后,出现这几个表。
9、然后打开浏览器,输入源码包所在网站根目录的路径,例如:http://localhost /students 看看是不是可以愉快的浏览了网站了呢。
对于给到的小伙伴没呢的源码程序,默认登录用户名和密码为:test、123456,登录进去后可以修改密码,修改后,要记得新修改的密码哦!不然你就哭吧。
哈哈,别被吓着了,网站有问题,二哥来帮忙。小伙伴们,接下来愉快的耍一耍吧
sql数据导入
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并