设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 创业 > 点评 > 正文

数据产品经理必备之SQL基础(3)

发布时间:2019-11-12 23:11 所属栏目:27 来源:互联网
导读:视图是一个虚拟表,包含一系列带有名称的列和行数据,但视图并不是数据库真实存储的数据表。存储在数据库中的查询操作 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成

视图是一个虚拟表,包含一系列带有名称的列和行数据,但视图并不是数据库真实存储的数据表。存储在数据库中的查询操作 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成这些数据。视图的结构形式和表一样,可以进行查询、修改、更新和删除等操作。

(1)创建视图

语法格式:

CREATE VIEW <视图名> AS <SELECT语句>

语法说明:

  • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  • <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

示例:

create view view_name as select * from table_name;

(2)查看视图

语法格式:

DESCRIBE <视图名>;

语法说明:

  • <视图名>:查看的视图名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。

示例:

describe view_name;

(3)修改视图

语法格式:

ALTER VIEW <视图名> AS <SELECT语句>

语法说明:

  • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
  • <SELECT 语句>:指定修改视图的 SELECT 语句,可用于查询多个基础表或源视图。

示例:

alter view view_name as select * from table_name;

(4)删除视图

语法格式:

DROP VIEW <视图名1> [ , <视图名2> …]

语法说明:

  • <视图名>:指定删除的视图名称。

示例:

drop view view_name;

4. 索引

索引是一种十分重要的数据库对象。索引是数据库性能调优技术的基础,常用于实现数据的快速检索。对表建立一个索引,在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。索引存储了指定列数据值的指针,根据指定的排序顺序对这些指针排序。

(1)创建索引

语法格式:

CREATE <索引名> ON <表名> (<列名> [<长度>] [ ASC | DESC])

此外,还可以在CREATE TABLE 、ALTER TABLE时创建索引

语法说明:

  • <索引名>:指定索引名。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的。
  • <表名>:指定要创建索引的表名。
  • <列名>:指定要创建索引的列名。通常可以考虑将查询语句中在 JOIN 子句和 WHERE 子句里经常出现的列作为索引列。
  • <长度>:可选项。指定使用列前的 length 个字符来创建索引。使用列的一部分创建索引有利于减小索引文件的大小,节省索引列所占的空间。在某些情况下,只能对列的前缀进行索引。索引列的长度有一个最大上限字节数,如果索引列的长度超过了这个上限,就只能用列的前缀进行索引。另外,BLOB 或 TEXT 类型的列也必须使用前缀索引。
  • ASC|DESC:可选项。ASC指定索引按照升序来排列,DESC指定索引按照降序来排列,默认为ASC。

示例:

create index index_name on table_name(column_name,column_name)

(2)删除索引

语法格式:

DROP INDEX <索引名> ON <表名>

语法说明:

  • <索引名>:要删除的索引名。
  • <表名>:指定该索引所在的表名。

示例:

drop index index_name on table_name

5. 事务

事务是并发控制的单位,是用户定义的一个操作序列,主要用于处理操作量大,复杂度高的数据。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL能将逻辑相关的一组操作绑定在一起,以便保持数据的完整性。

一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,又称为不可分割性)、一致性(Consistency)、隔离性(Isolation,又称为独立性)、持久性(Durability)。

(1)开始事务

语法格式:

BEGIN TRANSACTION <事务名称> |@<事务变量名称>

语法说明:

  • @<事务变量名称>是由用户定义的变量,必须用 char、varchar、nchar 或 nvarchar数据类型来声明该变量。
  • BEGIN TRANSACTION 语句的执行使全局变量 @@TRANCOUNT 的值加 1。

示例:

begin transaction

(2)提交事务

语法格式:

COMMIT TRANSACTION <事务名称> |@<事务变量名称>

语法说明:

COMMIT TRANSACTION语句的执行使全局变量 @@TRANCOUNT 的值减 1。

示例:

commit transaction

(3)撤销事务

语法格式:

ROLLBACK [TRANSACTION] [<事务名称>| @<事务变量名称> | <存储点名称>| @ <含有存储点名称的变量名>

语法说明:

  • 当条件回滚只影响事务的一部分时,事务不需要全部撤销已执行的操作。可以让事务回滚到指定位置,此时,需要在事务中设定保存点(SAVEPOINT)。保存点所在位置之前的事务语句不用回滚,即保存点之前的操作被视为有效的。保存点的创建通过“SAVING TRANSACTION<保存点名称>”语句来实现,再执行“ROLLBACK TRANSACTION<保存点名称>”语句回滚到该保存点。
  • 若事务回滚到起点,则全局变量 @@TRANCOUNT 的值减 1;若事务回滚到指定的保存点,则全局变量 @@TRANCOUNT 的值不变。

示例:

rollback

6. 约束

(1)主键约束

主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行,这样的一列或多列称为表的主键,通过主键约束可以强制表的实体完整性。

语法格式:

<字段名> <数据类型> PRIMARY KEY [默认值]

示例:

PRIMARY KEY(id)

(2)唯一约束

唯一约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束能够确保一列或者几列不出现重复值。

语法格式:

<字段名> <数据类型> UNIQUE

示例:

unique(id)

(3)外键约束

外键约束用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。

语法格式:

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]

REFERENCES <主表名> 主键列1 [,主键列2,…]

语法说明:

外键名为定义的外键约束的名称,一个表中不能有相同名称的外键;字段名表示子表需要添加外健约束的字段列;主表名即被子表外键所依赖的表的名称;主键列表示主表中定义的主键列或者列组合。

示例:

foreign key(id)

(4)非空约束

非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。

语法格式:

<字段名> <数据类型> NOT NULL;

示例:

id int(10) not null

(5)检查约束

检查约束基于行中其他列的值在特定的列中对值进行限制,用于限制列中的值的范围。

语法格式:

CHECK <表达式>

语法说明:

<表达式>指的就是 SQL 表达式,用于指定需要检查的限定条件。

示例:

check(id>0)

小结

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读