《深入浅出SQL》问答录(十)
时间:2022-07-23
本文章向大家介绍《深入浅出SQL》问答录(十),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
花絮
检查约束
CREATE TABLE piggy_bank(
id INT NOT NULL PRIMARY KEY,
coin CHAR(1) CHECK (coin IN ('P','N','D','Q'))
);
CHECK(检查)用于限定允许插入某个列的值。它与WHERE子句都使用相同的条件表达式。 如果插入的值无法通过CHECk条件,则出现错误信息。
ALTER TABLE my_contacts
ADD CONSTRAINT CHECk gender IN ('M','F');
视图
创建视图
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';
查看视图
就像普通表那样。
SELECT * FROM web_designers;
视图的实际行动
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就无法取得其中的表。
为什么视图对数据库有好处?
- 如果创建了视图,就不需要重复创建复杂的联接与子查询。视图隐藏了子查询的复杂性。当SQL其他编程语言结合后,把视图加入程序代码会比加入冗长、复杂、充满联接的查询更简单。
- 为数据库创建属兔,可用于改变底层表结构时以视图模仿数据库的原始结构,因而无需修改使用旧结构的应用程序。
- 创建视图可以隐藏读者无需看到的消息。
- 可以对视图进行增删改、约束等操作,这些操作会被写入原表,不过这需要包括NOT NULL的值,所以少这么干。
销毁视图
DROP VIEW pb_dimes;
事务
事务是一群可以完成一组工作的SQL语句。
START TRANSACTION; --持续追踪后续所有SQL语句
COMMIT; --提交所有程序代码造成的改变
ROLLBACK; --回滚,回到事务开始前
问答录
Q:可以查看以创建的视图吗?
A:SHOW TABLES;
Q:如果我卸载了有视图的表,会发生什么事?
A:看情况。有的RDBMS允许使用视图,但不返回数据。一般而言,最好先去除视图,然后再卸载它所依据的表。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第22天:NLP实战(六)——基于PaddleHub的疫情期间网民情绪识别
- Echarts大数据可视化物流航向省份流向迁徙动态图,开发全解+完美参数注释
- Linux 常用操作以及概念
- GCD梳理与总结——封装
- 原生JS在网页上复制的所有文字后面自动加上一段版权声明
- 使用宝塔docker安装为知笔记私有部署
- 第4天:美团点评2020校招测试方向笔试试卷分析
- Element-UI饿了么时间组件控件按月份周日期,开始时间结束时间范围限制参数
- 微信小程序flex布局
- 细数 TS 中那些奇怪的符号
- 安装RabbitMQ无法访问localhost:15672的管理界面解决
- koa中http服务与websocket服务共享端口
- 第23天:NLP实战(七)——中文新闻主题分类
- Swoole v4.5.3 版本发布
- .NET5.0 单文件发布打包操作深度剖析