从linux终端插入mysql

时间:2013-05-19 01:55:15

标签: mysql linux bash

我有一个问题。我可以使用这个命令从linux终端插入mysql数据库:

mysql dbTest insert into tablename values(1,"b","c")

现在我在Linux中有一个带有一些记录的文件  例如:

$cat file

2, "c", "e"
3, "r", "q"
4, "t", "w"
5, "y", "e"
6, "u", "r"
7, "g", "u"
8, "f", "j"
9, "v", "k"

我不知道如何将所有记录从linux终端插入到mysql数据库的文件中。

我打算使用bash文件,但我不知道=(

5 个答案:

答案 0 :(得分:2)

您可以使用sed创建自定义sql文件。

从终端执行以下代码:

sed 's/\(^[0-9]*, [a-z]*, [a-z]*$\)/INSERT INTO tablename VALUES(\1);/g' source_file > sql_script.sql

您可以轻松使用source命令插入记录。

$ mysql -u mysqlusername -p -h host
Enter password: your_secret_password

Mysql > use yourdatabasename
Mysql > source sql_script.sql

答案 1 :(得分:2)

进行一系列插入不是性能方面的最佳选择。由于您的输入数据以CSV格式存在,因此您最好不要像@Kevin建议的那样bulk load

mysql dbTest -e "LOAD DATA INFILE './file' INTO TABLE tablename FIELDS TERMINATED BY ','"

答案 2 :(得分:0)

使用awk你可以使用现有文件并从bash本身插入值:

awk 'BEGIN {print "mysql -u root -p dbTest << EOF"} {print "insert into tablename values (" $0 ");"} END {print "EOF"}' file |bash -v

答案 3 :(得分:0)

mysql -e“使用databasename;插入TABLENAME值('POST',........);”

答案 4 :(得分:0)

  1. 安装Mysql:

    sudo apt-get install mysql-server
    
  2. 转到Mysql shell:

    mysql -u root -p 
           password:****** 
    
  3. 显示数据库(如果已存在):

    show databases; 
    
  4. 创建数据库:

    create database employees;
    
  5. 访问创建的数据库:

    use employees;</code>
    
  6. 创建一个表格(注意&#34;``&#34;&#34; " : use acute签到每个字段):

    create table `employees`( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(64) DEFAULT NULL,`last_name` varchar(64) DEFAULT NULL, `email` varchar(64) DEFAULT NULL, `department` varchar(64) DEFAULT NULL, `salary` DECIMAL(10,2) DEFAULT NULL, PRIMARY KEY(`id`)) 
    ENGINE = InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET = latin1;
    
  7. 向表格添加信息:

    INSERT INTO `employees` (`id`,`first_name`,`last_name`,`email`,`department`,`salary`) 
    VALUES (1, 'Sumanta','Silwal','sumantasilwal10@gmail.com','Computer Design', '5000.00'); 
    
  8. 查看已创建的故事:

    select * from employees;
    
  9. 注意:使用&#34;`&#34;在每个字段中签名,例如employees,id,first_name,last_name,email,department和salary。

    **享受编码。