数据导入,导出 表操作

一、数据的导入导出

1、数据导入:把系统文件的内容保存到数据库的表里

默认只有数据库管理冲数据库服务器本机登录数据库才有数据导入权限

表结构要与文件内容匹配。

把/etc/passwd文件的内容保存到数据库服务器userdb库的userlist表中

mysql> createdatabase userdb;

mysql> create table userlist(

-> username  varchar(15) not null,

-> password  char(1) not null,

-> uid int(3) not null,

-> gid int (3) not null,

-> comment varchar(30),

-> homedir varchar(30),

-> shell varchar(30) not null,

-> index(username)

-> );

mysql>loaddata infile "/etc/passwd" into table userdb.userlist

->fieldsterminated by ":" lines terminated by "\n";

mysql>select  *  fromuserdb.userlist;   //查看表内容

mysql>alter table userlist add id int(3) primary key auto_increment first;   //在userdb库里userlist表添加id字段是主键且自动增长,放在所有字段的上方(第一)

   数据导入命令格式:

load  data infile  ‘要导入的绝对路径文件名’  into table 数据库.表名

   fields terminated by ‘字段间隔符’

   lines terminated by ‘\n’;

   字段间隔符要与文件内的匹配

   要输入导入文件的绝对路径

   导入数据的表字段类型要与文件字段匹配

   默认管理员在本机登录时有权限

\n 表示换行符

2、数据导出:将数据库里的记录保存到系统文件里

   把userlist表中的记录存放到系统文件userlist.txt文件里:

mysql>select * from userdb.userlist into outfile "/mysqlbak/new.txt" fieldsterminated by "#" lines terminated by "\n";

数据导出命令格式:  

SQL查询语句 into  outfile  ‘目录/文件名’        //指文件名导出位置

   【fields  terminated by  ‘字段间隔符’   lines  terminated  by  ‘\n’;   】  可选 默认 tab间隔 回车换行           //lines 行

导出数据的内容由SQL查询语句

 文件名不用事先创建,导出时自定义

 文件名不指定路径时,默认文件将存放在“自己在什么库下执行的该命令,导出文件就存放在那个数据库目录里” 默认存放/var/lib/mysql/下的数据库目录

指定文件名存放的路径时,要让mysql用户对目录有写的权限并且关闭 selinux

二、表记录的操作(增加记录  删除记录   修改记录  查询记录)

复制表

Create  table  新表名 SQL 查询语句;

Create  table user1    select * from  studb.user ;

复制表时,原表key字段属性不会被复制

 

复制表结构

Create  table  user1  select * from userlistwhere 1=2;

Insert  into user (username)values (null);  给username字段赋为空值

更改表名:

Alter  table  原表名 rename   [to]  新表名

1、查(select)

  select 字段名列表 from表名;    //显示指定表中的指定字段  *匹配所有字段

   select 字段名列表 from 表名 where 条件表达式

条件表达式:适用于查询、删除、更新操作:如下

  1)数值比较符号

=    等于    可以做数值比较,也可以做字符比较,做字符比较时,字符用双引号引起      字段名=字段值    字段名=”字段值”

>  大于

<  小于

>=  大于等于

<=  小于等于

!= 不等于

=’’ 等于空格

between…and…    在…与…之间   (只能比较数值)

例:selectusername,uid from userlist where uid>10;

select username,dir from userlistwhere uid between 30 and 40;(包括30和40)

   2)逻辑比较、多条件组合

in    在…范围内

between…and…    在…与…之间   (只能比较数值)

select  * from user where username in(“bin”,”daemon,””root”);

not in 不在..范围内

is null 字段的值为“匹配空”

is not null   字段的值为非空  “匹配非空”

distinct    不显示字段重复值   //放在字段符列表的前面

select  distinct shellfrom  user2 ;  //去掉shell字段的重复值

逻辑符号(查询条件大于等于2个条件的时候使用逻辑匹配)

and   逻辑与(例举的条件表达式要同时成立才可以,and=条件全部满足)

or    逻辑或(例举的条件表达式只要有一个条件成立就可以or=满足一个就行)

!    逻辑非  【注:不能单独使用,要和别的搭配用,比如!=】

     例:selectusername,dir from userlist where uid in (10,20,30);

select name from userdb.youyang where uid notin (0,3,5,8);

select username,dir from userlistwhere username in (“root”,”bin”,”admin”);

select * from userlist where shell isnot NULL;

select  distinct shell  from  userlist ;

select username,dir from userlistwhere uid>=30 and uid<=40;

select * from userlist whereusername="root" or uid=500 or homedir="/root";

select* from userlist where username="root" and uid=500 andhomedir="/root";

delete from mysql.user whereuser="root" and host="192.168.10.20";  //删除mysql.user表里的账户[email protected]

 3)运算符  (字段类型必须为数值类型)

+   加法

-   减法

*   乘法

/   除法

%  取余数

as   取别名 (临时性作为显示字段)

例:select username,2014-uid as nianling from userlist;

select name,(2000+uid)/7 as nianling fromuserdb.youyang;

selectname,(2000+uid)*7 as nianling from userdb.youyang;

selectname,100*uid as nianling from userdb.youyang;

