Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103683149
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-05-04 16:14:15

来源: 作者:qieming

当我们建好数据库及表后,首先想到的就是向数据库的表中输入数据.下面我们就来探讨一下如何向数据库增加数据:  

 

1.常用的方法是insert语句

 

insert into tablename values(value1,value2,...)
  
insert into tablename(fieldname1,fieldname2,...) values(value1,value2,...)
  
insert into tablename set fieldname1=value1,
fieldname2=value2,...
  
insert into tablename(fieldname1,fieldname2) select fieldname1,
fieldname2 from tablename1

除此之外我们可以用insert语句将几行同时插入到一个表中。

 

insert into tablename values(...),(...),...

2.MySQL环境下,我们还可以用LOAD DATA 语句把文件里面的数据读取录入到表里面.一般来讲,因为此文件是由服务器在主机上直接读取的.所以你必须具有file权限且文件必须是完全可读.当你版本够新的话,你可以给出local,这样由于你是从客户机上读取该文件并将内容传送到服务器,你就不需要file权限。  

 

假如你没有给出local,则服务器按如下方法对其进行定位:  

 

(1)如果你的filename为绝对路径,则服务器从根目录开始查找该文件。

 

(2)如果你的filename为相对路径,则服务器从数据库的数据目录中开始查找该文件。

 

如果你给出了local,则文件将按以下方式进行定位:  

 

(1)如果你的filename为绝对路径,则客户机从根目录开始查找该文件。 

 

(2)如果你的filename为相对路径,则客户机从当前目录开始查找该文件。  

 

具体的格式:

 

 

LOAD DATA [LOCAL] INFILE 'filename' 
into table tablename import_options 
[(fieldname_list)]

 

import options的语法为:

 

  fields
  
  terminated by 'char'
  
  enclosed by 'char'
  
  escaped by 'char'
  
  lines
  
  terminated by 'string'

说明:

 

(1)fields terminated by char 指定分隔列的字符.缺省时假定列值由制表符分隔。  

 

(2)fields enclosed by char 指明列值应包括在指定的字符中.通常用引号.缺省时,假定列值不包括在任何字符中。 

 

(3)fields escaped by char 表示用于转义特殊字符的转义符.缺省时表示无转义符  

 

(4lindes escaped by string 指定结束输入行的串(可以是多字符的).缺省时假定由换行符终止行。  

 

我们需要注意的是转义字符的使用. 如:\' 表示单引号,\" 表示双引号 等等.另外还有一些选项这里没有具体谈到,如 ignore n lines 可以控制文件的前n行不被读入数据库.详细请看mysql中文参考。

 

 

阅读(418) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~