中企动力 > 商学院 > sql数据导入
  • ?

    数据库之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数据导入

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP