數據庫
一、創建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)