创建并使用数据库
使用SHOW语句找出服务器上当前存在什么数据库
SHOW DATABASES;
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db_nenu_jysj |
| db_study |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
mysql>
mysql数据库是必需的,因为他描述用户访问权限。
if(没有SHOW DATABASES权限){
不能看见所有数据库;
}
尝试访问存在的数据库
USE db_study
mysql> USE db_study;
Database changed
mysql>
注意:USE跟QUIT类似 不需要分号(;) 结束,养成习惯写上也行。USE 必须在一行上执行。
错误示例:
mysql> USE
ERROR:
USE must be followed by a database name
mysql>
我想创建一个数据库
CREATE DATABASE test;
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.00 sec)
mysql>
我现在能创建数据库、选择数据库了,但是数据库里面要有一些表才行啊,NULLNULL的数据库系不行の。
查看数据库中的表
SHOW TABLES;
mysql> SHOW TABLES;
Empty set (0.00 sec)
mysql>
创建一个表
书上的栗子,从前有一个宠物的表(pet) 有这些字段:名字(name)、主人(owner)、种类(species)、性别(sex)、出生(birth)和死亡日期(death)。
mysql> CREATE TABLE pet(
-> name VARCHAR(20),
-> owner VARCHAR(20),
-> species VARCHAR(20),
-> sex CHAR(1),
-> birth DATE,
-> death DATE);
Query OK, 0 rows affected (0.26 sec)
mysql>
至于这些字段用什么样子的数据类型,你可以百度一下mysql的数据类型。
现在我SHOW一下 应该是有一个表的
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| pet |
+----------------+
1 row in set (0.00 sec)
mysql>
为了验证你的表是按照期望的方式创建的,使用一个DESCRIBE语句
DESCRIBE pet;
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql>
其实可以简写成:
DESC pet;
*<(´・ω・)っ由
现在我们,创建了数据库,在数据库里面创建了一个表(pet) 我们要往里面插入数据了。
LOAD DATA
添加数据有一个简易(我不会、嫌麻烦)的方法:
创建一个文本文件"pet.txt",每行写一个记录,对于没法确定的值(比如说死亡日期,性别)可以使用NULL 在文本中用 N 表示。
然后用下面的命令:(我把这个文本文件放到了C盘下面,这里演示的是Windows用户 在运行OS X的Apple机上,应使用行结束符' '。)
mysql> LOAD DATA LOCAL INFILE 'C:/pet.txt' INTO TABLE pet
-> LINES TERMINATED BY '
';
Query OK, 1 row affected (0.23 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from pet;
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+-------+
1 row in set (0.00 sec)
mysql>
LOAD DATA语句是多么的简易(麻烦)啊,注意你安装的Mysql可能与默认的本地文件不兼容(GG).
INSERT
其实还有一种方法就是INSERT 语句增加一条记录
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Query OK, 1 row affected (0.16 sec)
mysql> select * from pet;
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
2 rows in set (0.00 sec)
mysql>
INSERT语句中NULL代表不存在的值,不能用N表示。