前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《深入浅出SQL》问答录(十)

《深入浅出SQL》问答录(十)

作者头像
看、未来
发布2020-08-25 17:03:45
4370
发布2020-08-25 17:03:45
举报
在这里插入图片描述
在这里插入图片描述

花絮

检查约束

代码语言:javascript
复制
CREATE TABLE piggy_bank(
	id INT NOT NULL PRIMARY KEY,
	coin CHAR(1) CHECK (coin IN ('P','N','D','Q'))
);

CHECK(检查)用于限定允许插入某个列的值。它与WHERE子句都使用相同的条件表达式。 如果插入的值无法通过CHECk条件,则出现错误信息。

代码语言:javascript
复制
ALTER TABLE my_contacts
ADD CONSTRAINT CHECk gender IN ('M','F');

视图

创建视图
代码语言:javascript
复制
CREATE VIEW web_designers AS
SELECT mc.first_name,mc.last_name.mc.phone,mc.email
FROM my_contacts mc
NATURAL JOIN job_desired jd
WHERE jd.title = 'Web Designer';
查看视图

就像普通表那样。

代码语言:javascript
复制
SELECT * FROM web_designers;
视图的实际行动
代码语言:javascript
复制
SELECT* FROM(
SELECT mc.first_name,mc.last_name,mc.phone,mc.email
FROM my_contacts mc
NATURAL JOIN job_desired jd
WHERE jd.title = 'Web Designer' AS web_designers;
)

最后为什么要用个AS呢?因为当SELECT语句的结果是一个虚表时,若没有别名,SQL就无法取得其中的表。

为什么视图对数据库有好处?
  1. 如果创建了视图,就不需要重复创建复杂的联接与子查询。视图隐藏了子查询的复杂性。当SQL其他编程语言结合后,把视图加入程序代码会比加入冗长、复杂、充满联接的查询更简单。
  2. 为数据库创建属兔,可用于改变底层表结构时以视图模仿数据库的原始结构,因而无需修改使用旧结构的应用程序。
  3. 创建视图可以隐藏读者无需看到的消息。
  4. 可以对视图进行增删改、约束等操作,这些操作会被写入原表,不过这需要包括NOT NULL的值,所以少这么干。
销毁视图
代码语言:javascript
复制
DROP VIEW pb_dimes;

事务

事务是一群可以完成一组工作的SQL语句。

代码语言:javascript
复制
START TRANSACTION;	--持续追踪后续所有SQL语句

COMMIT; --提交所有程序代码造成的改变

ROLLBACK;	--回滚,回到事务开始前

问答录

Q:可以查看以创建的视图吗?

A:SHOW TABLES;


Q:如果我卸载了有视图的表,会发生什么事?

A:看情况。有的RDBMS允许使用视图,但不返回数据。一般而言,最好先去除视图,然后再卸载它所依据的表。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 花絮
    • 检查约束
      • 视图
        • 创建视图
        • 查看视图
        • 视图的实际行动
        • 为什么视图对数据库有好处?
        • 销毁视图
      • 事务
      • 问答录
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档