• 第十七章《MySQL数据库及SQL语言简介》第5节:数据管理


    数据管理是指对数据的新增、修改和删除操作,本小节将介绍如何使用SQL语句进行数据管理。需要强调:SQL语句不区分大小写。

    17.5.1向表中插入数据

    为方便演示数据管理的操作效果,读者需先在数据库中建立一张表示QQ游戏玩家的Uers表,表的结构如图17-34所示。

    图17-34 Uers表结构

    可以看出:Users表有5个列,它们分别是USER_QQ(用户QQ号)、USER_NAME(用户昵称)、USER_SEX(用户性别)、USER_BIRTHDAY(用户生日)以及USER_PHONE(用户手机号)。本小节就以对Users表的数据管理为例进行讲解。

    向表中插入数据的常用格式有3种,第一种格式为:

    INSERT [INTO] TABLE_NAME VALUES (V1,V2…Vn)

    在这个语法格式中,“INSERT”是一个关键字,表示“插入”操作,格式中“[INTO]”的“[]”表示可选,也就说语句中可以写也可以不写INTO关键字,“TABLE_NAME”是表名称,向哪一个数据表中插入数据就写哪一个数据表的名称,“VALUES”也是一个关键字,它表示插入的数据值,而“VALUES”后面的“(V1,V2…Vn)”则表示要插入的真实数据值。需要注意:V1、V2这些值的顺序要与数据表中的各个列的顺序对应,并且要求有多少个列,就写多少个真实的数据值。在书写这些真实的数据值时,如果是非数值类型的数据值要用单引号引起来。下面的【例17_01】能够向Users表中插入一条数据。

    【例17_01插入数据1】

    Exam17_01.sql

    INSERT INTO USERS VALUES ('20020101', '周天', '男''1999-02-01', '13811112222')

    Workbench中运行SQL语句的步骤是:首先双击数据库名称,这样做的目的是通知MySQL服务器现在要操作的是哪一个数据库。之后在“File”菜单中单击“New Query Tab”菜单项,这样就能打开一个文本编辑窗口,在文本编辑窗口中输入SQL语句,然后单击工具栏中的执行按钮即可,如图17-35所示。

     图17-35 运行SQL语句

    向表中插入数据的第二种格式为:

    INSERT [ INTO] TABLE_NAME (COL1,COL2…COLn) VALUES (V1,V2…Vn)

    在这种书写格式中,COL1,COL2…COLn代表了列的名称,后面的数据值V1,V2…Vn要与前面出现的列名称一一对应,而不是与数据表中列的名称一一对应。此外,如果某个列被设计为允许为空,那么这个列的名称可以不出现在语句中,而对应的数据值也不应出现在语句中。下面的【例17_02】展示了这种插入数据的方式。

    【例17_02插入数据2】

    Exam17_02.sql

    1. INSERT INTO USERS (USER_QQ,USER_NAME,USER_SEX,USER_BIRTHDAY,USER_PHONE)
    2. VALUES ('20020102', '周天', '男''1999-02-01', '13811112222');
    3. INSERT INTO USERS (USER_NAME,USER_QQ ,USER_SEX,USER_BIRTHDAY,USER_PHONE)
    4. VALUES ('周地', '20020103', '男''1998-02-01', '13811112223');
    5. INSERT INTO USERS (USER_QQ,USER_NAME,USER_SEX,USER_PHONE)
    6. VALUES ('20020104', '周人', '男''1997-02-01', '13811112224');

    【例17_02】中展示了3条插入数据的SQL语句,第一条语句中,列名称的顺序与数据表中列的实际顺序完全相同。第二条语句中,列名称的顺序与数据表中列的实际顺序不相同,语句中先出现USER_NAME列后出现,USER_QQ列,而数据表中实际先出现的是USER_QQ列后出现的是USER_NAME列,这种情况是允许的,在这种情况下,数据值的出现顺序要与语句中列名称出现的顺序对应,这样各个数据值就能准确的插入对应的列。第三条语句中没有出现USER_BIRTHDAY列,对应的后面VALUES中也不出现它的值。但需要注意,只有那些允许为空值的列才可以不出现在插入语句中。

    向表中插入数据的第三种格式为:

    INSERT [ INTO] TABLE_NAME [ (COL1,COL2…COLn) ] 

    VALUES (V11,V12…V1n),

    (V21,V22…V2n),

    ......,

    (V31,V32…V3n)

    这种格式是前两种格式的“加强版”,它可以一次性插入多条数据。

    17.5.2更新表中数据

    更新表中数据的格式是:

    UPDATE TABLE_NAME 

    SET {COL_NAME=EXPRESSION}[ ,...n ]

    [WHERE CONDITION_EXPRESSION]

    在这个格式中,“UPDATE”是一个关键字,表示更新数据。“TABLE_NAME”表示表的名称,“SET”也是一个关键字,表示把列COL_NAME的值设置为EXPRESSION,这个设置子句可以出现多次,这样的话就能用一条语句同时修改多个列上的值。需要注意:格式中的“EXPRESSION”意为表达式,这个表达式可以是一个运行的结果,还可以直接是一个固定的值。在语句的最后是“[WHERE CONDITION_EXPRESSION]”,前面讲过“[]”表示可选,也就是说最后的字句可以有也可以没有。“[WHERE CONDITION_EXPRESSION]”表示一个条件,其中“WHERE”是一个关键字,如果添加条件就必须写这个关键字。如果更新数据的SQL语句中包含“[WHERE CONDITION_EXPRESSION]”,则表示只更新符合条件的数据,而如果不包含则表示更新所有数据。下面的【例17_03】能够把Users表中所有的玩家性别都改成男性。

    【例17_03更新数据1】

    Exam17_03.sql

    UPDATE  USERS SET USER_SEX='男'

    下面的【例17_04】能够把Users表中所有的玩家性别都改成男性并且同时把玩家的生日改成1999年6月1日

    【例17_04更新数据2】

    Exam17_04.sql

    UPDATE  USERS SET USER_SEX='男',USER_BIRTHDAY='1999-06-01'

    下面的【例17_05】能够把Users表中QQ号为12302的玩家性别改为女性。

    【例17_05更新数据3】

    Exam17_05.sql

    UPDATE USERS SET USER_SEX='女' WHERE USER_QQ='12302'

    17.5.3删除表中数据

    删除表中数据的格式有两种,第一种是:

    DELETE  [FROM]  TABLE_NAME

     [WHERE CONDITION_EXPRESSION]

    TABLE_NAME是要删除数据的表的名字。WHERE CONDITION_EXPRESSION是删除数据的条件,如果DELETE语句中没有WHERE子句限制,表中的所有数据都将被删除。

    下面的【例17_06】能够把Users表中性别为女的玩家信息全部删掉。

    【例17_06删除数据1】

    Exam17_06.sql

    DELETE FROM USERS WHERE USER_SEX='女'

    删除表中数据的第二种格式是:

    TRUNCATE TABLE TABLE_NAME

    TABLE_NAME是要删除数据的表的名字,需要注意:这种格式的语句不能加WHERE字句,它一次性删除表中的全部数据。TRUNCATE TABLE语句不记录日志,只记录整个数据页的释放操作,而DELETE语句对每一行修改都记录日志,所以TRUNCATE TABLE语句总比没有指定条件的DELETE语句快。因为TRUNCATE TABLE操作是不进行日志记录的,所以建议在TRUNCATE TABLE语句之前用先对数据库作备份。下面的【例17_07】能够把Users表中所有数据全部删除。

    【例17_07删除数据2】

    Exam17_07.sql

    TRUNCATE TABLE USERS

    除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!

  • 相关阅读:
    一文搞定 Spring事务
    2022年上半年网络工程师上午真题及答案
    二分查找以及扩展
    matlab矩阵计算
    多级缓存之实现多级缓存
    sqli-labs/Less-51
    基于粒子群优化算法在配电系统中优化电容器的配置以降低损耗(Matlab代码实现)
    【Java基础】方法注意事项、通用格式及方法重载
    室内温度控制仿真(Simulink+PLC)
    mysql5.7免安装教程,配置my.ini详解,安装卸载mysql服务,开启远程登录,修改mysql密码
  • 原文地址:https://blog.csdn.net/shalimu/article/details/128129145