SQL 语法--表特定语句--create、insert、desc | 学习笔记

简介: 快速学习 SQL 语法--表特定语句--create、insert、desc

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

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


SQL 语法--表特定语句--create、insert、desc


内容介绍:

一、create table 语句

二、insert 语句

三、查询语句


一、create table 语句

1.概括

学习 impala 语法中跟表相关的特定语句。操作表相关的语句整体来看,跟 hive 的 SQL 语句类似。甚至在底层语法层面,包括指定分割符,指定路径,内部表等等,都跟 hive 一模一样,这点不用担心,直接把 hive 语法套过来使用。

2.创建表语句

语法以及当中有哪些重点需要注意的事项。第一个是 cerate table 创建表语句。在 impala 中创建的表分为两大块,第一块叫做内部表,默认路径会在 hive 的数仓下面,第二块可以指定路径,需要注意,当指定路径通过 location 创建时,要注意指定路径 impala 权限问题。指定一个路径在根目录下另外一个文件夹中。impala 默认以 impala 用户访问。如果没有权限,会有权限不足的问题,需要特别注意的。impala 中支持的数据类型和 hive 类似,除了标准的 SQL 类型,还支持 Java 类型。且大小写不敏感。在 impala 当下的版本中,已经支持了复合类型。想要知道当下 impala 支持是哪些类型。

3.操作

打开 impala shell 客户端,创建一个表 createtabletable t_test1(id int,hobby,arrarrry<string>)故意写错后回车,会报错类型不对。

image.png

下面做了一个提示,期望的类型有这些 array,bigint,Boolean,struct 等。这一块和 hive 非常类似。如果不加 if not exists 会报错,加了就不会。在默认情况下,创建的表位于的路径跟 hive 一模一样。在 user/hive/warehouse/my_db.db/student 下,以数据库名加上表名的形式存在。


二、insert 语句

1.概括

第二个语句叫 insert 语句,在 impala 当中用得比较多。在 hive 中很难去 insert 语句。执行一个 insert 中,底层会跑一个程序,这个效率是极其慢的。hive 中倡导使用命令加载、映射数据。但是 impala 底层不是执行语句,可以像关系型数据库那样,对大量的语句进行 insert 操作,整个 insert 语法有两个子句:into 和 overwrite。into 用于插入新纪录数据,overwrite 用于覆盖已有的记录。

2.演示

在 hive 中 show database,切换同一个数据库,同时使用 impala 数据库,创建一个表 create table,在 impala 中创立 create table t_test1(id int,name string)创建表后,如果有特殊需求,k也可以指定表中的分割符。在 insert into table t_test1 values(1,“zhangsan”);回车可以看见是3.93秒的操作,

image.png

接下来复制到 hive 中进行执行。改名为 test2 回车,

image.png

同样把 insert 语句放入 hive 中执行,效率会变慢。可以进入 hive 中看到程序在跑。说明在底层,hive 如果采用 insert 语法会非常慢。在 impala 中使用这种语法则会非常快。在进行操作时,有一个表后面的字段可以省去不写。前提是保证后面插入的确保值的顺序和表中列的顺序一致。

3.举个例子

(1)create into employee id INT,name STRING, age INT,address STRING,salary BIGINT

复制进行操作。创建一个表,叫做 employee,里面有(id INT,name STRING, age INT,address STRING,salary BIGINT)这些字段。创建好之后,截取插入记录类似于 insert into employee values2'Khilan'25'Delhi'15000),再插入相似记录。select * from employee,速度非常快。

(2)     如果第三条记录插入,不再使用 insert into 插入,而是 insert overwrite,已知 overwrite 会覆盖已有记录。插入第三条记录后发现记录全部消失。因此,overwrite 要慎用。这样就完成了表的插入语句。也是 impala 中特有的插入表的方式。因为底层执行速度很快。

(3)默认情况下,创建的表插入语句都没有指定分割符。打开 node-1 ,来到 hive 的默认路径下,在 user/hive/warehouse/impala.dbemployee impala 插入表的数据。下载这里面的相关数据,打开文件发现数据中就是刚刚插入的表的数据。但是分割符不是所看见的。因此,impala hive 的性质十分相似。文件名字不像 M 码的名字,侧面看出 impala 底层并不是 M 码程序。而 test2底层的文件就比较有规则。以上是没有指定分割符。如果想要有指定分割符,进行如下演示。创建一个表 create table t_test3id intname string)指定分割符 row format delimited fields terminated by “,”;这样就相当于指定分割符为逗号,如果是复合类型,也可以指定集合元素之间的换行符。再通过 insert into table 更改信息插入执行,用 select 查询,再验证。download 下来发现指定分割符不再是指定的符号。因此,跟 hive 在底层来看完全一致。只不过一个通过 M 码程序运行算出来,另一个通过 C++程序运行算出。


三、查询语句

1.select 语句

可以从表中进行字段的提取,如果是全表的字段,还可以指定列。

2.describe 语句

该语法可以帮助查看表的相关信息。

(1)举例

例如,刚入职一家公司,接手了 impala 数据库,打开之后看到有很多表。好奇表中有哪些字段,哪些信息,可快速用该语法查看信息。在 hive 中的 desc 是简写,针对表查询信息会非常清晰,属于哪个数据库,时间,路径,读取数据的分割符等都能查看。

(2)操作

将命令复制到 impala 进行回车发现,找不到 t_test2,说明在 hive 中创建的表默认不能更新。此时可以用 invalidate metadata 执行,再 show tables 就有了 test2 。将 hive 语法复制到 impala 执行回车,结果相同,说明 impala hive 共用同一套元数据。当下脱离了 hive impala也完成不了。因此,除了使用本身的 describe,还能使用 desc formated,这样查看表的元数据信息会更加清晰。

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