当你建好了
数据库及表时 你首先想到的就是向
数据库的表中输入数据 这就牵涉到如何向数据库增加数据 下面我们就来探讨一下这个问题: 一般我们常用的方法是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
1、先添加完,删除所有重复的记录,再insert一次
insert into A select * from B
insert into A select * from C
insert into A select * from D
2、删除重复的记录只保留一行
delete from A where name in (select id from t1 group by id having count(id) >1)and rowid not in (select min(rowid) from t1 group by id having
count(*)>1)
3、记录一下这些重复的记录,
mysql -uroot -p123456 -Ddb01 -e 'select b.id from t1 b group by id having count(b.id) >1' | tail -n +2 >repeat.txt
删除全部重复的记录
delete from A where name in (select name from t1 group by name having count(name) >1)
再次插入多删的重复记录
#!/bin/sh
for id1 in `cat repeat.txt`do
mysql -uroot -p123456 -Ddb01 -e "insert into A select * from B where id='${id1}'"
done
插入数据库的方法。如下参考:
1.首先,打开SQLserver管理系统工具,使用数据库帐号登录到数据管理系统。
2.输入后,单击数据库文件副本前面的+号。
3.然后右击数据库文件夹,选择“新知识数据库”。
4.然后创建一个名为test的数据表。
5.建立完成后,在下面的编辑器中输入下图中的代码,然后单击run。
6.运行之后,您可以看到测试表插入了一个空记录,这样就完成了。如下图所示。
评论列表(0条)