SQL增删改操作-1

SQL增删改操作

1 学习目标

  1. 重点掌握插入单条记录的语法
  2. 了解全表插入记录的语法
  3. 重点掌握修改记录的语法
  4. 重点掌握删除记录的语法
  5. 重点掌握主键约束、外键约束
  6. 了解检查约束、非空约束、唯一约束

2 数据类型

  • MySQL支持多种数据类型,大致可以分类三类:数值、日期和字符串。

2.1 数值类型

2.1.1 分类

类型特点
tinyint1字节
smallint2字节
int4字节
bigint8字节
float4字节,单精度
double8字节,双精度
decimal(m,n)定点数,固定长度的小数位,
decimal(6,4)表示整数位2位,小数位4位,一共6位,
字节量: m+2

2.1.2 例子

USE db2;
CREATE TABLE tb6(
    a INT(5),
    b DOUBLE(6, 4),
    c DECIMAL(6, 4)
) CHARSET = utf8;
INSERT INTO tb6 VALUES(5, 45.2345, 56.3456);

2.2 字符串类型

2.2.1 分类

类型描述
char定长字符串,最长不能超过255个字符,char(6)则表示定长6个字符,
超过6位,可能出错,也可能截断,不足6位,在后面添加空格
varchar变长字符串,最大65535个字节,varchar(6)如果指定的最大长度,
在255个字节内,在前面会加1个字节,表示字符串的字节长度最大长度大于255,
在前面加2个字节,表示字符串的字节长度
char和varchar区别:char效率高varchar效率低,读取时,先读取长度值,再取字符串
text65535个字节
latin1 - 字符数量:65535
gbk - 65535/2 个字符
utf8 - 65535/3 个字符

2.2.2 例子

USE db2;
CREATE TABLE tb7(
    a CHAR(6),
    b VARCHAR(6),
    c TEXT
) CHARSET = utf8;
INSERT INTO tb7 VALUES ('abcdef', 'abc', 'asdfasdfasfwewefw');
SELECT * FROM tb7;

2.3 日期类型

2.3.1 分类

类型描述
datetime年月日时分秒
date年月日
time时分秒
timestamp时间戳:时间范围,只到2038年第一个timestamp字段,
会在修改这行数据时,自动修改成系统当前时间

2.3.2 例子

USE db2;
CREATE TABLE tb8(
    a DATETIME,
    b DATE,
    c TIME,
    d TIMESTAMP
) CHARSET = utf8;
INSERT INTO tb8(a, b, c) VALUES (NOW(), NOW(), NOW());
SELECT * FROM tb8;

3 插入数据

  • 在数据库中的一个表中增添数据并不是随意的,我们之前在创建表的时候规定过表中可以容纳几列数据,每列数据的类型,我们要根据可以容纳几列数据,每列数据的类型来进行新增数据的操作。
  • 在创建表的初期所决定的数据类型是决定整张表数据类型的基础 ,新增数据的基础是创建表的时候所决定的数据类型。

3.1 前期准备

  • 使用db2库
USE db2;
  • 查看库中person表结构
DESC person;

3.2 语法

3.2.1 全表插入单条记录

  • 单行的输入数据,把表中一行全部填满,全列输入的意思就是把表中所有字段全部填满。
3.2.1.1 格式
  • 插入的值的顺序需要和表中的字段顺序一致
INSERT INTO 表名 VALUES(值1,值2);
3.2.1.2例子
  • 向person表中插入一条记录,name为tom,age为18
INSERT INTO person VALUES("tom",18);
#查询表中记录
SELECT * FROM person;

3.2.2 指定字段插入单条记录

3.2.2.1 格式
INSERT INTO 表名(字段1名,字段2名) VALUES(值1,值2);
3.2.2.2 例子
  • 向person表中插入一条记录,name为jerry,age不传值
INSERT INTO person (name) VALUES ("jerry");
#查询表中记录
SELECT * FROM person;

3.2.3 全表插入格式

3.2.3.1 格式
INSERT INTO 表名 VALUES(值1,值2),(值1,值2),(值1,值2);
3.2.3.2 例子
  • 向person表中插入两条记录,分别是name为lucy,age为21的记录和name为lily,age为22的记录
INSERT INTO person VALUES("lucy",21),("lily",22);
#查询表中记录
SELECT * FROM person;

3.2.4 指定字段插入格式

3.2.4.1 格式
INSERT INTO 表名 (字段1名,字段2名) VALUES(值1,值2),(值1,值2);
3.2.4.2 例子
  • 向person表中插入三条记录,分别是name为danny,name为hanmeimei,name为lilei的记录
INSERT INTO person (NAME) VALUES("danny"),("hanmeimei"),("lilei");
#查询表中记录
SELECT * FROM person;

4 修改数据

4.1 数据准备

  • 为了方便修改内容,我们提前向person表中插入新的记录
INSERT INTO person VALUES('刘备',40),('关羽',30),('悟空',20),('八戒',10),('张学友',5);
#查询表中记录
SELECT * FROM person;

4.2 格式

UPDATE 表名 SET 字段名=值,字段名=值 WHERE 条件;

4.3 例子

①将name为刘备的记录的age属性,修改为88

UPDATE person SET age = 88 WHERE name = "刘备";
#查询表中记录
SELECT * FROM person;

②将age为5的记录的name属性,修改为黎明

UPDATE person SET name = "黎明" WHERE age = 5;
#查询表中记录
SELECT * FROM person;

③将name为关羽的记录的name属性修改为张飞,age属性修改为18

UPDATE person SET name = "张飞",age = 18 WHERE name = "关羽";
#查询表中记录
SELECT * FROM person;

5 删除数据

5.1 格式

DELETE FROM 表名 WHERE 条件;

5.2 例子

①删除name为张飞的记录

DELETE FROM person WHERE name = "张飞";
#查询表中记录
SELECT * FROM person;

②删除age小于30的记录,也就是删除年龄小于30岁的记录

DELETE FROM person WHERE age < 30;
#查询表中记录
SELECT * FROM person;

③删除整张表的记录

但是由于idea担心我们删除整张表的操作太过于危险,会有提示,点击Execute执行即可

image-20221109171131870

DELETE FROM person;
#查询表中记录
SELECT * FROM person;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值