mysql如何复制数据到同一张表

mysql如何复制数据到同一张表,第1张

在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。

1、 表结构相同的表,且在同一数据库(如,table1,table2)

Sql :

复制代码代码如下:

insert into table1 select from table2 (完全复制)

insert into table1 select distinct from table2(不复制重复纪录)

insert into table1 select top 5 from table2 (前五条纪录)

2、不在同一数据库中(如,db1 table1,db2 table2)

sql:

[code]

insert into db1table1 select from db2table2 (完全复制)

insert into db1table1 select distinct from db2table2(不复制重复纪录)

insert into tdb1able1 select top 5 from db2table2 (前五条纪录)

3、表结构不同的表或复制部分纪录(如,dn_user,dn_user2)

a 建一个新表[DN_UserTemp](在老表dn_user上增加一列)

复制代码代码如下:

CREATE TABLE [DN_UserTemp] ( [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL)

[Id] [idtype] NOT NULL ,

[Name] [fntype] NOT NULL ,

[Descript] [dstype] NULL ,

[LogonNm] [idtype] NOT NULL ,

[Password] [idtype] NULL ,

[Gender] [char] (1) NULL ,

[Quited] [booltype] NOT NULL,

[OffDuty] [booltype] NOT NULL ,

[Stopped] [booltype] NOT NULL,

[OSBind] [booltype] NOT NULL,

[Domain] [idtype] NULL ,

[EMail] [fntype] NULL ,

[UnitId] [idtype] NULL ,

[BranchId] [idtype] NULL ,

[DutyId] [idtype] NULL ,

[LevelId] [idtype] NULL ,

[ClassId] [idtype] NULL ,

[TypeId] [idtype] NULL ,

[IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,

[ExpireDT] [datetime] NULL ,

[Sort] [int] NOT NULL ,

[AllowDel] [booltype] NOT NULL,

[UnitChief] [booltype] NOT NULL,

[BranchChief] [booltype] NOT NULL ,

[UnitDeputy] [booltype] NOT NULL ,

[BranchDeputy] [booltype] NOT NULL ,

[Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL

) ON [PRIMARY]

b 将dn_uer2的数据拷入dn_usertemp

sql:insert into dn_usertemp select from dn_user2

c将dn_usertemp 拷入dn_user

sql:

复制代码代码如下:

declare @i int

declare @j int

declare @Name fntype

set @i=1

select @j=count() from dn_usertemp

while @i<@j 1

begin

select @Name=Name from dn_usertemp where Num=@i

print @Name

insert into dn_user (Name) values (@Name) where Num=@i

select @i=@i 1

end

MySql数据库复制表数据

将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:

复制代码代码如下:

CREATE TABLE mytbl_new LIKE productionmytbl;

INSERT mytbl_new SELECT FROM productionmytbl;

第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。

第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。

注:productionmytbl是指定要复制表的数据库名称为 production 。它是可选的。

假如没有production ,MySQL数据库将会假设mytbl在当前 *** 作的数据库。

另外:在mysql数据库中复制数据为:

复制代码代码如下:

select into desTable from sourceTable在mssql中支持,在mysql中不支持

insert into desTable select from sourceTable

Java可以使用JDBC访问数据库,也可以使用各类ORM框架访问数据库,但这些框架最终还是通过JDBC访问数据库,它们只是封装了数据库 *** 作,而使得开发者可以减少这部分消耗。因此,本文只讲解JDBC访问方式。

JDBC访问一般分为如下流程:

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过javalangClass类的静态方法forName(StringclassName)实现。

例如:

try{

//加载MySql的驱动类

ClassforName("commysqljdbcDriver");

}catch(e){

Systemoutprintln("找不到驱动程序类,加载驱动失败!");

e();

}

成功加载后,会将Driver类的实例注册到类中。

2、提供JDBC连接的URL

连接URL定义了连接数据库时的协议、子协议、数据源标识。

书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql://localhost:3306/testuseUnicode=true&=gbk;

useUnicode=true:表示使用Unicode字符集。如果设置为

gb2312或GBK,本参数必须设置为true。=gbk:字符编码方式。

3、创建数据库的连接

要连接数据库,需要向javasql请求并获得Connection对象,该对象就代表一个数据库的连接。

使用的(Stringurl,Stringusername,Stringpassword)方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。

例如:

//连接MySql数据库,用户名和密码都是root

Stringurl="jdbc:mysql://localhost:3306/test";

Stringusername="root";

Stringpassword="root";

try{

Connectioncon=

(url,username,password);

}catch(se){

Systemoutprintln("数据库连接失败!");

se();

}

4、创建一个Statement

要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过实例实现。

3、执行数据库存储过程。通常通过实例实现。

具体的实现方式:

Statementstmt=con();

PreparedStatementpstmt=conprepareStatement(sql);

CallableStatementcstmt=conprepareCall("{CALLdemoSp(,)}");

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery、executeUpdate和execute

1、ResultSetexecuteQuery(StringsqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。

2、intexecuteUpdate(StringsqlString):用于执行INSERT、UPDATE或DELETE语句以及SQLDDL语句,如:CREATETABLE和DROPTABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。

具体实现的代码:

ResultSetrs=stmtexecuteQuery("SELECTFROM");

introws=stmtexecuteUpdate("INSERTINTO");

booleanflag=stmtexecute(Stringsql);

6、处理结果

两种情况:

1、执行更新返回的是本次 *** 作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。

使用结果集(ResultSet)对象的访问方法获取数据:

while(rsnext()){

Stringname=rsgetString("name");

Stringpass=rsgetString(1);//此方法比较高效(列是从左到右编号的,并且从列1开始)

}

7、关闭JDBC对象

*** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs!=null){//关闭记录集

try{

rsclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

if(stmt!=null){//关闭声明

try{

stmtclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

if(conn!=null){//关闭连接对象

try{

connclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

在django程序外部使用djangomodels,我给你端示例代码你看看:

fromdjangocoremanagementimportsetup_environ

importQBsettings

setup_environ(QBsettings)

fromrechargemodelsimportOrder,QB是我的project名称,recharge是我的app名称

备份数据库

使用mysqldump命令备份数据库

复制代码代码如下:

# 如果要将game数据库进行备份:

mysqldump -u root -p game > game_backupsql

# 如果希望备份所有的数据库:

mysqldump -u root -p --all-databases > all_backupsql

还原数据库

1、使用mysql命令还原数据库

将game_backupsql 还原至 game 数据库:

复制代码代码如下:

mysql -u root -p game < game_backupsql

2、使用source命令还原数据库

如果数据库过大,建议可以使用source命令

复制代码代码如下:

mysql> source game_backupsql

打开SQL Server2008,在登录窗口中输入或选择你要登录的服务器(此处为PC201404091753\SQLSERVER),选择身份验证,若是SQL Server身份验证则要求有正确的用户名及密码,然后点击连接按钮登录服务器。

2

/5

进入SQL Server2008主界面,点击左上角的新建查询,

3

/5

将会d出新建查询代码书写区,

4

/5

在代码书写区中输入你的正确的建库及建表代码,然后点击代码书写区左上角的执行即可。

5

/5

若你的数据库中已存在同名的数据库或在同一个数据库中已存在同名的表,那么将会提示你已存在同名的数据库或表,如下图所示:若没有重复的,则会提示你命令已成功执行。

PHP开始~

将php-521-Win32zip解压到准备用于安装PHP的目录,这里我就解压到D:>

用记事本打开phpini,查找以下几行:

;extension=php_gd2dll

;extension=php_mcryptdll

;extension=php_mysqldll

去掉前面的分号这样做的目的是让php加载mcrypt和mysql等各种模块,在需要的时候可以随时配置;

其他的比如

post_max_size=8M

upload_max_filesize=2M

都可以按实际情况进行设置

最后保存,也不需要复制任何文件到系统目录,这样PHP基本上就OK了!

MySQL

1、安装

解压mysql-523-falcon-alpha-win32zip得到一个setupexe安装文件,运行之开始安装MySQLServer52;

第一步选择安装模式,选择Custom习惯安装,Next进入下一步;

这一步选择安装内容:仍然MySQLServer完整安装,主要是自定义下面的安装目录,我安装在D:>

Install开始安装,稍候会提示注册MySQL帐户,SKIP即可;

完成安装,勾选ConfiguretheMySQLServernow,Finish并进入MySQL配置;

2、配置

完成安装时若勾选了ConfiguretheMySQLServernow,点击Finish便可直接进入MySQLServerInstanceWizard;否则就需要在MySQL安装目录in下找到并运行exe进入设置

点Next开始配置,第一步选择配置模式,这里我已经安装了MySQL,所以选择第一种Detailed模式,Next进入下一步;

这一步selectaservertype,不同的选择决定MySQL占用不同的系统内存和CPU资源,这里我选的是DeveloperMachine;

继续Next,选择数据库用途,我选的是多功能型的;

下一步设定InnoDB引擎的存储目录,我设置的是D:>

设置MySQL数据库的并发连接数,这里需要了解什么是并发连接数,可根据实际情况进行设定我这里选的是ManualSetting,并且设置连接数为10000;

Next进入下一步,setthenetworkingoptions,采用默认的,继续Next;

设置默认语言,选择第三个,设定character为gbk;

Next将MySQL设置为Windows系统服务,采用默认的,Next进入下一步;

选择设置root帐户密码,或者可以同时新建一个匿名帐户Anonymous值得注意的是设置root密码的下面有一个小选项,是否允许root用户从别的计算机登陆,为了方便可以勾选上,为了安全当然最好就别选;

进入下一步PressExecute开始配置,完成Finish关闭设置向导`~

OK!

以上就是关于mysql如何复制数据到同一张表全部的内容,包括:mysql如何复制数据到同一张表、java如何访问数据库(java访问mysql数据库)、django数据库使用(django *** 作mysql数据库)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10173318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存