mysql的操作語句

一、DDL:數據定義語言

1.創建數據庫(create)

mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db              |
| mysql              |
| performance_schema |
| sys                |
| tracing_process    |
| tracing_system     |
+--------------------+
7 rows in set (0.00 sec)

mysql> create database mydb;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db              |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
| tracing_process    |
| tracing_system     |
+--------------------+
8 rows in set (0.00 sec)

2.創建表(create)

切換數據庫
mysql> use mydb;

Database changed
mysql> show tables;
Empty set (0.00 sec)

創建表
mysql> create table mytable(
    -> id int not null primary key,
    -> name varchar(32),
    -> age int,
    -> salary double
    -> );
Query OK, 0 rows affected (0.03 sec)

查看錶是否創建成功
mysql> show tables;

+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
+----------------+
1 row in set (0.00 sec)

查看創建後的表結構
mysql> desc mytable;

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(32) | YES  |     | NULL    |       |
| age    | int(11)     | YES  |     | NULL    |       |
| salary | double      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

更詳細的表結構(可以看到存儲索引ENGINE和字符編碼CHARSET)
mysql> show create table mytable \G;

*************************** 1. row ***************************
       Table: mytable
Create Table: CREATE TABLE `mytable` (
  `id` int(11) NOT NULL,
  `name` varchar(32) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `salary` double DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR:
No query specified



3.複製表結構

mysql> create table mytable2 like mytable;
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
| mytable2       |
+----------------+
2 rows in set (0.00 sec)

mysql> desc mytable2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(32) | YES  |     | NULL    |       |
| age    | int(11)     | YES  |     | NULL    |       |
| salary | double      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

4.刪除(drop)


mysql> show tables;

+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
| mytable2       |
+----------------+
2 rows in set (0.00 sec)

刪除表
mysql> drop table mytable2;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;

+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
+----------------+
1 row in set (0.00 sec)

刪除數據庫
mysql> create database myddb;
Query OK, 1 row affected (0.00 sec)

mysql> drop database myddb;
Query OK, 0 rows affected (0.02 sec)

5.修改操作(alter)

mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| mytable        |
+----------------+
1 row in set (0.00 sec)

修改表名(rename)
mysql> alter table mytable rename mytb;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| mytb           |
+----------------+
1 row in set (0.00 sec)

修改字段屬性(modify)
mysql> alter table mytb modify column name varchar(255);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc mytb;
+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| id     | int(11)      | NO   | PRI | NULL    |       |
| name   | varchar(255) | YES  |     | NULL    |       |
| age    | int(11)      | YES  |     | NULL    |       |
| salary | double       | YES  |     | NULL    |       |
+--------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

修改字段屬性和名稱(change)
mysql> alter table mytb change name name1 varchar(32);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc mytb;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name1  | varchar(32) | YES  |     | NULL    |       |
| age    | int(11)     | YES  |     | NULL    |       |
| salary | double      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

添加字段
mysql> alter table mytb add column address varchar(255);
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc mytb;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | NO   | PRI | NULL    |       |
| name1   | varchar(32)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| salary  | double       | YES  |     | NULL    |       |
| address | varchar(255) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

刪除字段

mysql> alter table mytb drop column address;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc mytb;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name1  | varchar(32) | YES  |     | NULL    |       |
| age    | int(11)     | YES  |     | NULL    |       |
| salary | double      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

二、DML:數據操縱語言

1.添加(insert)

未指定字段,全部添加
mysql> insert into mytb values(1,'123',12,20.0);
Query OK, 1 row affected (0.01 sec)

mysql> select * from mytb;
+----+-------+------+--------+
| id | name1 | age  | salary |
+----+-------+------+--------+
|  1 | 123   |   12 |     20 |
+----+-------+------+--------+
1 row in set (0.00 sec)

指定字段,部分添加
mysql> insert into mytb(name1,age) values ("zhi",20);
Query OK, 1 row affected (0.00 sec)

mysql> select * from mytb;
+----+-------+------+--------+
| id | name1 | age  | salary |
+----+-------+------+--------+
|  1 | 123   |   12 |     20 |
|  2 | zhi   |   20 |   NULL |
+----+-------+------+--------+
2 rows in set (0.00 sec)

添加多條信息
mysql> insert into mytb(name,age,salary) values ("bing",20,2000),("ze",25,3000);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  2 | zhi  |   20 |   NULL |
|  3 | bing |   20 |   2000 |
|  4 | ze   |   25 |   3000 |
+----+------+------+--------+
4 rows in set (0.00 sec)

2.修改(update)

mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  2 | zhi  |   20 |   NULL |
|  3 | bing |   20 |   2000 |
|  4 | ze   |   25 |   3000 |
+----+------+------+--------+
4 rows in set (0.00 sec)


mysql> update mytb set salary=500 where id=2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  2 | zhi  |   20 |    500 |
|  3 | bing |   20 |   2000 |
|  4 | ze   |   25 |   3000 |
+----+------+------+--------+
4 rows in set (0.00 sec)

3.刪除(delete)

mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  2 | zhi  |   20 |    500 |
|  3 | bing |   20 |   2000 |
|  4 | ze   |   25 |   3000 |
+----+------+------+--------+
4 rows in set (0.00 sec)

刪除一條語句
mysql> delete from mytb where id =4;
Query OK, 1 row affected (0.01 sec)

mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  2 | zhi  |   20 |    500 |
|  3 | bing |   20 |   2000 |
+----+------+------+--------+
3 rows in set (0.00 sec)

刪除多條語句
mysql> delete from mytb where id in(2,3);
Query OK, 2 rows affected (0.01 sec)

mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
+----+------+------+--------+
1 row in set (0.00 sec)

4.查詢(select)

查詢所有字段
mysql> select * from mytb;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  5 | bing |   20 |   2000 |
|  6 | ze   |   25 |   3000 |
|  7 | bing |   20 |   2000 |
|  8 | ze   |   25 |   3000 |
+----+------+------+--------+
5 rows in set (0.00 sec)

查詢單個字段
mysql> select name from mytb;
+------+
| name |
+------+
| 123  |
| bing |
| ze   |
| bing |
| ze   |
+------+
5 rows in set (0.00 sec)

去除重複的查詢(distinct必須在查詢字段的首位)
mysql> select distinct name from mytb;
+------+
| name |
+------+
| 123  |
| bing |
| ze   |
+------+
3 rows in set (0.00 sec)

查詢指定範圍的數據(limit:默認從下標0開始,也就是第一條)
mysql> select * from mytb limit 3;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  5 | bing |   20 |   2000 |
|  6 | ze   |   25 |   3000 |
+----+------+------+--------+
3 rows in set (0.00 sec)

mysql> select * from mytb limit 0,3;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  1 | 123  |   12 |     20 |
|  5 | bing |   20 |   2000 |
|  6 | ze   |   25 |   3000 |
+----+------+------+--------+
3 rows in set (0.00 sec)

mysql> select * from mytb limit 1,3;
+----+------+------+--------+
| id | name | age  | salary |
+----+------+------+--------+
|  5 | bing |   20 |   2000 |
|  6 | ze   |   25 |   3000 |
|  7 | bing |   20 |   2000 |
+----+------+------+--------+
3 rows in set (0.00 sec)

5.升序和降序(order by column_name desc/asc,默認asc)

默認升序排列(asc)
mysql> select * from mytb;
+----+--------+------+--------+
| id | name   | age  | salary |
+----+--------+------+--------+
|  1 | 123    |   12 |     20 |
|  5 | bing   |   20 |   2000 |
|  6 | ze     |   25 |   3000 |
|  7 | bing   |   20 |   2000 |
|  8 | ze     |   25 |   3000 |
|  9 | bingze |   20 | 300000 |
+----+--------+------+--------+
6 rows in set (0.00 sec)

指定按照某個字段升序排列(order by xxx asc【可不寫,默認asc】)

mysql> select * from mytb order by salary;
+----+--------+------+--------+
| id | name   | age  | salary |
+----+--------+------+--------+
|  1 | 123    |   12 |     20 |
|  5 | bing   |   20 |   2000 |
|  7 | bing   |   20 |   2000 |
|  6 | ze     |   25 |   3000 |
|  8 | ze     |   25 |   3000 |
|  9 | bingze |   20 | 300000 |
+----+--------+------+--------+
6 rows in set (0.01 sec)

mysql> select * from mytb order by salary asc;
+----+--------+------+--------+
| id | name   | age  | salary |
+----+--------+------+--------+
|  1 | 123    |   12 |     20 |
|  5 | bing   |   20 |   2000 |
|  7 | bing   |   20 |   2000 |
|  6 | ze     |   25 |   3000 |
|  8 | ze     |   25 |   3000 |
|  9 | bingze |   20 | 300000 |
+----+--------+------+--------+
6 rows in set (0.00 sec)


降序排列(order by xxx desc)
mysql> select * from mytb order by salary desc;
+----+--------+------+--------+
| id | name   | age  | salary |
+----+--------+------+--------+
|  9 | bingze |   20 | 300000 |
|  6 | ze     |   25 |   3000 |
|  8 | ze     |   25 |   3000 |
|  5 | bing   |   20 |   2000 |
|  7 | bing   |   20 |   2000 |
|  1 | 123    |   12 |     20 |
+----+--------+------+--------+
6 rows in set (0.00 sec)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章