数据的插入

1. 基本INSERT语句

    INSERT的基本语法为:

    INSERT INTO  <表名> (列1, 列2, 列3,  …) VALUES (值1, 值2, 值3, …)  ;

    例如:INSERT INTO Shohin (shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi) VALUES ('pen','office',100,NULL,'2009-11-11');

    如果插入的是所有列,则列名可以省略,如:

    INSERT INTO Shohin VALUES (4,'pencil','office',200,NULL,'2009-11-11');

    如果要插入NULL值,可以显示地插入NULL值,

    如果某些字段设置了默认值(DEFAULT 约束),则在INSERT操作时,值可以显示填入DEFAULT以使用默认值,也可以直接忽略该字段,则会自动按默认值填写;

2. 从其他表中复制数据

    使用

    INSERT INTO <表1> (列1, 列2, 列3,  …)
    SELECT 列1, 列2, 列3, …
    FROM <表2>

    可以将表2中的所有记录按照列的对应关系复制到表1中 ;

    可以在SELECT中使用聚合函数,并且可以使用GROUP BY对表格进行分组,如:

    INSERT INTO ShohinBunrui (shohin_bunrui, sum_hanbai_tanka,sum_shiire_tanka)
    SELECT shohin_bunrui, SUM(hanbai_tanka), SUM(shiire_tanka)
    FROM Shohin
    GROUP BY shohin_bunrui;

数据的删除

1. DELETE语句

    使用DELETE语句可以指定删除表格中的某些记录:

    DELETE FROM <表名>
    WHERE <条件表达式>;

    如果没有 WHERE子句,则会删除整个表的内容;

数据的更新

1. UPDATE语句

    使用UPDATE语句可以对表中已有的数据进行更新:

    UPDATE <表名>
    SET <列1> = <表达式1>
            <列2> = <表达式2>
            (<列3>,<列4>,<列5>,…) = (<表达式3>,<表达式4>,<表达式5>,...) 
    WHERE <条件表达式>

    如果没有WHERE子句,则会对所有的记录进行更新;

事务

1. 事务的定义和创建

    事务是需要在同一个处理单元中执行的一系列更新处理的集合;

    事务的语法为:

    START TRANSACTION(MySQL) / BEGIN TRANSACTION(SQL Server, PostgreSQL)

        DML1
        DML2
        DML3
        …
    COMMIT / ROLLBACK

2. 事务的特点和应用

    事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),通常被成为ACIO特性;

    原子性:一个事务是一个原子操作,事务中的DML语句要么全部都执行,要么完全不执行;

    一致性:在事务中如果有一条DML语句不能正常执行,则整个事务都不会被正常执行;

    隔离性:不同事务之间互不干扰,在事务结束之前,事务中的一切修改对其他事务都不可见;

    持久性:事务一旦结束,数据库系统会保证该时点的数据状态得以保存,即使由于系统故障导致数据丢失,数据库也一定能通过某种手段进行恢复(如产生日志等);

3. 事务的提交和取消

    事务使用COMMIT/ROLLBACK来结束,

    其中COMMIT表示提交该事务,事务中的内容会被原子执行; 

    ROLLBACK表示取消该事务,事务中的内容完全不会被执行,表中的数据恢复到事务之前的状态;

