[TOC]
引言-增删改查(curd)
curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)
一、增加insert
1.1 全列插入
- 全列插入:值的顺序与表中字段的顺序对应
- 说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0或者 default 或者 null 来占位,插入成功后以实际数据为准
- 如果一个表中只有两个字段,并没有指明给哪个字段插入,这个时候必须是全部插入(少一个字段都不行)
-- insert into 表名 values(...);
-- 向classes表中插入 一个班级
insert into classes values(0, "菜鸟班");
-- 向students表插入 一个学生信息
insert into students values(0, "小李飞刀", 20, "女", 1, "1990-01-01");
insert into students values(null, "小李飞刀", 20, "女", 1, "1990-01-01");
insert into students values(default, "小李飞刀", 20, "女", 1, "1990-01-01");
-- 枚举中 的 下标从1 开始 1---“男”, 2--->"女", 3--->"中性"....
insert into students values(default, "小李飞刀", 20, 1, 1, "1990-02-01");
-- 失败
-- insert into students values(default, "小李飞刀", 20, "第4性别", 1, "1990-02-01");
+--------+-------------------------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------------------------------+------+-----+------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(30) | YES | | NULL | |
| age | tinyint(3) unsigned | YES | | 0 | |
| gender | enum('男','女','中性','保密') | YES | | 保密 | |
| cls_id | int(10) unsigned | YES | | NULL | |
| birth | date | YES | | 2000-01-01 | |
+--------+-------------------------------------+------+-----+------------+----------------+
1.2 部分列插入
- 部分列插入:值的顺序与给出的列顺序对应
- 一次向表中插入一行数据
-- insert into 表名 (列名1,...) values (值1,...);
insert into students (name, gender) values ("小乔", 2);
1.3 多行插入
- 多行插入:值的顺序与给出的列顺序对应
- 一次性插入多行数据,这样可以减少与数据库的通信
1.3.1 全列-多行插入
-- insert into 表名 values(...),(...)...;
insert into students values(default, "西施", 20, "女", 1, "1990-01-01"), (default, "王昭君", 20, "女", 1, "1990-01-01");
1.3.2 部分列-多行插入
-- insert into 表名 (列名1,列名2...) values(值1,...),(值1,...)...;
insert into students (name, gender) values ("大乔", 2),("貂蝉", 2);
二、删除delete
2.1 物理删除
-- delete from 表名 where 条件;
delete from students; -- 整个数据表中的所有数据全部删除
delete from students where id=5;
2.2 逻辑删除
- 逻辑删除,本质就是修改操作
update students set isdelete=1 where id=1;
-- 用一个字段来表示-这条信息已经不再使用了
-- 给students表添加一个is_delete字段 bit 类型(0或1)
alter table students add is_delete bit default 0;
update students set is_delete=1 where id=6;
三、修改update
-- update 表名 set 列1=值1,列2=值2... where 条件;
update students set gender=1; -- 全部都改为男性
update students set gender=2 where name="小李飞刀"; -- 只要name是小李飞刀的,全部修改为‘女性’
update students set gender=1 where id=3; -- 只要id为3的,进行修改
update students set age=22, gender=1 where id=3; -- 只要id为3的,进行修改
四、查询select
4.1 查询所有列
- 数据量少使用
-- select * from 表名;
select * from students;
4.2 指定条件查询
select * from students where name="小李飞刀"; -- 查询 name为小李飞刀的所有信息
select * from students where id>3; -- 查询 id>3 的所有信息
4.3 查询指定列
-- select 列名1,列名2,... from 表名;
select name,gender from students;
4.3.1 使用as为列或表指定别名
-- select 字段 as 别名 ,字段 as 别名 from 表名 where ....;
select name as 姓名, gender as 性别 from students;
-- 字段的顺序
select id as 序号, gender as 性别, name as 姓名 from students; -- 把 性别 放在 姓名 前