1.INSERT - 插入语句
# 插入 - 可以且建议执行插入的列名
INSERT INTO student(id, name, student_class_id)
VALUES (1, '张三', 1);
# 同时插入多行
INSERT INTO student(id, name, student_class_id)
VALUES (1, '张三', 1),
(2, '李四', 1),
(3, '王五', 1);
- 编写插入的SQL语句时,可以且建议指定插入的列名,好处在于:如果表的结构发生改变,只要SQL中执行的列没有发生改变,且被指定为NOT NULL的数据有值即可;
- 可以同时插入多行,VALUES后拼接多组括号以插入多条记录。
2.DELETE - 删除语句
DELETE FROM student
WHERE id = '3119004007';
3.UPDATE - 修改语句
# 修改
UPDATE student
SET name = '李四',
student_class_id = 2
WHERE id = 1;
可以利用MyBatis的<if>标签实现动态更新
<!-- 根据id,动态更新student -->
<update id="updateById">
UPDATE student
<trim prefix="SET" suffixOverrides=",">
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="studentClassId != null and studentClassId != ''">
student_class_id = #{studentClassId},
</if>
</trim>
</update>
- prefix:在SQL之前加上"SET"
- suffixOverrides:删除最后一个","
4.CREATE - 建表语句
CREATE TABLE student
(
id bigint NOT NULL AUTO_INCREMENT,
name varchar(12) NOT NULL,
student_class_id int NOT NULL DEFAULT 1,
PRIMARY KEY (id)
) ENGINE=InnoDB;
建表时需要确定几个关键元素:
-
表名(student)
-
字段的各种数据(字段名、类型、是否允许为空、是否自增、默认值)
– 允许为空:NOT NULL
– 自增长:AUTO_INCREMENT
– 默认值:**DEFAULT **1 表示默认值为1
-
主键:PRIMARY KEY ( id )
-
引擎:ENGINE = InnoDB