MySQL基础-DML

本文内容全文参考 https://www.bilibili.com/video/BV12b411K7Zu

  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
  • 主要操作有 INSERT、UPDATE、DELETE

1.插入数据

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
注意事项
  • 字段和值列表一一对应,包含类型、约束等必须匹配
  • 数值型值不用单引号,非数值型的值必须使用单引号
  • 字段顺序无要求
  • 第一列如果没有设置主键自增(PRINARY KEY AUTO_INCREMENT)的话添加第一列数据比较容易错乱,要不断的查询表看数据。如果添加过主键自增(PRINARY KEY AUTO_INCREMENT)第一列在增加数据的时候,可以写为0或者null,这样添加数据可以自增, 从而可以添加全部数据,而不用特意规定那几列添加数据。
  • 如果所有的列都要添加数据可以不规定列进行添加数据:

2.删除数据

单表删除语法:
DELETE FROM 表名 [WHERE 条件]

DELETE FROM stus WHERE sid=’s_1001’003B
DELETE FROM stus WHERE sname=’chenQi’ OR age > 30;
DELETE FROM stus;
TRUNCATE TABLE 表名

TRUNCATE TABLE stus;
  • 虽然TRUNCATE和DELETE都可以删除表的所有记录,但有原理不同。DELETE的效率没有TRUNCATE高!
  • TRUNCATE其实属性DDL语句,因为它是先DROP TABLE,再CREATE TABLE。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的.
多表删除语法:
DELETE FROM1 别名1 INNER JOIN2 别名2 on 连接条件 【AND 筛选条件】

3.修改数据

单表修改语法:
UPDATE 表名 SET 列名1=1, … 列名n=值n [WHERE 条件]

UPDATE stus SET sname=’zhangSanSan’, age=32, gender=’female’ WHERE sid=’s_1001’;
UPDATE stus SET sname=’liSi’, age=20WHERE age>50 AND gender=’male’;
UPDATE stus SET sname=’wangWu’, age=30WHERE age>60 OR gender=’female’;
UPDATE stus SET gender=’female’ WHERE gender IS NULL
UPDATE stus SET age=age+1 WHERE sname=’zhaoLiu’;

多表修改语法:
UPDATE1inner】 john 表2 onSET 列名1= 新值1,列名2 =新值2where 筛选条件】
发布了17 篇原创文章 · 获赞 0 · 访问量 162

猜你喜欢

转载自blog.csdn.net/qq_33565238/article/details/105435930