MySQL_添加、修改、删除数据

一、插入数据

1、插入完整的行

方法一: INSERT INTO 表名 
                       VALUES('值1','值2','NULL');

注意:①每一列都按顺序赋值,若无值,则填NULL

           ②不安全,表结构变化,则语句不再适用

方法二: INSERT INTO 表名(列1,列2,列3)
                       VALUES('值1','值2','NULL');

注意:①相比于上一种,更加安全,即使表结构发生变化,INSERT语句仍然正常工作,只需给列出的列赋值

           ②不能插入同一条记录两次,主键需具有唯一性,

若需要对相同主键重新赋值,则使用:

方法一:  REPLACE INTO 表名(列1,列2,列3)
                        VALUES('值1','值2','NULL');

                注意:若表中已有此行数据(根据主键或者唯一索引判断),则先删除此行数据,然后插入新的数据;否则,直接插入新数据           

方法二:  DELECT FROM 表名
                        WHERE 列名 = 主键
                INSERT INTO 表名(列1,列2,列3)
                        VALUES('值1','值2','NULL');

2、插入行的一部分

语法同1,省略无值的列名及NULL值即可,但省略列需满足:

        ①该列定义为允许NULL值        ②在表定义中给出默认值

3、插入某些查询结果

        INSERT INTO 表名(列1,列2,列3)
        SELECT 列1,列2,列3
        FROM 表2名;

注意:①在创建填充表2时,应保持列名与表1一致

           ②主键名不可一样,否则插入报错

           ③由于插入是依照所列位置顺序,故SELECT中列名可不与INSERT中一致

           ④SELECT中可包含WHERE子句,用于过滤插入的数据

4、从一个表复制到另一个表

        CREATE TABLE 表0名 AS SELECT * FROM 表1名;

注释:①从表1中选择所有列及数据复制到新建表0中

           ②可将*替换成具体列名,则复制具体列

作用:可用于试验新SQL语句,而不影响原数据

Navicat中代码如下:

-- 在表中插入数据
INSERT INTO t_student VALUES 
	(1,'张三','男',18,'2022-05-30','建筑1班','156@152.com');
INSERT INTO t_student VALUES 
	(2,'王二','男',16,'2022-05-06',"建筑2班",'157@152.com');		-- 插入字符时,不区分单双引号

INSERT INTO t_student VALUES 
	(3,'李四','男',18,now(),'建筑1班','156@152.com');		
                                         -- 写入时间,可选函数now(),sysdate(),CURRENT_DATE()
INSERT INTO t_student 
	(snu,sname,sex,age,enterdate,class,email)
	VALUES 
	(4,'麻子','男',18,'2022-05-30','建筑1班','156@152.com');		
                                                      -- 当插入非全部字段时,需标明插入字段名

二、更新、删除数据

1、更新数据UPDATE

        UPDATE 表名
        SET 列1 = 新值1,列2 = 新值2
        WHERE 更新行;

注意:①若无WHERE则更新所有行

           ②要删除某个列的值,可更新为NULL

           ③空字符用' '表示,是值,而NULL表示无值

2、删除数据DELETE

        DELETE FROM 表名
        WHERE  列名 = 数值;                                        -- FROM可选,但最好保留(可移植性)

注意:①若无WHERE则删除所有行(删除列用UPDATE)

           ②TRUNCATE TABLE可删除所有行,并且速度更快(删除后不返回数值,而DELETE返回数值)

           ③当表中存在外键时,删除相应的列将返回错误

Navicat中代码如下:

-- 修改表中数据
UPDATE t_student SET 
	age = 17 
	WHERE snu = 3;		        -- 当无限制条件时,表示对整列修改
update T_student Set 
	AgE = 21,
	CLAss = 'jaVe02'
	WHere SnU = 4; 		
UPDATE t_student SET 
	class = 'JAVE01',
	age = 19
	WHERE snu = 3;		
UPDATE t_student SET 
	class = 'JAVE02' 
	WHERE class = 'jaVe02';		-- 表名、关键字、字段名、内容默认情况下不区分大小写

-- 删除数据
INSERT INTO t_student VALUES 
	(5,'张四','女',18,'2022-05-01','建筑1班','156@153.com');
INSERT INTO t_student VALUES 
	(6,'王三','女',17,'2022-05-20','建筑2班','167@152.com');
INSERT INTO t_student VALUES 
	(7,'李五','女',20,'2022-04-30','JAVE02','156@154.com');
INSERT INTO t_student VALUES 
	(8,'李六','男',20,'2022-04-30','JAVE01','156@134.com');
INSERT INTO t_student VALUES 
	(9,'麻子爸爸','男',50,'2007-04-30','JAVE01','176@134.com');
INSERT INTO t_student VALUES 
	(10,'麻子妈妈','女',47,'2010-04-06','JAVE02','156@234.com');
DELETE FROM t_student 
	WHERE snu = 10;
UPDATE t_student SET
	enterdate = NULL,
	age = NULL 
	WHERE snu = 9;		        -- 删除行用DELETE,列用UPDATE

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值