本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)
--------------------------------
插入更新删除行
使用INSERT插入行
INSERT INTO
table VALUES(value1,value2,value3…);
INSERT
INTO table(column1,column2,column3) VALUES(value1,value2,value3);
INSERT
INTO table(column1,column2,column3) subquery;
Subquery中列的数量必须等于INSERT的列的数量。
Subquery中SELECT 返回的结果为空是合法的,而且并不插入行。
可以通过视图插入行。
使用UPDATE更新行
UPDATE
table SET column = expr [WHERE search_condition];
search_condition可以是子查询或者WHERE条件。
通过CASE更新,例:
UPDATE titles
SET prise = prise*
CASE type
WHEN ‘history’ THEN 1.10
WHEN ‘psychology’
THEN 1.12
ELSE 1
END;
更新中使用子查询:
UPDATE
titles SET pub_id=(SELECT pub_id FROM publishers WHERE pub_name=’aaa’)
WHERE
pub_id=(SELECT pub_id FROM publishers WHERE pub_name=’bbb’);
DBMS使用引用列更新之前的值计算SET或WHERE子句中的表达式。
可以通过视图更新行。
SQL2003引入了MERGE语句作为在一条语句中结合运用多个UPDATE和INSERT操作的简便方法。ORACLE、DB2支持MERGE。
使用DELETE删除行
DELETE
FROM table [WHERE search_condition];
search_condition可以是WHERE条件或子查询条件。
如果想删除表中的所有行,TRUNCATE语句比DELETE要快且使用的系统资源少。TRUNCATE不是标准SQL的一部分,但部分DBMS支持它。TRUNCATE清空整张表。使用TRUNCATE,代价是有错误就无法恢复到变化前(回滚)。
TRUNCATE
TABLE table;
创建、更新和修改表
约束:
NOT NULL阻止向列中插入空值
PRIMARY
KEY设置表的主键列
FOREIGN
KEY设置表的外键列
UNIQUE阻止向列中插入重复的值
CHECK使用逻辑(布尔)表达式限制插入列中的值
列约束:是列定义的一部分,它设置作用于列的条件。
表约束:有别于列定义并加强于表中多个列条件,可以在一个表约束中包含多个列。
如果不显示命名约束,DBMS将自动产生并分配约束的名称。应该用CONSTRAINT子句分配自定义的约束名。约束名在一个表中必须是唯一的。
CONSTRAINT
constraint_name;
使用NOT NULL禁止空值
使用DEFAULT确定默认值
在CREATE TABLE列定义中使用关键字DEFAULT定义默认值。
使用PRIMARY KEY指定主键
主键不允许为空值。
每个表只能有一个主键。
在CREATE TABLE的定义中使用关键字PRIMARY
KEY定义主键约束。
一个表不能有一个以上的主键约束。
主键约束总是显示命名,使用CONSTRAINT子句来实现。
所有主键列都是NOT NULL的。
使用FOREIGN KEY指定外键
外键与引用表的主键或候选主键建立直接关系,于是外键的值被限于已经存在的父键值。这个约束被称为引用完整性。
外键不像主键,允许空值。
表可以有零个或多个外键。
外键值在表中通常不是唯一的。
在CREATE TABLE的定义中使用关键字FOREIGN
KEY或REFERENCES来定义外键约束。
当试图更新或删除外键值所引用的键值(在父表中)时,SQL允许定义DBMS要采取的行为。要触发一个引用行为,在FOREIGN KEY约束中使用ON UPDATE或ON DELETE子句。
ON
UPDATE action:当试图UPDATE一个行中被其它表的外键引用的键值(在父表中)时,action为下列4个值中的一个:
CASCADE:更新依赖的外键值为新的父表值。
SET
NULL:将依赖的外键值改为空值。
SET
DEFAULT:将依赖的外键值改为默认值。
NO
ACTION:当违反外键约束时产生一个错误提示,这是默认行为。
ON
DELETE action:当试图DELETE一个行中被其它表的外键引用的键值(在父表中)时,
action为下列4个值中的一个:
CASCADE:删除所包含的外键值与要删除的主键值匹配的行。
SET NULL:将依赖的外键值改为空值。
SET
DEFAULT:将依赖的外键值改为默认值。
NO
ACTION:当违反外键约束时产生一个错误提示,这是默认行为。
使用UNIQUE确保值唯一
唯一约束和主键约束区别:唯一列可以包含空值、表可以包含多个唯一列。
唯一约束可以禁用空值。
使用CHECK检查约束
通常检查最大值、最小值、具体值、一定范围的值。
CREATE
TABLE table(
Column1
data_type NOT NULL,
Column2
data_type NOT NULL,
Column3
data_type DEFAULT ‘’,
Column4
data_type ,
Column5
data_type NOT NULL UNIQUE,
CONSTRAINT
constraint_name_pk PRIMARY KEY(Column1,Column2),
CONSTRAINT
constraint_name_fk FOREIGN KEY(Column4) REFERENCES ref_table(id) ON UPDATE
cascade,
CONSTRAINT
constraint_name_check CHECK(Column5 IN (‘A’,’B’,’C’,’D’))
);
使用CREATE TEMPORARY
TABLE创建临时表
基础表:持久保存数据直到显示删除表为止。SQL也允许创建临时表来存储中间结果。
临时表是在会话或事务结束时DBMS能自动清空的表(数据和表都被删除)。
临时表最初没有行,可以像在基本表那样插入、更新和删除行。
如果创建了巨大的临时表,可以自己删除而不是等DBMS来释放内存。
CREATE
{LOCAL|GLOBAL} TEMPORARY TABLE table(
//与基本表相同。
);
LOCAL表明是局部临时表,仅用户自己可用,当DBMS进程结束时就会消失。
GLOBAL表明是全局临时表,可以被其它用户访问,当DBMS会话和其它引用它的任务结束时,就会消失。
对于所有DBMS,查阅文档了解DBMS如何处理与基本表名字相同的临时表。
在某些情况下,临时表会在被删除之前,隐藏或封闭同名的基本表。
使用CREATE TABLE AS利用已存在表创建新表
CREATE
TABLE new_table AS subquery;
Subquery是一个返回插入到new_table表行的SELECT语句。使用subquery的结果决定new_table的结构和列的顺序。
不管SELECT引用的数据表有多少,CREATE
TABLE AS只向一个表中插入数据。新表不能和已存在的表同名。
为了可移植性,不要使用CREATE
TABLE AS或SELECT INTO。应该使用CREATE TABLE创建新的空表,然后使用INSERT SELECT添加值。
使用ALTER TABLE修改表
ALTER
TABLE table alter_table_action;
alter_table_action为:
ADD
COLUMN column type [constraint];
ALTER
COLUMN column SET DEFAULT expr;
DROP
COLUMN column [RESTRICT|CASCADE];
ADD
table_ constraint;
DROP
CONSTRAINT constraint_name;
使用DROP TABLE删除表
可以删除基本表和临时表。
删除表就意味着删除了表的结构、数据、索引、约束、授权等。
删除表并未删除引用这个表的视图。
DROP
TABLE table;
标准SQL允许指明RESTRICT(限制)或CASCADE(级联)删除行为,RESTRICT(安全的)防止删除视图或别的约束引用的表。CASCADE(不安全的)引发引用对象随着表一同被删除。
分享到:
相关推荐
主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理、可编程对象等内容。 书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中...
第22讲 SQL语言高级00--创建插入删除和更新数据.PPT第22讲 SQL语言高级00--创建插入删除和更新数据.PPT第22讲 SQL语言高级00--创建插入删除和更新数据.PPT
主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事务和一致性的处理、可编程对象等内容。 书中并非系统地罗列T-SQL的各种语法元素,而是结合实践中...
1.数据库的创建修改批量插入等基本操作及sql文件 2.数据表的约束、查询及sql文件 3.SQL server函数及sql文件 常量变量函数 4.关于cascade使用的sql文件 删除重复行只留一行的sql文件 5.数据表操作的习题课1和2的sql...
8.SQL 可在数据库中插入新的记录、删除记录。 1.SQL简介 SQL概要 SQL-86 1986年10月 1989年 1992年 1999年 2008年 2010年 SQL:2011 SQL:2008 SQL:2003 SQL:1999(SQL3) SQL-92(SQL2) SQL-89(FIPS 127-1) 1974年 2.SQL...
各类更新操作(插入数据(n) 、修改数据(1) 、删除数据(1) ) 各类查询操作(单表查询(1) 、连接查询(2) 、嵌套查询(2) 、集合查询(1) ) 视图操作 视图的创建(1)、删除 (1) 、查询(1) 、更新(1) 注意 (x) :x个SQL...
SQL 是用于访问和处理数据库的标准的计算机语言。 什么是 SQL?...• SQL 可在数据库中创建新表 • SQL 可在数据库中创建存储过程 • SQL 可在数据库中创建视图 • SQL 可以设置表、存储过程和视图的权限
本书重点阐述了SQL Server 2005的基础知识,前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表、主键、索引等项目,在表之间建立恰当的关系,并...
假设我们有一个名为employees的表,包含员工信息,以及一个名为departments的表,包含部门信息。我们想要执行一系列操作,包括创建表、插入数据、更新数据、查询数据以及删除数据。这就是一个SQL脚本的示例。
CREATE TABLE:创建表 ALTER TABLE:修改表结构 DROP TABLE:删除表 CREATE INDEX:创建索引 DROP INDEX:删除索引 数据操纵语言 (DML) INSERT INTO:插入数据 UPDATE:更新数据 DELETE FROM:删除数据 SELECT:...
第4章 数据表的创建与更新 第5章 基本查询操作 第6章 使用WHERE子句查询表 第7章 表中数据的排序 第8章 连接查询与集合查询 第9章 子查询 第10章 常用函数 第11章 视图的创建与维护 第12章 插入数据记录 第13章 修改...
第三章 关系数据库的基本理论 1.关系模式的定义 2.关系的性质 3.关系的三种完整性 4.关系代数运算 传统的集合运算、专门的关系运算 重点 第四章 SQL 重点 ...5.数据更新 插入、删除、更新表和视图操作
SQL(结构化查询语言)是用于管理关系型数据库的标准语言,主要用于在数据库中查询、插入、更新和修改数据。 一些基本SQL知识点包括: - 数据类型:每个数据库表的列都需要一个数据类型。一些常见的SQL数据类型包括...
SQL操作全集(非常适合初学者) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device ...
第1章 T-SQL查询和编程基础 1.1 理论背景 1.2 SQL SERVER体系结构 1.3 创建表和定义数据完整性 1.4 总结 第2章 单表查询 2.1 SELECT语句的元素 2.2 谓词和运算符 2.3 CASE表达式 2.4 NULL...
6、 掌握使用 SQL 语句插入、修改和删除数据表中的数据; 7、 掌握使用 SQL 语句创建、删除、查询和更新视图。 二、 实验内容 (一)创建数据库和模式 1、通过 SQL 语句创建图书信息管理数据库,命名为"db_Library...
4、创建一个DELETE触发器,当贷款表(LoanT)中的记录被删除时,将删除的贷款记录和删除日期插入到另外一张表L_D(Eno, Bno, Ldata, Lamount, Lterm, Deldata) 三、实验报告 将实验结果反映在实验报告中,并对实验...
主要VC环境应用sql语言操作SQL数据库(包括添加、删除指定行,修改单元格值)
内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图...
第1章 数据库与sql基础 1 1.1 数据库的基本概念 1 1.1.1 数据库的由来 1 1.1.2 数据库系统的概念 3 1.2 数据库系统的结构、组成及工作流程 3 1.2.1 数据库的体系结构 3 1.2.2 数据库系统的组成 4 1.2.3 ...