美文网首页
DML 数据库管理语言

DML 数据库管理语言

作者: 二十_f15f | 来源:发表于2019-10-16 02:10 被阅读0次

DML语言即数据库操作语言

  1. 插入:instert
  2. 修改:update
  3. 删除: delete

为了方便演示先新建一张表

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `sex` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


其中插入语句共有两种

方式一:经典插入

语法:
insert into 表名(列名,....) values(值);

  1. 插入的值的类型需要与列的类型一致或兼容
INSERT INTO user (
    id,
    username,
    password,
    email,
    phone,
    sex
)
VALUES
    (
        1,
        '太和十六洞天',
        '112121',
        '293@cc',
        '110',
        '男'
    )

  1. 不可以为null的列必须插入值
INSERT INTO user (
    id,
    username,
    password,
    email,
    phone,
    sex
)
VALUES
    (
        2,
        '长生六道轮回经',
        '112121',
        '293@cc',
        '110',
        '男'
    )

  1. 列的顺序可以调换
INSERT INTO USER (
    phone,
    sex,
    id,
    username,
    PASSWORD,
    email
)
VALUES
    (
        '110',
        '男',
        4,
        '葵花练神宝典',
        '112121',
        '293@cc'
    )
  1. 列数和值的个数必须一致
INSERT INTO USER (
    phone,
    sex,
    id,
    username,
    PASSWORD
)
VALUES
    (
        NULL,
        NULL,
        5,
        '葵花练神宝典',
        '112121'
    )

5.可以省略列名,默认就是所有列,不过列中顺序需要和表中列的顺序一致

INSERT INTO USER
VALUES
    (
        6,
        '三阳三味丙丁炼火诀',
        '12345',
        '293cc',
        '119',
        '男'
    )

方式二:

语法:insert into 表名 set 列名=值,列名=值,.....

INSERT INTO USER
SET id = 7,
 username = '九转金丹直指',
 PASSWORD = '12345',
 email = 'cc',
 phone = '119',
 sex = '女'

两种方式的对比
方式一支持子查询,方式二不支持

INSERT INTO USER (username, `password`, email) SELECT
    username,
    `password`,
    email
FROM
    `user`
WHERE
    username = '三阳三味丙丁炼火诀'

修改语句

  1. 修该单表的记录

语法:update 表名 set 列=新值,列=新值,....where 筛选条件

UPDATE `user`
SET username = '新太和十六洞天'
WHERE
    username = '太和十六洞天'
  1. 修改多表的记录

语法:
sql92语法:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件;

sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件;

删除语句

方式一:delete

语法: delete from 表名 where 条件

DELETE
FROM
    `user`
WHERE
    username = '葵花练神宝典'

方式二:truncate

语法: truncate table 表名

俩者的对比

  1. delete 可以加where 条件,truncate不能加
  2. truncate删除,效率高一丢丢
  3. 假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
    4.truncate删除没有返回值,delete删除有返回值
    5.truncate删除不能回滚,delete删除可以回滚.

总结:

DML相当于DQL来说还是要简单一点的,如有不足希望大家多多指教,谢谢大家

相关文章

网友评论

      本文标题:DML 数据库管理语言

      本文链接:https://www.haomeiwen.com/subject/jftymctx.html