Clickhouse数据库基本操作

2022-04-06 00:00:00 创建 数据库 语法 替换 引擎

一、先提出几个问题

1、  如何复制一个表?

2、  为何增加表列失败?

3、  如何替换表中某列的某个字符串?

二、先看看clickhouse的基本操作

1.    创建数据库CREATE DATABASE

语法:CREATE DATABASE [IF NOT EXISTS] db_name

如果数据库db_name已经存在,则不会创建新的db_name数据库。

2.    创建表CREATE TABLE

语法:

CREATE TABLE [IF NOT EXISTS][db.]table_name [ON CLUSTER cluster]

(name1 [type1] [DEFAULT|MATERIALIZED|ALIASexpr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],...) ENGINE = engine

在指定的‘db’数据库中创建一个名为’name’的表,如果查询中没有数据库’db’,则默认使用当前选择的数据库作为’db’。后面的‘()’括号中的内容为表结构及引擎声明。

其中:DEFAULT expr – 默认值,如果INSERT中不包含指定的列,那么将通过表达式计算它的默认值并填充它;

MATERIALIZED expr – 物化表达式,被该表达式指定的列不能被INSERT,因为它总是被计算出来的,对于INSERT而言,不需要考虑这些列。 另外,在SELECT查询中如果包含星号,此列不会被查询;

ALIAS expr – 别名,这样的列不会存储在表中。它的值不能够通过INSERT写入,同时使用SELECT查询星号时,这些列也不会被用来替换星号,但是它们可以显示的用于SELECT中,在这种情况下,在查询分析中别名将被替换。

三种方式创建表:

1)     直接创建

语法:CREATE TABLE t1(id UInt16,name String) ENGINE=TinyLog

例如:create table t1(id UInt8,name String,address String)engine=MergeTree order by id

相关文章