select name,(2000+uid)%9 as nianling fromuserdb.youyang;   //(2000+uid)然后%9    就是(2000+uid)然后除以9的余数  答案=余数是3

 4)正则表达式 (用符号匹配一类数值的范围)

Where   字段名   regexp   “正则表达式”      

. 单个字符   匹配任意一个字符

*前边的一个字符出现的0次到N次  如:”^reo*” 找以re开头的,有没有o都可以

^ 匹配开头

$匹配结尾

[] 匹配范围内

[0-9] 匹配所有数字

[a-z] 匹配所有小写字母

Select* from usertab where username regexp 【wcf】

正则表达式前边必须加regexp才生效

例:select *from userlist where 字段名 regexp  ‘^…$’;

  5)模糊查询like

         字段名 like 模糊查询表达式;

%   匹配0个到N个字符

列子:”a%”   a后边的任何字符都显示出来

“a%b”  a与b中间的任何字符都显示出来

_    匹配任意单个字符

例子:”_a_”   显示出中间带a的 3个字符

“_ _a”  显示出最后带a 的3个字符

例:select username,dir fromuserlist where username like ‘a%‘;

 6)分组和排序

order by  字段名[asc/desc]   排序 //默认升序

group by  分组

having  指定分组条件,用来做分组条件的字段一定要在查询字段内

limit  限制查询时显示记录的条目数

limit n,m    n表示从第几条记录显示可选项,不指定时默认从第一条开始显示,第一条记录编

号从0开始,如果从记录的第一条开始显示,n的值可以省略。m表示显示几条记录。 例子:n,m

等于2,3 就是从第2条开始往后显示3条

默认从查询结果的第一条记录开始显示  第一条记录值为0

时间: 2025-01-07 12:45:26

数据导入,导出 表操作的相关文章

SQL Server大数据导入导出:将一张表的数据导入到另一张表

今天下午休息的时候又被扔给一项任务:把全国的街道数据导入街道表.但是他们扔给我的SQL脚本是从网上down的一个,跟平台这边的数据库设计的完全不一样. 当时的思路是:先把扔给我的脚本在本地生成一个表,然后选出要的数据,批量插入到开发库所在服务器的表. 然后,按照这个思路做了个测试: INSERT INTO dbo.test_Street(Code,CountyCode,CnName,VersionNo,Creator,CreateTime,ValidStatus) /*要插入数据的表*/ SEL

蓝的成长记——追逐DBA(3):古董上操作,数据导入导出成了问题

蓝的成长记--追逐DBA(3):古董上操作,数据导入导出成了问题 ***************************************声明*************************************** 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以英文形式代替,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖,如有关技术细节表述有错

Oracle 数据导入导出操作 (转)

Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 (通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了) 这样你可以把数据导出到本地,虽然可能服务器离你很远

考试系统维护--不同版本SQL数据导入导出

考试系统维护过程中,为了保证考试的顺利进行需要在多个服务器上搭建考试系统(备份),这时候需要把数据库来回迁移,之前我们常用的数据库备份还原的方法确实简单方便,但是遇到不同的服务器安装的SQL版本不同就歇菜了,虽然当时为了以后操作方便,我们把这次要用的服务器的数据库版本都统一了,但是在考试系统维护中米老师让我感触最深的一点-----"凡事多想一点!"多思考必须要应用到实际,所以我回来又仔细研究了几种不同版本SQL数据导入导出的方法,与大家交流提高. 一:使用SQLServer Impor

Oracle11g和10g数据导入导出

背景:Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.下面总结下具体的导入导出步骤: ------------------------------------------------------------------------------------------- #11g新特性数据库使用数据泵expdp&impdp导出导入操作# -------

mysql中的数据导入导出

数据导入 1.mysqlimport命令行导入数据 在使用mysqlimport命令导入数据时,数据来源文件名要和目标表一致,不想改文件名的话,可以复制一份创建临时文件,示例如下. 建立一个文本users.txt,内容如下: 创建一个表users 使用mysqlimport将users.txt中数据导入users表 PS F:\> mysqlimport -u root -p123456 zz --default-character-set=gbk --fields-terminated-by=

Oracle数据导入导出imp/exp

在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. Oracle数据导出exp Exp参数详解: USERID 运行导出命令的帐号的用户名/口令 BUFFEER 用来取数据行的缓冲区的大小 FILE 导出转储文件的名字 COMPRESS 导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句 GRANTS 导出时否要导出数据库对象上的授权 INDEXES

【源】从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上

阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇,我们介绍了Hive的表操作做了简单的描述和实践.在实际使用中,可能会存在数据的导入导出,虽然可以使用sqoop等工具进行关系型数据导入导出操作,但有的时候只需要很简便的方式进行导入导出即可   下面我们开始

ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP命令详细对比

ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP 命令详细对比 一.EXPDP IMPDP EXP IMP 可以实现 1.可以实现逻辑备份和逻辑恢复 2.可以在数据库用户之间移动对象 3.可以在数据库之间移动对象 4.可以实现表空间转移 二.EXPDP的命令详解 C:\Users\Administrator>20:42:32.90>expdp help=y Export: Release 11.2.0.1.0 - Production on 星期六 10月 10 09