SQL 语法--表特定语句--alter、drop、view | 学习笔记

简介: 快速学习 SQL 语法--表特定语句--alter、drop、view

开发者学堂课程【大数据Impala教程SQL 语法--表特定语句--alter、drop、view学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/722/detail/12894


SQL 语法--表特定语句--alter、drop、view


内容介绍:

一、Alter table

二、truncate table

 

一、Alter table

Alter 关键字主要用于对表执行相关的更改的操作,比如说用 Alter 加上 rename to 就可以去修改一个表的名字。全称就是 Alterer table 原来数据库下的表把它改为一个新的数据表下新的表名。

另外一个用 Alter 加上 ADD COLUMNS 就可以向表中增加列,后面列可以增加多个,接下来加上 DROP 关键字就相当于可以去删除列,同样的用 CHANGE 关键字可以去更改一个列的字段类型和它的名字,这一个跟 Hive 比较类似。

事实上在企业实际开发过程中,当去创建一个表, 觉得它当中的名字、字段类型不正确的时候,通常有两种方式可以做:第一种,把它用 Alter 语句进行一个修改,另外一种直接可以把它重新创建,在创建的时候指定这两种都是可以完成的。

针对表的删除语句

针对表的删除语句主要有两个,一个叫做 drop,一个叫做 truncatedrop 语句跟汉语中比较类似,但是要特别注意,如果说 dropimpala 当中这个表是一个内部表,它会连同表以及它的数据全部删除,创建一个表最终会位于 HDLS 的一个路径下,这个数据将会也消失。

image.png

比如去创建两个表,一个叫做内部表,如下图:

首先 create table,第一个表叫做内部表 inner,这个表简单写一下字段,有一个 id int 类型的,然后有一个 name steing 类型的,这是第一个表,插入一条数据 insert into table t-inner values。当创建成功之后,这一个 t-inner 表就会位于的 HDLS 当中,刷新一下,这个表对应的文件夹下面是它的文件,这是内部表。

image.png

接下来创建一个外部表,如下图

外部表跟 Hive 很类似,在创建表的时候加上关键字 external 来指定具体的路径。创建的 external table,叫做 t-叫做outer,这个表也是有两个字段,intname string,在创建这个表的时候可以指定一个路径叫做 location。这个路径先不写,先创建路径,用 hadoop 命令做一个创建,比如叫做 hadoop fs -mkdir,就是 impala/outer。这时候因为它是一个副路径,前面加上一个-p 的参数,比如说等一下把数据指定到这个路径当中,注意这个路径上来说,再给它收一个执行的权限,否则的话它不可能创建成功的,会有权限拒绝的问题。这样相当于创建一个路径,impala 路径下有一个 Alter,这权限是足够的,接下来把这个路径作为它外部表的一个所在,加上最后的分号,这样就创造了一个外部表。同样的使用 insert into 语法往里面插入条数据,into table,叫做 t-outer,同样也给它指定两个字段,比如二号叫做 lisi,这样就创建了一个外部表,并且它也有数据,刷新看,实在没有数据了,大多数情况下创建的是一个没有加上external 这样的关键字的表,比如说刚才创建的 t-inner 这个表。现在使用 show 命令、show tables,发现内量表都可以看见,如果说这两个表都不好进行删除,首先去 drop table t-inner 它是一个内部表,执行后,这个表再去查看已经没有了,drop 这个表,除了把它的原数据相关性删除之外,连同这个表位于 htl 的文件也会消失。

接下来验证一下,内部表默认路径下,在 user hive warehouse impala,发现那个文件夹连同文件夹的东西都没有了,还有一个 impala outer 一个外部表,把它删除, drop table t-outer ,查看这个表单没有了,但是做一个刷新,会发现数据依然存在。如果一个表是一个内部表的话一定要特别慎重,因为一不小心可能表对应的数据在 htl 上的文件也会消失。

 

二、truncate table

这个语句主要是删除表中的记录,但是保留表的结构,跟基本的 SQL 语法一致,比如有一个表想把里面的数据做个清空,但是这个表又不想把它删除,就是表的结构还保留下来,直接 truncate table 就可以完成,这样就可以完成针对表相关的删除操作,当然大多数情况下是 drop table 一定要慎重。

view 视图

在这个条件下中,它也支持视图的概念,相当于一个预查询的 SQL 语句,一个虚拟的表,创建视图用 create view 后面加一个视图的名字,然后 as 后面就是要查询的语句。

image.png

如图,直接针对一个表进行查询:

直接 select*from employee,在这种情况下相当于一个普通查询,没有任何的视图概念,这种查询不好的地方在于,比如在企业当中,一个表当中有很多字段涉及到非常严重的隐私问题,不需要开发者能够看到,就可以把一些查询语句预先创建成一个试图让它需要查询的时候,针对视图进行操作。

创建视图语句叫做 create view,后面是一个选择叫做 if not exists,如果不存在创建,如果存在就不创建,比如创建一个视图叫做 impala view。这个叫做视图名字,后面 as 就是 select 语句,在 select 查询当中,除了 select*之外,也可以去查询指定的,比如只想让这个查询者看到 ID name 以及年龄,关于 salay,不希望看到,这样就可以创建这样一个视图:

image.png

后续的话用户就可以针对这个视图进行相关操作,比如来一个 Select * from 这个视图。发现实际上视图底层就会持续执行 select 语句,反过来相关的结果相当于一个虚拟的表盘,更加专业的叫以预定义的 SQL 查询形式的表的组合,这个查询过程当中可以是所有的行也可以是指定的行

修改视图用 alter view 跟之前的一样,最终如果不想要直接是 drop view 即可,比如想把视图给它删除掉,直接来一个drop view,然后视图的名字 impala view,这样就可以进行相关的删除了。

image.png

然后再去配合其它软件做一个权限控制,若给保留一些查询的只创建一些视图,但是权限只能够达到去看这些视图,并不能去做相关的查询,那之后权限只能去针对视图进行操作,创建视图,相当于某种程度上做了一个技术上的屏蔽,这就是修改表结构、删除表以及视图的使用。

相关文章
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
333 8
|
3月前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
3月前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
12月前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
1061 56
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
11月前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
3567 11
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
392 3
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
209 5
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
309 0
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
171 0