用MySQL创建数据库和数据库表

1、使用SHOW语句找出在服务器上当前存在什么数据库: 

[sql]  view plain copy
  1. mysql> SHOW DATABASES;   
  2. +--------------------+   
  3. Database           |   
  4. +--------------------+   
  5. | information_schema |   
  6. | db_bxiqi           |   
  7. | flexdb             |   
  8. | house_rent_ms      |   
  9. | mysql              |   
  10. | test               |   
  11. +--------------------+   
  12. rows in set            


2、创建一个数据库cookbook

[sql]  view plain copy
  1. mysql> CREATE DATABASE cookbook;  
  2. Query OK, 1 row affected  


3、选择你所创建的数据库

[sql]  view plain copy
  1. mysql> USE cookbook;  
  2. Query OK, 0 rows affected  


4、 创建一个数据库表 
首先看现在你的数据库中存在什么表:

[html]  view plain copy
  1. mysql> SHOW TABLES;  
  2. Empty set  

说明刚才建立的数据库中还没有数据库表。

下面来创建一个数据库表mytable:   我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。

[html]  view plain copy
  1. mysql> CREATE TABLE mytable (  
  2.     -> id int primary key auto_increment,  
  3.     -> name varchar(20),  
  4.     -> sex char(1),  
  5.     -> birth date,  
  6.     -> birthaddr varchar(20));  
  7. Query OK, 0 rows affected  

由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);birth列则使用DATE数据类型。 
创建了一个表后,我们可以看看刚才做的结果,用SHOW TABLES显示数据库中有哪些表:

[html]  view plain copy
  1. mysql> show tables;  
  2. +--------------------+  
  3. | Tables_in_cookbook |  
  4. +--------------------+  
  5. | mytable            |  
  6. +--------------------+  
  7. 1 row in set  


5、显示表的结构:

[html]  view plain copy
  1. mysql> DESCRIBE mytable;  
  2. +-----------+-------------+------+-----+---------+----------------+  
  3. | Field     | Type        | Null | Key | Default | Extra          |  
  4. +-----------+-------------+------+-----+---------+----------------+  
  5. | id        | int(11)     | NO   | PRI | NULL    | auto_increment |  
  6. | name      | varchar(20) | YES  |     | NULL    |                |  
  7. | sex       | char(1)     | YES  |     | NULL    |                |  
  8. | birth     | date        | YES  |     | NULL    |                |  
  9. | birthaddr | varchar(20) | YES  |     | NULL    |                |  
  10. +-----------+-------------+------+-----+---------+----------------+  
  11. 5 rows in set  

 

6、 往表中加入记录 
我们先用SELECT命令来查看表中的数据:

[html]  view plain copy
  1. mysql> select * from mytable;  
  2. Empty set  

这说明刚才创建的表还没有记录。 加入一条新记录:

[html]  view plain copy
  1. mysql> insert into mytable (name,sex,birth,birthaddr) values  
  2.     -> ('GongQiang', 'm', '1987-04-02', 'china');  
  3. Query OK, 1 row affected  

再用上面的SELECT命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。

[html]  view plain copy
  1. mysql> select * from mytable;  
  2. +----+-----------+-----+------------+-----------+  
  3. | id | name      | sex | birth      | birthaddr |  
  4. +----+-----------+-----+------------+-----------+  
  5. |  1 | GongQiang | m   | 1987-04-02 | china     |  
  6. +----+-----------+-----+------------+-----------+  
  7. 1 row in set  


7、用文本方式将数据装入一个数据库表 
如果一条一条地输入,很麻烦。我们可以用文本文件的方式将所有记录加入你的数据库表中。

创建一个文本文件“mysql_mytable_data.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATE TABLE语句中列出的列次序给出,例如

[plain]  view plain copy
  1. abccs   f   1977-07-07  china     
  2. mary    f   1978-12-12  usa   
  3. tom m   1970-09-02  usa   

使用下面命令将文本文件“mysql_mytable_data.txt”装载到mytable表中

[html]  view plain copy
  1. mysql> load data local infile "d:/mysql_mytable_data.txt" into table mytable;  
  2. Query OK, 3 rows affected  
  3. Records: 3  Deleted: 0  Skipped: 0  Warnings: 9  

再用上面的SELECT命令看看发生了什么变化。

[sql]  view plain copy
  1. mysql> select * from mytable;  
  2. +----+-----------+-----+------------+-----------+  
  3. | id | name      | sex | birth      | birthaddr |  
  4. +----+-----------+-----+------------+-----------+  
  5. |  1 | GongQiang | m   | 1987-04-02 | china     |  
  6. |  2 | f         | 1   | 0000-00-00 | NULL      |  
  7. |  3 | f         | 1   | 0000-00-00 | NULL      |  
  8. |  4 | m         | 1   | 0000-00-00 | NULL      |  
  9. +----+-----------+-----+------------+-----------+  
  10. rows in set  

为什么会错误呢?birth 和 birthaddr 的值都没正确添加进去!

原来是文件的数据格式有问题:id 列虽然是自增的,但是依然要为其空出一列(即,一个tab)!文本文件“mysql_mytable_data.txt”,格式如下:

[html]  view plain copy
  1. abccs   f   1977-07-07  china  
  2. mary    f   1978-12-12  usa  
  3. tom m   1970-09-02  usa  

select 查看结果:

[sql]  view plain copy
  1. mysql> select * from mytable;  
  2. +----+-----------+-----+------------+-----------+  
  3. | id | name      | sex | birth      | birthaddr |  
  4. +----+-----------+-----+------------+-----------+  
  5. |  1 | GongQiang | m   | 1987-04-02 | china     |  
  6. |  2 | f         | 1   | 0000-00-00 | NULL      |  
  7. |  3 | f         | 1   | 0000-00-00 | NULL      |  
  8. |  4 | m         | 1   | 0000-00-00 | NULL      |  
  9. |  5 | f         | 1   | 0000-00-00 | NULL      |  
  10. |  6 | f         | 1   | 0000-00-00 | NULL      |  
  11. |  7 | m         | 1   | 0000-00-00 | NULL      |  
  12. |  8 | abccs     | f   | 1977-07-07 | china     |  
  13. |  9 | mary      | f   | 1978-12-12 | usa       |  
  14. | 10 | tom       | m   | 1970-09-02 | usa       |  
  15. +----+-----------+-----+------------+-----------+  
  16. 10 rows in set  



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值