mysql_語法總結

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    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set

 

 

我們增加瞭birthday字段,並且類型為date類型。

 

現在我們需要刪除birthday字段:

 

mysql> alter table student drop column birthday;
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

 

 

說明刪除成功!

 

現在向student表中插入數據:

 

mysql> insert into student values(1,'hongten',20);
Query OK, 1 row affected
mysql> insert into student(id,name,age) values(2,'hanyuan',30);
Query OK, 1 row affected

 

這兩中方式,都是向student表中插入數據,第一種方式沒有寫出字段名稱,而後面的值是所有字段的值。

 

而第二種方式是把字段都寫瞭出來,後面跟的是字段對於的值。

 

現在查詢student表:

 

 

mysql> select * from student;
+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  1 | hongten |  20 |
|  2 | hanyuan |  30 |
+----+---------+-----+
2 rows in set

 

 

可以看出我們剛才插入的兩組數據已經保存到資料庫中瞭,現在對一個字段查詢:

 

 

mysql> select name from student;
+---------+
| name    |
+---------+
| hanyuan |
| hongten |
+---------+
2 rows in set

 

上面隻是針對name字段的查詢;

 

現在進行條件查詢:

 

mysql> select name,age from student where id = 2;
+---------+-----+
| name    | age |
+---------+-----+
| hanyuan |  30 |
+---------+-----+
1 row in set

 

 

針對student表中的name,age查詢,條件是id=2的記錄;

 

現在查詢student表中的記錄總數:

 

 

mysql> select count(*) from student;
+----------+
| count(*) |
+----------+
|        2 |
+----------+
1 row in set

 

 

查詢不同name的student:

 

 

mysql> select distinct(name) from student;
+---------+
| name    |
+---------+
| hanyuan |
| hongten |
+---------+
2 rows in set

 

 

修改id=2的name字段:

 

mysql> update student set name = 'Tom' where id =2;
Query OK, 1 row affected
Rows matched: 1  Changed: 1  Warnings: 0

 

查詢student表:

 

 

mysql> select * from student;
+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  1 | hongten |  20 |
|  2 | Tom     |  30 |
+----+---------+-----+
2 rows in set

 

 

現在刪除id=2 的記錄:

 

mysql> delete from student where id = 2;
Query OK, 1 row affected

mysql> select * from student;
+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  1 | hongten |  20 |
+----+---------+-----+
1 row in set

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。