• MySQL数据管理----DML语言(全记住)


    DML语言(全记住)

    数据库意义:数据存储、数据管理

    DML语言:数据操作语言

    • Insert
    • update
    • delete
      • truncate

    1.insert 添加

    错误示例:

    image-20200530100040014

    -- 1.指定1个字段,插入1条记录
    -- insert into 表名 [(字段1,字段2,字段3,...)] values('值1'),('值2'),('值3'),...
    INSERT INTO `grade`(`gradename`) VALUES('大四')
    
    -- 2.未指定字段,则需插入全部字段
    INSERT INTO `teacher1` VALUES('1','黎明','111','女','1999-01-01','西安','123')
    
    -- 一般写插入语句,数据和字段要一一对应
    -- 3.指定1个字段,插入多条记录
    INSERT INTO `grade` (`gradename`)
    VALUES('大二'),('大一')
    
    -- 4.指定多个字段、插入多条记录
    INSERT INTO `student` (`name`,`pwd`,`sex`,`birthday`,`gradeid`,`address`,`email`)
    -- VALUES('李四','bbb','女',CURRENT_TIME,'2','南极','654321@qq.com')
    VALUES('王五','ccc','男',CURRENT_TIME,'3','银河','123@qq.com'),
    	  ('赵六','ddd','女',CURRENT_TIME,'1','火星','1234@qq.com')
    

    语法:insert into 表名 [(字段1,字段2,字段3,...)] values('值1'),('值2'),('值3'),...

    注意:

    • 字段和字段间用 英文逗号 隔开
    • 字段是可以省略的,但是后面的值必须要和表中字段 一一对应,不能少
    • 可以同时插入多条记录,VALUES后面的值,需用 , 隔开即可,如 (),()

    2.update 修改

    修改谁 (条件) set 原来的值 = 新值

    -- 修改年级名字,带了条件
    SELECT * FROM `grade`
    UPDATE `grade` SET `gradename` = '大四' WHERE `gradeid` = '2'
    SELECT * FROM `grade`
    
    -- 不指定条件时,会改动所有表
    UPDATE `grade` SET `gradename` = '大三'
    SELECT * FROM `grade`
    
    -- 修改多个字段,逗号隔开
    SELECT * FROM `student`
    UPDATE `student` SET `name`='666',`sex`='女',`address`='家' WHERE `id`=1
    SELECT * FROM `student`
    

    语法:

    update 表名 set 字段名=值[,字段名=值,字段名=值,...][where 条件]
    

    条件运算符:

    操作符 含义
    = 等于
    <>或!= 不等于
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    BETWEEN ... AND.... 在某个范围内
    AND 我和你 &&
    OR 我或你 ||
    -- 通过多个条件定位记录,进行修改
    UPDATE `student` SET `name`='555' WHERE `name`='李四' AND `sex`='女'
    

    注意:

    • 字段是数据表的列,尽量带上 ``
    • 条件,如果没有指定,则会修改所有的数据
    • 值可以是一个具体的值,也可以是一个变量
    • 多个设置的字段间,使用 英文逗号 隔开

    3.delete 删除

    语法:delete from 表名 [where 条件]

    -- 删除数据(避免这样写,会全部删除)
    DELETE FROM `student`
    
    -- 删除指定数据
    DELETE FROM `student` WHERE `id`=1
    

    4.truncate 完全清空一个数据库表,表的结构和索引约束不变

    -- 清空 student 表
    TRUNCATE `student`
    

    5.delete 与 truncate 区别

    • 相同点:都能删除数据,都不会删除表结构

    • 不同:

      • truncate 重新设置 自增列 ,计数器会归零
      • truncate 不会影响事务
    -- 测试 delete 和 truncate 区别
    
    CREATE TABLE `test`(
    	`id` INT(4) NOT NULL AUTO_INCREMENT,
    	`coll` VARCHAR(20) NOT NULL,
    	PRIMARY KEY(`id`)
    )
    
    INSERT INTO `test`(`coll`) VALUES('1'),('2'),('3')
    
    DELETE FROM `test` -- 不会影响自增
    
    TRUNCATE TABLE `test` -- 自增会归零
    

    另一点:DELETE 删除的问题,重启数据库,现象

    • InnoDB 自增列会从1开始(存在内存中,断电即失)
    • MyISAM 继续上一个自增量(存在文件中,不会丢失)
  • 相关阅读:
    异常处理
    JPG转换成BMP不成功???
    Vmware 7 下装载的最新Ubuntu10.04镜像会出现无法识别键盘输入的解决方法
    动态IP获取
    最佳Web设计资源
    设置NFS
    Ubuntu设置root用户自动登录
    编译QT4.5
    tq2440修改默认串口不支持打印控制台
    英语作文
  • 原文地址:https://www.cnblogs.com/mytJava/p/12991672.html
Copyright © 2020-2023  润新知