SQL基础学习_03_数据更新的更多相关文章

  1. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  2. SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念

    SQL 基础学习(2) Joining 可以同时关联(joining)多张表进行复杂的查询. 相比于用Rails捞出数据再用Ruby进行过滤组合,使用SQL更加高效,节能. 以下是 users has ...

  3. SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.

    SQL is a standard language for storing, manipulating and retrieving data in databases. 关系型数据库:RDBMS( ...

  4. SQL基础学习_04_视图

    视图 1. 视图的创建     视图就是保存好的SELECT语句,这些SELECT语句执行之后会产生新的表,所以在SQL中,视图和表是不做差别对待的,也就是SQL也可以对视图做一些操作:     由于 ...

  5. sql基础学习

    学习参考网站:http://www.runoob.com/sql/sql-tutorial.html 一.SQL命令 1.SELECT 语句 用于从数据库中选取数据. select column_na ...

  6. SQL基础学习_05_函数、谓词、CASE表达式

    函数 算术函数 1. 四则运算: +.-.*./  2. ABS:求绝对值, ABS(数值) 3. MOD: 求余,MOD(被除数,除数) 4. ROUND:四舍五入,ROUND(对象数值,保留小数的 ...

  7. SQL基础学习_02_查询

    SELECT语句 1. SELECT语句查询列(字段):     SELECT <列名>    FROM <表名>;     该语句使用了两个SQL子句,SELECT子句列举了 ...

  8. SQL基础学习_01_数据库和表

    SQL语句及其种类 1. SQL语句分为三类:     DDL(Data Definition Language): CREATE.DROP.ALTER;     DML(Data Manipulat ...

  9. SQL基础学习篇--字符函数

    字符函数可与SELECT,UPDATE,DELETE RIGHT()----从右侧开始选择  SELECT RIGHT(列,字符数量) FROM 表 LEFT()----从左侧开始选择  SUBSTR ...

随机推荐

  1. C#设计模式之十九状态模式(State Pattern)【行为型】

    一.引言   今天我们开始讲"行为型"设计模式的第六个模式,该模式是[状态模式],英文名称是:State Pattern.无论是现实世界,还是面向对象的OO世界,里面都有一个东西, ...

  2. Android自定义processor实现bindView功能

    一.简介 在现阶段的Android开发中,注解越来越流行起来,比如ButterKnife,Retrofit,Dragger,EventBus等等都选择使用注解来配置.按照处理时期,注解又分为两种类型, ...

  3. 实践作业3:白盒测试----我是如何写测试用例DAY6

    一开始接到写白盒测试的任务,我感觉挺难的,因为感觉之前我所想到的都是黑盒测试啊,说到测试系统逻辑,感觉就有些神秘的样子没有思路了,那黑盒和白盒写的到底有啥区别.后来我请教了实验室的一个同学,他虽然还没 ...

  4. Java爬虫——模拟登录知乎

    登录界面,首先随意输入一个账号,登录查看发送表单的请求 可以发现请求是Post : https://www.zhihu.com/login/phone_num 发送的表单是 _xsrf: passwo ...

  5. 关于无法全然下载CyanogenMod代码的问题

    CyanogenMod真的是一个奇妙的东东,它让开发手机固件不再是手机生产商的专利,每一个有志于此的程序猿都可能为自己的手机定制一份专有的,独一无二的固件,这在曾经是想都不敢想的. 而且Cyanoge ...

  6. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记38 Unwind Segue反向过渡

    之前我们接触过了segue,这是IOS中最主要的传递方式,今天来解说一下怎样进行反向的segue. 反向过渡的使用前提是发出过渡的MVC必须是由目标MVC直接或者间接正向过渡来的.反向过渡是唯一不会创 ...

  7. myeclipse配置SVN插件

    方法一:link安装  安装subclipse, MyEclipse SVN插件  1.从官网下载最新的site-1.x.x.zip文件,网址是:folderID=2240" target= ...

  8. 快看Sample代码,速学Swift语言(1)-语法速览

    Swift是苹果推出的一个比较新的语言,它除了借鉴语言如C#.Java等内容外,好像还采用了很多JavaScript脚本里面的一些脚本语法,用起来感觉非常棒,作为一个使用C#多年的技术控,对这种比较超 ...

  9. 基于.NET的弹性及瞬间错误处理库Polly

    本文基本是官方说明的翻译和总结(https://github.com/App-vNext/Polly) 什么是Polly? Polly是一款基于.NET的弹性及瞬间错误处理库, 它允许开发人员以顺畅及 ...

  10. 让你成功安装vscode中go的相关插件

    注意:该演示环境是windows环境,linux和mac环境操作思路一样 vscode中有很多go的相关插件,非常好用如下:gocodegopkgsgo-outlinego-symbolsgurugo ...