MySQL數據庫和數據表的增刪查改(curd)

數據庫

一、創建MySQL數據庫:

  • 使用create database 數據庫名稱;創建數據庫:
mysql> create database TEMP;
Query OK, 1 row affected (0.00 sec)
  • 以下方法創建數據庫也以避免數據庫已存在的情況下報錯:
mysql> create database if not exists TEMP;
Query OK, 1 row affected, 1 warning (0.00 sec)
  • 添加charset可以指定數據庫的編碼集(字符集):
mysql> create database if not exists TEMP charset utf8;
Query OK, 1 row affected, 1 warning (0.00 sec)
  • 使用show create database 數據庫名稱;查看數據庫生成的命令:
mysql> show create database TEMP;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| TEMP     | CREATE DATABASE `TEMP` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)

二、 刪除數據庫

使用drop database 數據庫名稱; 刪除指定的數據庫:

mysql> drop database TEMP;
drop database TEMP;

三、 選擇數據庫

在對數據表進行操作前,需要先指定使用的數據庫:

mysql> use TEMP;
Database changed

使用select databse();查看當前選擇的數據庫(不要漏了小括號):

mysql> select database();
+------------+
| database() |
+------------+
| TEMP       |
+------------+
1 row in set (0.00 sec)

四、 查看所有數據庫

使用show databses;展示當前所有的數據庫:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| TEMP               |
| performance_schema |
| sys                |
| utf8_data_demo     |
+--------------------+
12 rows in set (0.00 sec)

數據表

一、 查看當前使用的數據庫中的所有數據表

使用show tables;查看當前數據庫的所有數據表:

mysql> show tables;
Empty set (0.00 sec)

Empty表示當前數據庫沒有數據表

二、 創建數據表

使用create table 數據表名稱 (字段 類型 約束,字段 類型 約束,……)創建數據表:

mysql> create table student (id int primary key,name varchar(20) not null);
Query OK, 0 rows affected (0.03 sec)

三、 查看數據表的創建命令

使用show create table 數據表名稱;查看數據表的生成命令:

mysql> show create table student;
+---------+-------------------------------------------------+
| Table   | Create Table                |
+---------+-------------------------------------------------+
| student | CREATE TABLE `student` (
  `id` int(11) NOT NULL,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+---------+-------------------------------------------------+
1 row in set (0.00 sec)

四、 查看數據表的結構

使用desc 數據表名稱查看數據表的結構:

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id       | int(11)    | NO    | PRI | NULL     |            |
| name  | varchar(20) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

五、 修改數據表的結構

  • 使用alter table 數據表名稱 add 字段 類型 約束;爲數據表添加字段:
mysql> alter table student add age tinyint default 18;
Query OK, 0 rows affected (0.04 sec)
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   |     | NULL    |       |
| age   | tinyint(4)  | YES  |     | 18      |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • 使用alter table 數據表名稱 change 數據表名稱 字段 類型 約束;對數據表的字段進行修改並重命名
mysql> alter table student change name username varchar(30) default 'abc';
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| username | varchar(30) | YES  |     | abc     |       |
| age      | tinyint(4)  | YES  |     | 18      |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • 使用alter table 數據表名稱 modify 字段 類型 約束;對數據表字段的結構進行修改
mysql> alter table student modify username varchar(20) default '建國';
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| username | varchar(20) | YES  |     | 建國    |       |
| age      | tinyint(4)  | YES  |     | 18      |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • 使用alter table 數據表名稱 drop 字段對數據表的字段進行刪除
mysql> alter table student drop username;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc student;
+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| id    | int(11)    | NO   | PRI | NULL    |       |
| age   | tinyint(4) | YES  |     | 18      |       |
+-------+------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

六、 向數據表插入數據

  • 使用insert into 數據表名稱 values (字段對應數據,字段對應數據,……)向數據表插入數據:
mysql> insert into student values(1, 20);
Query OK, 1 row affected (0.01 sec)

主鍵可以爲0,或者NULL

  • 多行插入使用insert into 數據表名稱 values (數據,數據,……),(數據,數據,……)

  • 使用insert into 數據表名稱 (字段名稱,……) values (字段對應數據,……)向數據表插入數據,區別在於不需要填寫所有字段的數據,前提是未填寫的字段有默認值或者自增(auto_increment):

mysql> insert into student (age) values (24);
ERROR 1364 (HY000): Field 'id' doesn't have a default value

ysql> alter table student modify id int auto_increment;
Query OK, 1 row affected (0.06 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into student (age) values (24);
Query OK, 1 row affected (0.01 sec)

七、 修改數據表數據

使用update 數據表名稱 set 字段1=值1,字段2=值2 where 條件;對數據進行修改:

mysql> select * from student;
+----+------+
| id | age  |
+----+------+
|  1 |   20 |
|  2 |   24 |
+----+------+
2 rows in set (0.00 sec)

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

mysql> select * from student;
+----+------+
| id | age  |
+----+------+
|  1 |   20 |
|  2 |   30 |
+----+------+
2 rows in set (0.00 sec)

八、 刪除數據表的數據

使用delete from 數據表名稱 where 條件;刪除指定的數據:

mysql> select * from student;
+----+------+
| id | age  |
+----+------+
|  1 |   20 |
|  2 |   30 |
+----+------+
2 rows in set (0.00 sec)

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

mysql> select * from student;
+----+------+
| id | age  |
+----+------+
|  1 |   20 |
+----+------+
1 row in set (0.00 sec)

九、 查詢數據表的數據

使用select * from 數據表 where 條件查詢數據,顯示所有字段:

mysql> select * from student;
+----+------+
| id | age  |
+----+------+
|  1 |   20 |
|  3 |   23 |
|  4 |   21 |
|  5 |   28 |
+----+------+
4 rows in set (0.00 sec)

使用select 字段名稱,字段名稱…… from 數據表 where 條件查詢數據,顯示指定的字段:

mysql> select age from student;
+------+
| age  |
+------+
|   20 |
|   23 |
|   21 |
|   28 |
+------+
4 rows in set (0.00 sec)

在字段後添加as 可以爲字段起別名:

mysql> select id as 序號,age as 年齡 from student;
+--------+--------+
| 序號   | 年齡   |
+--------+--------+
|      1 |     20 |
|      3 |     23 |
|      4 |     21 |
|      5 |     28 |
+--------+--------+
4 rows in set (0.00 sec)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章