• DDL语言(添加、修改、删除)


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

        DML语言:数据操作语言(insert、update、delete)

    添加(insert)

            语法:

    insert into 表名(字段1,字段2,字段3,...) values('值1'),('值2'),('值3'),('...')

    例:

            ①

    1. --插入语句(添加)
    2. INSERT INTO `grade`(`gradename`) VALUES ('大一')
    3. --由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配)
    4. INSERT INTO `grade` VALUES('大三')

            ②

    1. CREATE TABLE IF NOT EXISTS `student2`(
    2. `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
    3. `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    4. `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    5. `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
    6. `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    7. `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
    8. `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    9. PRIMARY KEY(`id`)
    10. )ENGINE=INNODB DEFAULT CHARSET=utf8

    插入语句:

    1. --一个字段插入多个值
    2. INSERT INTO `grade`(`gradename`) VALUES('大二'),('大一')
    3. INSERT INTO `student`(`name`) VALUES('张三')
    4. --多个字段插入一个值
    5. INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES ('张三''aaaaaa','男')
    6. --多个字段插入多个值
    7. INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES ('李四''aaaaaa','男'),('王五','aaaaaa','男')
    8. --没有指定字段插入值
    9. INSERT INTO `student` VALUES (5,'李四','aaaaaa','男','2000-01-01',1,'西安','email')

    注意:

    • 字段和值之间用英文逗号隔开
    • 字段可以省略,但后面后面的值必须要一一对应,不能少
    • 可以同时插入多条数据,VALUES后面的值,需要使用用英文逗号隔开即可


    修改(update)

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

        语法:

    UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];

        例:

    1. -- 修改学员名字
    2. UPDATE `studenttest1` SET `name`='xiaoming' WHERE id = 1
    3. -- 不指定条件的情况下,会改动所有的表!
    4. UPDATE `studenttest1` SET `name`='xiaohong'
    5. -- 修改多个属性,逗号隔开
    6. UPDATE `studenttest1` SET `name`='小明',`email` = '123@qq.com' WHERE id =1;
    7. -- 通过多个条件定位数据 trim--可以删除多余逗号
    8. UPDATE `student` SET `birthday` = CURRENT_TIME WHERE `name`='小红' AND sex='女'
    9. -- 语法:
    10. -- UPDATE 表名 set colnum_name = value.[colnum_name = value,.....] where [条件]

        where条件字句

            可以简单的理解为:有条件地从表中筛选数据

    运算符含义范围结果
    =等于5=6false
    <>或!=不等于5!=6true
    >大于5>6false
    <小于5<6true
    >=大于等于5>=6false
    <=小于等于5<=6true
    BETWEEN在某个范围之间BETWEEN 5 AND 6
    AND并且5>1 AND 1>2false
    OR5>1 OR 1>2true

    例:

    1. -- 通过多个条件定位数据
    2. -- 修改学员名字,带了简介
    3. UPDATE student SET `name`='小红' WHERE `name`='小明' WHERE id BETWEEN 2 AND 5

     

      注意:

    • column_name 为要更该地数据列,尽量带上 ` `
    • value 为修改后的数据,可以为变量
    • 条件如果没有指定,则会修改所有的列
    • 多个设置的属性之间,使用英文逗号隔开
    • trim可以删除多余的逗号


    删除

        DELETE命令

            语法:

    DELETE from 表名 [where 条件]

    注意:如果不指定筛选条件,则会删除该表所有列数据

    例:

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

        TRUNCATE命令

            作用:完全清空一个数据库表,表的结构、索引和约束不会变!

    例:

    1. -- 清空 student表
    2. TRUNCATE `student`

        DELETE 和 TRUNCATE 区别

    • 相同点:
      • 都能删除数据,都不会删除表的结构
    • 不同点:
      • TRUNCATE TABLE 重新设置自增列,计数器 AUTO_INCREMENT 会归零;且速度更快;不会影响事务
      • DELETE 不会重新设置自增列,计数器会保留原来的值

    测试 DELETE 和 TRUNCATE:

    1. -- 创建一个测试表
    2. CREATE TABLE `test` (
    3. `id` INT(4) NOT NULL AUTO_INCREMENT,
    4. `coll` VARCHAR(20) NOT NULL,
    5. PRIMARY KEY (`id`)
    6. ) ENGINE=INNODB DEFAULT CHARSET=utf8
    7. -- 插入几个测试数据
    8. INSERT INTO test(coll) VALUES('row1'),('row2'),('row3');
    9. -- 删除表数据(不带where条件的delete)
    10. DELETE FROM test;
    11. -- 结论:如不指定Where则删除该表的所有列数据,自增当前值依然从原来基础上进行,会记录日志.
    12. -- 删除表数据(truncate)
    13. TRUNCATE TABLE test;
    14. -- 结论:truncate删除数据,自增当前值会恢复到初始值重新开始;不会记录日志.

    扩展:

            同样使用DELETE清空不同引擎的数据库表数据.重启数据库服务后
            InnoDB:自增列从初始值重新开始 (因为是存储在内存中,断电即失)
            MyISAM:自增列依然从上一个自增数据基础上开始 (存在文件中,不会丢失)

  • 相关阅读:
    生活中的视音频技术
    核酸检测系统崩溃场景浅析
    [Linux 基础] linux基础指令(2)head,tail,Cal,find,grep,zip/unzip,tar,bc,uname
    Hive语法,函数--学习笔记
    tensor张量 ------ python特殊的数据结构
    Node.js(3)-Buffer对象
    Apinto 网关进阶教程,使用 API Mock 生成模拟数据
    山东企业应该做的体系认证
    数据治理-定义数据治理运营框架
    FreeSQL 基本使用
  • 原文地址:https://blog.csdn.net/weixin_48426115/article/details/126197698