mysql_语法总结(一)

2014-11-24 11:38:17 · 作者: · 浏览: 0
mysql_语法总结
环境:mysql 5.5
创建 数据库test:
1 create database test;

我们执行代码就可以创建test数据库了,如果想要查看我们是否创建好了数据库test,我们可以通过一下代码查看 mysql中的所有数据库
show databases;

在我机器上面查询出来的是:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| drp                |
| duona              |
| expert             |
| jeecgv3            |
| mysql              |
| performance_schema |
| sample             |
| test               |
| test_uuuu_test     |
+--------------------+
10 rows in set

我们可以看到,在数据库中我们已经创建好了test数据库了。
现在我们就选定了test数据库了,接下来如果我们希望删除test数据库,我们只需要使用下面的sql语句即可:
mysql> drop database test;
Query OK, 0 rows affected

现在我们再次查询mysql中所有的数据库情况:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| drp                |
| duona              |
| expert             |
| jeecgv3            |
| mysql              |
| performance_schema |
| sample             |
| test_uuuu_test     |
+--------------------+
9 rows in set

可以发现,test数据库已经被我们删除。
//回到test没被删除的状态
现在我们需要操作test数据库,我们可以使用下面代码,选择数据库test:
mysql> use test;
Database changed

我们需要查看test数据库中现在有多少张表,可以使用:
mysql> show tables;
Empty set

我们可以清楚的看到,现在test中是没有任何表的。
那么现在我们就往里面添加一张表吧!
mysql> create table student(id int not null primary key,name varchar(20) not null unique);
Query OK, 0 rows affected

我们往test数据库中添加了一张student表,表中有id,name字段。
现在再看一下test中的表情况:
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student        |
+----------------+
1 row in set

你会发现,现在增加了student表了。
我们也可以看看student的表机构情况:
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | NO   | UNI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set

所以对于上面的创建student表的sql语句的大概意思你可以猜出来了吧:
student表有id,name两个字段,对于id字段,类型是int整形,mysql默认长度是11,id字段不能为null,即不能为空,id字段为主键,即primary key,没有默认值
对于name字段,和id字段差不多,类型为varchar类型,长度为20,不能为空,在表中时唯一的(unique,在同一个表中不能出现相同的值),没有默认值
现在我们想在student表中增加一个字段age,类型为int类型:
mysql> alter table student add age int;
Query OK, 0 rows affected
Records: 0  Duplicates: 0  Warnings: 0

我们再看看表的结构:
mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(20) | NO   | UNI | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set

说明我们确实是增加了age这个字段。
现在我们需要增加生日birthday字段,类型为date类型:
mysql> alter table student add birthday date;
Query OK, 0 rows affected
Records: 0  Duplicates: 0  Warnings: 0

我们查看student表结构:
mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | NO   | UNI | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+--