`
lzj0470
  • 浏览: 1264610 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MYSQL 创建表

阅读更多

create table T_ZST(
  id int(4) NOT NULL AUTO_INCREMENT UNIQUE,
  product_name varchar(50) NOT NULL,
  product_type varchar(50) NOT NULL,
  product_country varchar(50) NOT NULL,
  product_minimum_price  varchar(50),
  product_maximum_price varchar(50),
  product_staple_price varchar(50),
  product_info_from varchar(50) NOT NULL,
  product_business_time varchar(50)
);

 
MYSQL三种插入方式对比:单条插入、LOAD DATA、存储过程
以下为引用的内容:
数据库SQL文件:
/*source F:/mysqlTest/mysqlInsertTest/src/db.sql*/

drop database if exists testInsert;

create database testInsert;

use testInsert;

drop table if exists insertTB;

create table insertTB(id int primary key, username varchar(20));


数据库属性:
package com.ys.db.init;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public abstract class DBProperty {

private static String FILE_NAME = "db.properties";

static {
InputStream in = DBProperty.class.getResourceAsStream(FILE_NAME);
Properties p = new Properties();
try {
p.load(in);
driverClass = p.getProperty("driverClass");
url = p.getProperty("url");
username = p.getProperty("username");
password = p.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}

public static String driverClass = "com.mysql.jdbc.Driver";
public static String url = "jdbc:mysql://localhost:3306/testInsert";
public static String username = "root";
public static String password = "wq3892961";
}

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/testInsert
username=root
password=wq3892961

数据源:
package com.ys.db.init;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import com.ys.db.init.DBProperty;

public class DataSource {

protected DataSource() {
try {
System.out.println("driverClass:" + DBProperty.driverClass);
Class.forName(DBProperty.driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

public Connection getConnection() {
try {
System.out.println("url:" + DBProperty.url);
System.out.println("username:" + DBProperty.username);
System.out.println("password:" + DBProperty.password);
return DriverManager.getConnection(DBProperty.url,
DBProperty.username, DBProperty.password);
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
} 
 

   普通的每条插入:

  

package com.ys.db.init;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class TestInsert1 {

public static void main(String[] args) {
DataSource d = new DataSource();
Connection connection = d.getConnection();
try {
Statement createStatement = connection.createStatement();
long start = System.currentTimeMillis();
for (long i = 0; i < 100000; i++) {
createStatement.execute("insert into insertTB values(" + i
+ ", 'username')");
}
long end = System.currentTimeMillis();
System.out.println((end - start) / 1000);
createStatement.close();
connection.close();
// 123秒
} catch (SQLException e) {
e.printStackTrace();
}
}
}
消耗了123秒

 LOAD DATA指令:
首先需要生成数据文件,要100000条,作为程序员的我们怎么可以是复制呢?自己编写呗!

package com.ys.db.init;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class GInert {

public static void main(String args[]) {
try {
File f = new File("./src/i.sql");
if (!f.exists()) {
f.createNewFile();
}
FileOutputStream out = new FileOutputStream(f, true);
for (long i = 0; i < 100000; i++) {
out
.write((i + "\tusername\r\n")
.getBytes());
}
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
测试类:
package com.ys.db.init;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class TestInsert2 {

public static void main(String[] args) {
DataSource d = new DataSource();
Connection connection = d.getConnection();
Statement createStatement = null;
try {
createStatement = connection.createStatement();
String sql = "Load Data InFile 'F:/mysqlTest/mysqlInsertTest/src/i.sql' Into Table

`insertTB`";
long start = System.currentTimeMillis();
createStatement.execute(sql);
long end = System.currentTimeMillis();
System.out.println((end - start) / 1000);
createStatement.close();
connection.close();
// 0秒
} catch (SQLException e) {
e.printStackTrace();
}
}
}

仅仅需要0秒!

存储过程:
新建存储过程
delimiter //
CREATE PROCEDURE idata()
BEGIN
DECLARE a INT;
SET a = 1;
WHILE a < 100000 DO
INSERT INTO insertTB VALUES(a, 'username');
SET a = a + 1;
END WHILE;
END;//

测试类:
package com.ys.db.init;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class TestInsert3 {

public static void main(String[] args) {
DataSource d = new DataSource();
Connection connection = d.getConnection();
Statement createStatement = null;
try {
createStatement = connection.createStatement();
String sql = "call idata();//";
long start = System.currentTimeMillis();
createStatement.execute(sql);
long end = System.currentTimeMillis();
System.out.println((end - start) / 1000);
createStatement.close();
connection.close();
//
} catch (SQLException e) {
e.printStackTrace();
}
}
} 

 也只是使用了0秒

从上可知道,存储过程和LOAD DATA都会比单条语句的插入快的多!


和 Load Data InFile 相反的是
Select * From `TableTest` Into OutFile 'C:/Data_OutFile.txt';

 

注意一点,要生成文本文件的时候,字段之间有一个制表符\t,例如,

"\t6\t5\t1\t1.8\t1.8\t1.8\t7\t9\r\n"

分享到:
评论

相关推荐

    mysql创建表源码.zip

    "mysql创建表源码.zip"这个压缩包可能包含了一些示例代码或脚本,用于演示如何在MySQL中创建表。下面将详细讨论MySQL创建表的相关知识。 首先,我们需要了解SQL(结构化查询语言),这是与数据库交互的标准语言。在...

    mysql创建表方法.zip

    mysql创建表 MySQL 创建表是一个基础的数据库操作,它涉及到定义表的结构,包括列名、数据类型、约束等。下面我将详细解释如何在 MySQL 中创建表,并给出一个完整的例子。 • 表名:你想要创建的表的名称。 • ...

    如何在MySQL创建表!(秒懂)

    mysql创建表**如何在MySQL中创建表:小学生也能掌握的SQL魔法** **内容概要:** 本文为您详细介绍了如何在MySQL中使用SQL语言创建表,旨在帮助初学者掌握基本的SQL知识和数据库操作。内容涵盖MySQL的定义、创建表的...

    mysql创建表项目实例.zip

    mysql创建表 mysql创建表项目实例.zipmysql创建表项目实例.zipmysql创建表项目实例.zipmysql创建表项目实例.zipmysql创建表项目实例.zipmysql创建表项目实例.zip

    MySQL创建表4.sql

    MySQL创建表4.sql

    mysql创建表的sql语句详细总结

    mysql创建表的sql语句 mysql建表常用sql语句: 连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录...

    mysql创建表、修改表、加索引语句汇总

    mysql创建表、修改表、加索引语句汇总

    mysql.rar_mysql创建表

    在MySQL中,创建表是数据库设计的基础步骤,用于定义数据结构并存储数据。本篇文章将详细探讨MySQL中创建表的相关知识。 一、创建数据库 在MySQL中,我们首先需要创建一个数据库来存放我们的数据。可以使用`CREATE ...

    Shell创建MySQL数据表

    完整的`create_table.sh`脚本可能就是这样把创建表的命令包装起来的。 除了Shell脚本,你提供的`create_table_sct_Province.sql`文件可能是一个独立的SQL脚本,专门用于创建特定的`Province`表。这种情况下,你可以...

    mysql创建表(详解mysql的建表方法).docx

    在MySQL中,创建表是构建数据库结构的基本操作,它允许我们定义数据的存储方式和规则。本篇文章将详细讲解如何在MySQL中创建表,并重点介绍如何添加和查看表的备注。 首先,创建表通常通过使用`CREATE TABLE`语句...

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    MySql\Mysql创建用户和表.docx

    创建表是数据库管理系统中的重要组成部分,使用 CREATE TABLE 语句可以创建表,语法如下: CREATE TABLE 表名称 ( 列名称 数据类型, 列名称 数据类型, ... ); 例如,创建一个名为 employee 的表: CREATE ...

    在 MySQL 数据库中创建表

    mysql创建表

    mysql创建数据表 家庭作业

    MySQL 创建数据表 家庭作业 MySQL 是一个流行的关系型数据库管理系统,创建数据表是 MySQL 中最基本也是最重要的操作之一。本文将介绍如何使用 MySQL 创建数据表,并对创建的表进行基本操作。 创建数据库 在创建...

    MySQL中创建表的详细指南.txt

    mysql创建表

    MySQL分区表自动创建及删除存储过程

    MySQL分区表是一种优化大型数据表查询效率的技术,它将一个大表分成多个逻辑上相连但物理上独立的部分,每个部分称为一个分区。分区可以按照不同的策略进行,如范围、哈希、列表或复合分区。这样做有助于提高数据...

    C#操作Mysql创建数据库,数据表,增、删、改数据

    以上就是使用C#操作Mysql创建数据库、数据表以及执行CRUD操作的基本步骤。在实际项目中,我们还需要考虑错误处理、事务管理以及优化性能等方面。在源码文件中,可能包含了完整的C#类和方法,展示了这些操作的具体...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    学生可以使用 CREATE TABLE 语句创建表,也可以使用 MySQL Workbench 创建表。创建表时,学生需要指定字段类型、主键约束、外键约束等。 知识点 5:表设计 在创建表时,学生需要设计表结构,包括字段类型、主键...

    在 MySQL数据库中创建数据库和表

    mysql创建表

Global site tag (gtag.js) - Google Analytics