第5章 SQL更新数据 数据库中的数据变更,主要有以下三种:插入数据( insert)、修改数据(update)、删除数据(delete)。这几种 操作都是开发人员常用的操作。本章将针对这几种操作进行简 要讲解。本章的主要内容包括: insert操作及注意事项 update操作及注意事项 delete操作及注意事项 通过本章的学习,读者既可以学习insert/update/delete操 作的基本语法,同时,还可以了解实际开发中的注意事项
insert update delete insert update delete insert/update/delete
5.1插入数据一insert操作 insert操作用于向表中插入新的数据。insert操作既可以 单条插入,也可以与子查询结合使用实现批量插入。本章将 讲述insert操作的语法及使用
—— insert insert insert
5.1.1单条插入 对于insert操作来说,单条插入是最常用的方式,其语 法形式如下所示。 insert into表名(列名1,列名2,列名3.列名n) valuest(值1,值2,值3..值n) 在insert操作中,列名列表中的各列需要以逗号进行分 隔;而值列表指定各列的值,列名与值需要一一对应
insert insert into ( 1, 2, 3… n) values( 1, 2, 3… n) insert
5.1.2批量插入 在4.2节一子查询的讲解中,我们知道可以在插入语句中使用子 查询,以实现批量插入。本小节将给出另外一个示例。【示例5-2】表 c_students的数据结构及内容如下所示。 SQL>select from c students; STUDENT ID STUDENT NAME 我们可以利用如下$QL语句向其中插入新的数据,新数据来自表 students中student id.处于前十的学生信息。 SQL>insert into c_students(student id,student name) 2 select student id,student_name 3 from students 4 where student id<=10; 10 rows inserted
4.2 —— 5-2 c_students SQL> select * from c_students; STUDENT_ID STUDENT_NAME SQL students student_id SQL> insert into c_students(student_id, student_name) 2 select student_id, student_name 3 from students 4 where student_id<=10; 10 rows inserted
5.1.3注意事项与技巧 insert操作语法简单,也是广大开发人员掌握的最熟练 的$QL语句之一。在实际开发过程中,有以下问题和技巧需 要注意。 1.应该养成使用列名列表的习惯 2.快速获得列名列表
insert SQL 1 2
5.1.3注意事项与技巧 Browser Window list Browser Window list 中一州层名 C中-州名名 My objects My objects ⊕目TMP_EMPLOYEES 中目TMP EMPLOYEES +用MP_USER_OBJECTS 白目TMP_USER_OBJECTS 中闺TRUNCATE_LOG ⊕白Views 白Primar Refresh 中-C▣Materialized views ▣Unigu Copy comma separated ⊕-□Sequences ⊕ Foreign keys 中-白Users 白Check constraints ⊕-Profiles 白Triggers Roles ☐Indexes +☐Synonyms Foreign key references Database links Referenced by +-白Tablespaces 中-白Synonyms
5.1.3注意事项与技巧 Browser Window list C中一的冬名 My objects 91020304050L6☑ 白目TMP_USER_OBJECTS 1 object name, 2 subobject name, 甲包Ca Refresh 3 obiect id, 田回Pi 4 deta object id, ⊕白Un Copy comma separated s object_type, 6 created, 中□Foreign keys 7 last ddl time 甲-Check constraints ▣Triggers 10 temporary 田□Indexes Foreign key references 由▣Referenced by Synonyms ⊕-▣Granted to users
5.2.1 update更新单列 update操作的语法形式如下所示。 update表名set列=新值 其中update命令用于更新表中数据,其后紧跟表名; S命令用于重新设置列值,其后紧跟列名,并用等号指定 新值。 【示例10-3】在表students中,列status的值均为小写形 式。我们可以利用updatei语句将其转换为大写形式。 SQL>update students set status upper(status); 13 rows updated
update update set = update set 10-3 students status update SQL> update students set status = upper(status); 13 rows updated
5.2.2 update更新多列 使用update语句,同样可以更新多列,其语法如下所 示0 update表名set列1=新值1,列2=新值2,.. 在st命令之后,可以为多列同时赋值,而这些列之间 使用逗号进行分隔。 【示例10-4】对于表students中的学生信息,可以在修 改列statust的同时,修改列student age的值。例如,除了将 statusi进行大写转换之外,还需要将学生年龄student_age增 加1。相应的SQL语句如下所示。 SQL>update students set student_age student_age+1, status upper(status); 13 rows updated
update update set 1= 1, 2= 2, … set 10-4 students status student_age status student_age 1 SQL SQL> update students set student_age = student_age+1, status = upper(status); 13 rows updated