第6节-MySQL表增、删、改

1、测试表结果

create table student(
    sno varchar(20) primary key,
    sname varchar(20),
    sex enum('',''),
    age int,
    sdept varchar(20)
);

2、增

2.1、单条插入

insert into student(sno,sname,sex,age,sdept) values('95001','测试1','',18,'计算机系');
-- 或者 下面字段必须要表格的结构字段排列一致
insert into student values('95002','测试2','',19,'计算机系');

2.2、多条插入

insert into student(sno,sname,sex,age,sdept) values('95003','测试3','',28,'计算机系'),('95004','测试4','',29,'计算机系');

2.3、复制表数据

-- 复制表结构
create table student_copy like student;

-- 查询复制数据
insert into student_copy select * from student;

2.4、使用replace插入数据

-- repalce介绍:使用repalce时,首先尝试插入到数据表中,若检测表中已经有记录(通过主键或唯一约束判断),则先删除此记录,然后再插入新的数据
-- 修改前的数据:
mysql> select * from student;
+-------+---------+------+------+--------------+
| sno   | sname   | sex  | age  | sdept        |
+-------+---------+------+------+--------------+
| 95001 | 测试1   ||   18 | 计算机系     |
| 95002 | 测试2   ||   19 | 计算机系     |
| 95003 | 测试3   ||   28 | 计算机系     |
| 95004 | 测试4   ||   29 | 计算机系     |
+-------+---------+------+------+--------------+

replace into student(sno,sname,sex,sdept) values('95003','测试3','','计算机系');

-- 修改后的数据:
mysql> select * from student;
+-------+---------+------+------+--------------+
| sno   | sname   | sex  | age  | sdept        |
+-------+---------+------+------+--------------+
| 95001 | 测试1   ||   18 | 计算机系     |
| 95002 | 测试2   ||   19 | 计算机系     |
| 95003 | 测试3   || NULL | 计算机系     |
| 95004 | 测试4   ||   29 | 计算机系     |
+-------+---------+------+------+--------------+

 

3、改

3.1、修改单列

update student set ssex='' where sno='95001';

 

3.2、修改多列

update student set ssex='',age=25 where sno='95001';

 

3.3、concat函数的使用

-- 主要作用是链接字符串,这里sdept开头,增加'学院-'
update student set sdept=concat('学院-',sdept) where sno='95001';

 

4、删

4.1、删除数据

delete from score where sno='95001';

 

4.2、删除整张表【注意:谨慎操作】

delete from score;

-- truncate 会删除自增长的记录,置为0,重新开始
truncate score;

 

posted @ 2022-12-31 14:50  小粉优化大师  阅读(35)  评论(0编辑  收藏  举报