Clickhouse数据库基本操作
一、先提出几个问题
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
相关文章