ClickHouse第五讲-CKSQL语法

SQLDDL操作

DDL
言中修改表结构仅支持 Merge 表引擎、 Distributed 表引擎及 MergeTree 家族的表引
,SQL 中的库、表、字段严格区分大小写。

创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE
= engine(...)]
例子:create database if not exists test_db;

查看数据库

SHOW DATABASES;

删除数据库

DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]
node1 :) drop database test_db;
在创建数据库时,在 /var/lib/clickhouse/metadata/目录下会有对应的 库目录和库 .sql 文件,库目录中会存入在当前库下建表的信息, xx.sql 文件中存入的是 建库的信息
当删除数据库时, /var/lib/clickhouse/metadata/ 目录下对应的库目录和
xx.sql 文件也会被清空。

创建表

#第一种
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) ENGINE = engine
#第二种
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS [db2.]name2 [ENGINE
= engine]
#第三种
CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = engine AS
SELECT ...
注意:以上普通第一种建表语句是直接创建表。第二种创建表方式可以创建一个与 db2 中 name2 一样结构的表,也可以指定表引擎,也可以不指定,不指定默认与 db2 中的 name2 表引擎一样,不会将表 name2 中的数据填充到对应的新表中。第三种方式可以指定引擎创建一个与 Select 子句的结果相同结构的表,并将 Select 子句的结果填充它
   CREATE TABLE IF NOT EXISTS newdb.t1 ( `id` UInt8 DEFAULT 0 COMMENT '编号',
`name` String DEFAULT '无姓名' COMMENT '姓名', `age` UInt8 DEFAULT 18 COMMENT '年龄' )ENGINE = TinyLog   
第二种方式创建表:
create table if not exists t2 engine = Memory as  newdb.t_tinylog
第三种方式创建表:
create table if not exists t3 engine = Memory as select * from newdb.t_tinylog where id >2;
查看表:
show tables;
show tables in default
查看表的定义
show create table XXX
show create table t3
查看表的定义语法
desc XXX
删除表的语法:
DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
修改表的语法:
ALTER   TABLE [db].name   [ON  CLUSTER cluster] ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN ...
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值