zoukankan      html  css  js  c++  java
  • mySQL初学者一定要掌握的数据操纵

    本文献给与作者一样不断地在追求梦想的小伙伴!

    INSERT插入数据 UPDATE更新数据 DELETE删除数据 SELECT查看数据
    增删改查=CRUD=CREATE READ UPDATE DELETE

    1.INSERT 语句为表中所有字段添加数据

    (1)可以指定所有字段名添加数据
    (2)可以不指定字段名添加数据
    (3)可以指定部分字段添加数据

    (1)指定所有字段名添加数据

    语法:
    INSERT INTO 表名(字段名1,字段名2...)
    		VALUES(1,值2....);
    

    注意:
    此处表名后必须列出表中所有字段的名称;
    每次添加时字段名的顺序可以不一致;
    “值 1,值 2,……”表示每个字段的值,每个值的顺序、类型必须与对应的字段相匹配。

    //创建lesson001库,并在其中创建student表
    CREATE DATABASE lesson001;
    USE lesson001;
    CREATE TABLE student(
    id INT(4),
    name VARCHAR(20) NOT NULL,
    grade FLOAT
    );
    //使用 INSERT 语句向 student 表中插入一条数据
    INSERT INTO student(id,name,grade)
    VALUES(1,'zhangsan',77.3);
    //使用 INSERT 语句向 student 表中插入多条数据
    INSERT INTO student(name,id,grade)
    VALUES('lisi',2,98),('cen',3,99),('xintin',4,98.9);
    //使用 SELECT 语句查看 student 表中的数据
    SELECT*FROM student;
    

    (2)不指定字段名添加数据

    语法:
    INSERT INTO 表名 VALUES(1,值 2,……); 
    

    注意:
    由于 INSERT 语句中没有指定字段名,添加的值的顺序必须和字段在表中定义的顺序相同
    其余注意事项参照第一种

    INSERT INTO student
    VALUES(5,'mingming',87);
    

    (3)指定部分字段添加数据

    注意:
    语法有两种一种与第一种类似,只是不需列出所有字段名
    其余注意事项参照第一种

    sql 语法二: INSERT INTO 表名 SET 字段名 1=值 1[,字段名 2=值 2,……]

    //方法一:
    INSERT INTO student(id,name)
    VALUES(6,'qingqing');
    //方法二:向指定部分字段添加数据
    INSERT INTO student
    SET id=6,name='qingqing'; //未被添加数据的字段保持为定义时的默认值
    

    2.使用 UPDATE 语句更新表中数据

    语法:
    UPDATE 表名 SET 字段名 1 = 值 1[,字段名 2 = 值 2,……] [WHERE 条件表达式]

    (1)UPDATE更新部分数据

    使用WHERE子句来指定更新记录的条件

    sql> SELECT*FROM student WHERE id=1;
    示例图
    sql> UPDATE sdudent SET name='nini',grade=90 WHERE id=1;
    注意:
    如果表中有多条记录满足 WHERE 子句中的条件表达式,则满足条件的记录都会发生更新。sql> UPDATE student SET grade=99 WHERE id<10;

    (2)UPDATE更新全部数据

    未使用WHERE子句来指定更新记录的条件,即会更新某字段的所有数据。
    如图:示例图

    3.使用 DELETE 语句来删除表中的记录

    (1)、 DELETE 删除部分数据

    WHERE子句判断条件与UPDATE时用法相似

    语法:
    DELETE FROM 表名 [WHERE 条件表达式]
    示例:
    DELETE FROM student WHERE id<5;

    (2). DELETE 删除全部数据

    语法:
    DELETE FROM student; 
    

    与UPDATE更新全部数据类似

    4.使用TRUNCATE删除表中所有的记录

    语法:
    TRUNCATE TABLE 表名;

    //创建表并以id为主键
    CREATE TABLE tab_truncate(
    id INT(4) PRIMARY KEY AUTO_INCREMENT, //id 字段值设置了 AUTO_INCREMENT,id 字段的默认初始值是 1,在每次添加记录时系统会为该字段 自动添加值,即该字段值会自动加 1。
    name VARCHAR(10),
    sex CHAR(5)
    );
    //添加数据
    INSERT INTO tab_truncate(name,sex)
    VALUES('nini','男'),('titi','女'),('mimi','男');
    SELECT*FROM tab_truncate;//查看数据
    TRUNCATE TABLE tab_truncate;//使用TRUNCATE删除表中所有的记录
    SELECT * FROM tab_truncate; //查看数据
    //添加数据,发现id又是从1开始递增
    INSERT INTO tab_truncate(name,sex)
    VALUES('nini','男'),('titi','女'),('mimi','男');
    SELECT * FROM tab_truncate;
    DELETE FROM tab_truncate; 
    //添加数据
    INSERT INTO tab_truncate(name,sex)
    VALUES('nini','男');
    SELECT * FROM tab_truncate;//发现id是从删除前最大值+1开始递增
    

    示例图示例图

    总结TRUNCATE与DELETE的区别:
    1.使用 TRUNCATE 语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重 新由 1 开始,而使用 DELETE 语句删除表中所有记录后,再次向表中添加记录时,自动增加字段的值为删除时该字段的最大值加 1。
    2.使用 DELETE 语句时,每删除一条记录都会在日志中记录,而使用 TRUNCATE 语句时,不会在 日志中记录删除的内容,因此 TRUNCATE 语句的执行效率比 DELETE 语句高。
    3.、DELETE 语句后面可以跟 WHERE 子句,通过指定 WHERE 子句中的条件表达式只删除满足条件的部分记录也可以不跟WHERE 子句,而 TRUNCATE 语句只能用于删除表中的所有记录 。
    4.DELETE 语句是 DML 语句,TRUNCATE 语句通常被认为是 DDL 语句。

    DELETE与TRUNCATE的比喻:
    将DELETE与TRUNCATE执行性质看作‘伐树’,DELETE是用斧头将树的枝叶砍掉最后砍倒树干而TRUNCA则是用挖掘机将树连根拔起,砍倒的树仍然可以从树根上生长出幼苗,而后者却只能重新生长出幼苗。

    想复习《mySQL数据库与表的基本操作》的小伙伴可以阅读这篇哦!

  • 相关阅读:
    十分钟上手-搭建vue开发环境(新手教程)
    如何去掉bootstrap table中表格样式中横线竖线
    进阶攻略|前端最全的框架总结
    进阶攻略|前端完整的学习路线
    2018上半年GitHub上最热门的开源项目
    三分钟教你学会如何将密文解码成明文
    【前端图表】echarts实现散点图x轴时间轴
    IOS应用开发版本控制工具之Versions使用
    从零开始学ios开发(十七):Storyboards(上)
    ios按钮点击后翻转效果
  • 原文地址:https://www.cnblogs.com/zhushen/p/14039564.html
Copyright © 2011-2022 走看看