
1、点击"开始"-"运行",输入cmd,然后回车进入到DOS界面。
2、进入MYSQL安装目录。
3、假如MYSQL安装在D盘,SQL文件也在D盘,加入命名为demosql, *** 作的方法是:
输入"D:",回车即进入到D盘了,然后输入"cd mysql/bin"并回车
4、再输入"mysql -u root -p database d:/demosql",回车显示要输入密码
5、如果MYSQL数据库的密码为空则不输入任何东西回车,没有出现错误说明导入成功。
注意:上面的database是要导入的数据库名。
你先将文本文件按换行符的分开读到一个字符窜变量中去,name:=copy(str1,0,4),加到数据库中去呀。
比如:str1:='张某;19;一(1)',然后就分化这个字符窜,将他逐个加到数据库中去呀
当你建好了数据库及表时 你首先想到的就是向数据库的表中输入数据 这就牵涉到如何向数据库增加数据 下面我们就来探讨一下这个问题: 一般我们常用的方法是insert语句(这里假定各位的版本都不是很低) 她有以下几种形式:insert into tablename values(value value )insert into tablename(fieldname fieldname ) values(value value )insert into tablename set fieldname =value fieldname =value insert into tablename(fieldname fieldname ) select fieldname fieldname from tablename 以上基本上罗列了用insert插入数据的方法 当然你也可以用insert语句将几行同时插入到一个表中 如下所示:insert into tablename values( ) ( ) 在mysql运行环境下 我们还可以用LOAD DATA 语句把文件里面的数据读取录入到表里面 一般来讲 因为此文件是由服务器在主机上直接读取的 所以你必须具有file权限且文件必须是完全可读 当你版本够新的话 你可以给出local 这样由于你是从客户机上读取该文件并将内容传送到服务器 你就不需要file权限 如果你没有给出local 则服务器按如下方法对其进行定位: )如果你的filename为绝对路径 则服务器从根目录开始查找该文件 )如果你的filename为相对路径 则服务器从数据库的数据目录中开始查找该文件 如果你给出了local 则文件将按以下方式进行定位: )如果你的filename为绝对路径 则客户机从根目录开始查找该文件 )如果你的filename为相对路径 则客户机从当前目录开始查找该文件 说了半天 也许你还不明白这具体的格式 看下面先:LOAD DATA [LOCAL] INFILE filename into table tablename import_options [(fieldname_list)]import options的语法为:fieldsterminated by char enclosed by char escaped by char linesterminated by string 下面我们对其进行一些说明: )fields terminated by char 指定分隔列的字符.缺省时假定列值由制表符分隔. )fields enclosed by char 指明列值应包括在指定的字符中.通常用引号.缺省时 假定列值不包括在任何字符中. )fields escaped by char 表示用于转义特殊字符的转义符.缺省时表示无转义符 )lindes escaped by string 指定结束输入行的串(可以是多字符的).缺省时假定由换行符终止行需要注意的是转义字符的使用 如:\ 表示单引号 \ 表示双引号 等等 另外还有一些选项这里没有具体谈到 如 ignore n lines 她可以控制文件的前n行不被读入数据库 详细请看mysql中文参考 说了上面这么多 给一行命令大家具体体会一下:load data [local] infile sample txt into table sample fields terminated by enclosed by \ 在系统命令行下你可以用mysqlimport实用程序 她将文本文件的内容读取到已有表中(其实mysqlimport起的作用就是实现load data命令行的接口) 调用完mysqlimport后她生成一个load data 语句 语法基本上和load data差不多:mysqlimport [options] sample_db filename同样 给条命令看一下吧:mysqlimport Cu root [ local] Cfields terminated by= fields enclosed by= \ samp_db samp_table txt(REMARK:此语句中samp_db为指定的数据库 要录入数据的表由文件名参数确定 文件名去掉其任何扩展名 留下的就是表名 所以此语句中录入数据的表名为samp_table 也就是说在执行这条语句时首先应该肯定表samp_table存在 另外如果你有多个文件需要装入同一个表里 你可以用samp_table n txt来处理) lishixinzhi/Article/program/MySQL/201311/29349
数据库是不会存储文件的,他只是存储文件的存放地址,比如你想存储一个文件,你可以把文件名,文件大小,文件格式,文件存储的地址(d:/file/fieltxt)存到数据库表中。
当你想获取文件的时候就直接读取文件的存储地址File file=new File("d:/file/fieltxt");,这样就能存储数据文件了
SQL Server 2005:
通过OPENROWSET和bcp:---示例1:-- SQL Server import image - SQL Server export image-- Extract image SQL Server - SQL Server export binary data
USE AdventureWorks;
GO
-- Create image warehouse for importing image into sql database
CREATE TABLE dboPhotoLibrary (
PhotoLibraryID INT IDENTITY ( 1 , 1 ) PRIMARY KEY,
ImageName VARCHAR(100),
Photo VARBINARY(MAX))
GO
-- SQL Server import image - sql storing images database sql server
INSERT INTO dboPhotoLibrary
([ImageName])
VALUES ('MadisonAVEJPG')
UPDATE dboPhotoLibrary
SET Photo = (SELECT
FROM OPENROWSET(BULK 'e:\image\photo\MadisonAVEJPG', --源文件地址
SINGLE_BLOB) AS x)
WHERE [ImageName] = 'MadisonAVEJPG'
GO
-- Check table population
SELECT
FROM dboPhotoLibrary
GO
-- SQL Server export image
DECLARE @Command NVARCHAR(4000)
-- Keep the command on ONE LINE - SINGLE LINE!!! - broken here for presentation
SET @Command = 'bcp "SELECT Photo FROM AdventureWorksdboPhotoLibrary"
queryout "e:\image\photo\expMadisonAVEjpg" -T -n -SPROD\SQL2005'
PRINT @Command -- debugging
EXEC xp_cmdshell @Command
GO
--- 示例2:
------------- T-SQL Export all images in table to file system folder
--导出所有的图象到文件
-- Source table: ProductionProductPhoto - Destination: K:\data\images\productphoto\
--来源表 ProductionProductPhoto 目标:K:\data\images\productphoto\
------------
USE AdventureWorks2008;
GO
DECLARE @Command VARCHAR(4000),
@PhotoID INT,
@ImageFileName VARCHAR(128)
DECLARE curPhotoImage CURSOR FOR -- Cursor for each image in table
SELECT ProductPhotoID,
LargePhotoFileName
FROM ProductionProductPhoto
WHERE LargePhotoFileName != 'no_image_available_largegif'
OPEN curPhotoImage
FETCH NEXT FROM curPhotoImage
INTO @PhotoID,
@ImageFileName
WHILE (@@FETCH_STATUS = 0) -- Cursor loop
BEGIN
-- Keep the bcp command on ONE LINE - SINGLE LINE!!! - broken up for presentation
SET @Command = 'bcp "SELECT LargePhoto FROM
AdventureWorks2008ProductionProductPhoto WHERE ProductPhotoID = ' +
convert(VARCHAR,@PhotoID) + '" queryout "K:\data\images\productphoto\' +
@ImageFileName + '" -T -n -SHPESTAR'
PRINT @Command – debugging
/ bcp "SELECT LargePhoto FROM AdventureWorks2008ProductionProductPhoto
WHERE ProductPhotoID = 69" queryout
"K:\data\images\productphoto\racer02_black_f_largegif" -T -n -SHPESTAR
/
EXEC xp_cmdshell @Command -- Carry out image export to file from db table
FETCH NEXT FROM curPhotoImage
INTO @PhotoID,
@ImageFileName
END -- cursor loop
CLOSE curPhotoImage
DEALLOCATE curPhotoImage
/output
NULL
Starting copy
NULL
1 rows copied
Network packet size (bytes): 4096
Clock Time (ms) Total : 16 Average : (6250 rows per sec)
NULL
/
------------
文件上传到数据库请参考以下示例:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="javasql" %>
<%/////连接数据库
javasqlConnection conn;
javasqlStatement stmt;
javasqlResultSet rs1;
ClassforName("sunjdbcodbcJdbcOdbcDriver");
conn=DriverManagergetConnection("jdbc:odbc:dababasename");///数据源
stmt=conncreateStatement();
%>
<%
String sqlin="insert into drawing values ;
File file = new File("c:/zjpg");
long l1=filelength();
int l2=(int)l1;
FileInputStream is = new FileInputStream(file);
InputStream fis=(InputStream)is;
PreparedStatement ps = connprepareStatement("insert into images values (,)");
pssetString(1,filegetName());
pssetBinaryStream(2,fis,filelength());
psexecuteUpdate();
psclose();
fisclose();
//将从数据库中提取,进行显示
//drawing字段为IMAGE类型
stmt = conncreateStatement();
rs1 = stmtexecuteQuery("SELECT FROM drawing WHERE drawing_code ='0-515' and version=3");
if (rs1next())
{
String dim_image = rs1getString("file_name");
byte [] blocco = rs1getBytes("drawing");
responsesetContentType("image/jpeg");
ServletOutputStream op = responsegetOutputStream();
for(int i=0;i<bloccolength;i++)
{
opwrite(blocco[i]);
}
}
rs1close();
%>
以上就是关于如何快速导入大SQL文件到MySQL数据库全部的内容,包括:如何快速导入大SQL文件到MySQL数据库、如何将文本文件中的数据写入数据库中、如何向mysql数据库的表中录入数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)