mysql学习之通过文件创建数据库以及添加数据

转自:http://blog.163.com/wujicaiguai@126/blog/static/170171558201411311547655/

1、# 创建数据库语句

  create database mydb default character set utf8;
# 运用数据库语句

  use mydb;
# 创建表格,这里只简单的创建一张表格
# 设置InnoDB主要是为了事务操作的需要

create table mytable(
   id int primary key auto_increment,
   name varchar(20),
   count int not null
)type=InnoDB;

# cmd进入数据库方法
mysql -u root -p
#输入密码进入mysql命令行
#将以上sql语句放到.sql文件中,并导入数据库,这里是windows方式
#注意:这里路径不能添加引号,只需要直接放到source后即可,否则报错

#source $pathmydb.sql

mysql> source E:mydb.sql
Query OK, 1 row affected (0.00 sec)

Database changed
Query OK, 0 rows affected, 1 warning (0.09 sec)
#describe mytable或者desc mytable检查表格字段是否有误
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | YES  |     | NULL    |                |
| count | int(11)     | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2、#向表格中导入数据或者导出数据
#首先采用.txt文本导入方式
#按照表格字段进行示例如下:
id name count
1 张三 1000
2 李四 500
3 王老虎 100
#将三组数据复制放到新建txt文本中,这么命名为:mydb.txt

mysql> load data infile 'E:mydb.txt' into table mytable
    -> fields terminated by ' ' #表示字段间距
    -> lines terminated by ' '; #表示行间距
Query OK, 3 rows affected (0.03 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0
#由于数据较少这里通过简单的查询可以查看数据导入信息

mysql> select * from mytable;
+----+--------+-------+
| id | name   | count |
+----+--------+-------+
|  1 | 张三       |  1000 |
|  2 | 李四       |   500 |
|  3 | 王老虎      |   100 |
+----+--------+-------+
3 rows in set (0.05 sec)
#由于Id字段是自动增加的,所以这里尝试一下不添加字段
#预编写sql语句:load data local infile 'E:mydb.txt' into table mytable(name,count);
#导入数据为:
赵大 1000
王二小 500
三亚子 100
mysql> load data local infile 'E:mydb.txt' into table mytable(name,count);
Query OK, 3 rows affected (0.07 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0
#查询新数据,这里的方法只适合数据较小的情况
mysql> select * from mytable;
+----+--------+-------+
| id | name   | count |
+----+--------+-------+
|  1 | 张三       |  1000 |
|  2 | 李四       |   500 |
|  3 | 王老虎      |   100 |
|  4 | 赵大      |  1000 |
|  5 | 王二小      |   500 |
|  6 | 三亚子       |   100 |
+----+--------+-------+
6 rows in set (0.00 sec)
#可以看到确实增加了三行数据,而且ID自增。
#这里尝试一下将表中数据导出到txt文件中,这里我们有选择的导出数据,如果全部导出与之类似
#下面方式会报错
select * into outfile 'E:mydb1.txt'
lines terminated by ' '
fields terminated by ' '
from mytable;
#这个地方有一个奇特的现象fields行必须添加到lines上面即如下操作才不会报错:
mysql> select * into outfile 'E:mydb1.txt'
    -> fields terminated by ' ' #在此例中该行可有可无
    -> lines terminated by ' '
    -> from mytable ;
Query OK, 6 rows affected (0.00 sec)
#导出数据并不包括表字段。