约定以下库表及数据
数据库:testBB
数据表:boluochuixue
id | name | age | address |
---|---|---|---|
1 | 菠萝吹雪 | 10 | 洛杉矶 |
1 | 梨花诗 | 12 | 旧金山 |
2 | 陆小果 | 15 | 伯克利 |
4 | 上官子怡 | 10 | 奥克兰 |
MySQL从创建数据库到删库跑路之旅
阅读前必读:千万不要直接复制代码到mysql的shell中,经文章写完后的二次测试后,复制后有些sql语句会很奇怪的增加一些空格,建议手写,加强记忆
1、启动MySQL服务
net start mysql
2、登录MySQL
mysql -uroot -p
3、创建数据库testBB
create database testBB;
4、使用testBB库
use testBB;
5、在数据库testBB里创建数据表boluochuixue
create table boluochuixue(
id int,
name varchar(20),
age int,
address varchar(20)
);
查看以下刚刚创建的boluochuixue表的定义
desc boluochuixue;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| address | varchar(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
6、创建约定的表的数据
insert into boluochuixue
values (1,'菠萝吹雪',10,'洛杉矶'),
(1,'梨花诗',12,'旧金山'),
(2,'陆小果',15,'伯克利'),
(4,'上官子怡',10,'奥克兰');
查看boluochuixue表中所有的数据
select * from boluochuixue;
+------+--------------+------+-----------+
| id | name | age | address |
+------+--------------+------+-----------+
| 1 | 菠萝吹雪 | 10 | 洛杉矶 |
| 1 | 梨花诗 | 12 | 旧金山 |
| 2 | 陆小果 | 15 | 伯克利 |
| 4 | 上官子怡 | 10 | 奥克兰 |
+------+--------------+------+-----------+
7、修改 梨花诗 的id为2,修改 陆小果 的id为3
update boluochuixue set id=2 where name='梨花诗';
update boluochuixue set id=3 where name='陆小果';
验证第七步是否修改成功
select * from boluochuixue;
+------+--------------+------+-----------+
| id | name | age | address |
+------+--------------+------+-----------+
| 1 | 菠萝吹雪 | 10 | 洛杉矶 |
| 2 | 梨花诗 | 12 | 旧金山 |
| 3 | 陆小果 | 15 | 伯克利 |
| 4 | 上官子怡 | 10 | 奥克兰 |
+------+--------------+------+-----------+
4 rows in set (0.00 sec)
结论:修改成功
8、在name字段后添加tel字段
alter table boluochuixue
add tel int
after name;
9、在address字段(最后一个字段后面)添加一个level字段
alter table boluochuixue
add level varchar(20);
验证:用select语句,也可用desc语句查看定义
select * from boluochuixue;
+------+--------------+------+------+-----------+-------+
| id | name | tel | age | address | level |
+------+--------------+------+------+-----------+-------+
| 1 | 菠萝吹雪 | NULL | 10 | 洛杉矶 | NULL |
| 2 | 梨花诗 | NULL | 12 | 旧金山 | NULL |
| 3 | 陆小果 | NULL | 15 | 伯克利 | NULL |
| 4 | 上官子怡 | NULL | 10 | 奥克兰 | NULL |
+------+--------------+------+------+-----------+-------+
4 rows in set (0.01 sec)
10、将所有的level字段都插入数据记录1
update boluochuixue
set level=1 ;
验证:用select语句
select * from boluochuixue;
+------+--------------+------+------+-----------+-------+
| id | name | tel | age | address | level |
+------+--------------+------+------+-----------+-------+
| 1 | 菠萝吹雪 | NULL | 10 | 洛杉矶 | 1 |
| 2 | 梨花诗 | NULL | 12 | 旧金山 | 1 |
| 3 | 陆小果 | NULL | 15 | 伯克利 | 1 |
| 4 | 上官子怡 | NULL | 10 | 奥克兰 | 1 |
+------+--------------+------+------+-----------+-------+
4 rows in set (0.00 sec)
11、特定位置修改tel字段
id | name | tel |
---|---|---|
1 | 菠萝吹雪 | 1001 |
2 | 梨花诗 | 1002 |
3 | 陆小果 | 1003 |
4 | 上官子怡 | 1004 |
update boluochuixue
set tel=1001
where id=1;
update boluochuixue set tel=1002 where id=2;
update boluochuixue set tel=1003 where id=3;
update boluochuixue set tel=1004 where id=4;
验证:用select 语句
+------+--------------+------+------+-----------+-------+
| id | name | tel | age | address | level |
+------+--------------+------+------+-----------+-------+
| 1 | 菠萝吹雪 | 1001 | 10 | 洛杉矶 | 1 |
| 2 | 梨花诗 | 1002 | 12 | 旧金山 | 1 |
| 3 | 陆小果 | 1003 | 15 | 伯克利 | 1 |
| 4 | 上官子怡 | 1004 | 10 | 奥克兰 | 1 |
+------+--------------+------+------+-----------+-------+
4 rows in set (0.00 sec)
12、修改boluochuixue表名(这**太长了),修改为boluo
修改前先看一下,testBB数据库中的所有表
show tables;
+-----------------------+
| Tables_in_testBB |
+-----------------------+
| boluo |
| boluochuixue |
| taobao |
+-----------------------+
3 rows in set (0.00 sec)
发现竟然boluo表已经存在,那就先删掉boluo表,然后再修改boluochuixue为boluo
删除boluo表
drop table boluo;
验证boluo表是否删除
show tables;
+-----------------------+
| Tables_in_testBB|
+-----------------------+
| boluochuixue |
| taobao |
+-----------------------+
2 rows in set (0.00 sec)
结果:已经删除了boluo表
修改boluochuixue为boluo
alter table boluochuixue
rename boluo;
验证:是否修改成功
show tables;
+-----------------------+
| Tables_in_testBB |
+-----------------------+
| boluo |
| taobao |
+-----------------------+
2 rows in set (0.00 sec)
13、查看一下表的详细定义
show create table boluo;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| boluo | CREATE TABLE `boluo` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`tel` int(11) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`address` varchar(20) DEFAULT NULL,
`level` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
14、修改tel字段为phone
alter table boluo
change tel phone int(12);
检验:desc boluo;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| phone | int(12) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| address | varchar(20) | YES | | NULL | |
| level | varchar(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
结论:tel字段修改为phone成功
15、删除address字段信息(家庭住址太私密了,删掉)
alter table boluo
drop address;
检验:用select或desc都可以
select * from boluo;
+------+--------------+-------+------+-------+
| id | name | phone | age | level |
+------+--------------+-------+------+-------+
| 1 | 菠萝吹雪 | 1001 | 10 | 1 |
| 2 | 梨花诗 | 1002 | 12 | 1 |
| 3 | 陆小果 | 1003 | 15 | 1 |
| 4 | 上官子怡 | 1004 | 10 | 1 |
+------+--------------+-------+------+-------+
4 rows in set (0.00 sec)
结论:删除address字段成功
16、删除名字叫菠萝吹雪这个人的信息
delete from boluo
where name='菠萝吹雪';
检验:用select语句
select * from boluo;
+------+--------------+-------+------+-------+
| id | name | phone | age | level |
+------+--------------+-------+------+-------+
| 2 | 梨花诗 | 1002 | 12 | 1 |
| 3 | 陆小果 | 1003 | 15 | 1 |
| 4 | 上官子怡 | 1004 | 10 | 1 |
+------+--------------+-------+------+-------+
3 rows in set (0.00 sec)
检验:菠萝吹雪这条信息被成功删除
17、删除boluo表
drop table boluo;
检验:查看所有表
+-----------------------+
| Tables_in_testBB |
+-----------------------+
| taobao |
+-----------------------+
1 row in set (0.00 sec)
18、删除testBB数据库
drop database testBB;
19、退出mysql
exit
20、退出MySQL服务
net stop mysql