1.3学习cockroachSQL

1.3.1 关键的sql语句:

cockroachDB支持标准的SQL延伸,但是一些标准的SQL函数还不可用,详细清查看Sql 特点支持页面,查看更多细节

**创建数据库
cockroah自带单一的默认系统数据库,包含cockroachDB的元数据是只读的

root@:26257/> create database bank;

数据库命名必须遵从这些规则:
https://www.cockroachlabs.com/docs/stable/keywords-and-identifiers.html#identifiers

即:
1)以unicode字母或者下划线开头,后面的字母可以是字母、下划线、数字(0-9)、美元($)
2) 不能使用SQL关键字

root@:26257/> create database bank;

避免数据库存在,可以使用如下语句
----数据库已经存在,也不会有提醒,输出如下

root@:26257/> create database if not exists bank;
CREATE DATABASE
Time: 5.798442ms

删除数据库和其中的所有对象:
root@:26257/> drop database bank;

**查看数据库

root@:26257/> show databases;
+--------------------+
|      Database      |
+--------------------+
| bank               |
| crdb_internal      |
| information_schema |
| pg_catalog         |
| system             |
+--------------------+
(5 rows)

Time: 9.822993ms

**设置默认数据库:
root@:26257/> show database
           -> ;
+----------+
| database |
+----------+
|          |
+----------+
(1 row)

Time: 2.163744ms

设置默认数据库,不需要明确的引用
root@:26257/> set database = bank;
SET

Time: 5.578012ms

查看默认数据库
root@:26257/bank> SHOW database;
+----------+
| database |
+----------+
| bank     |
+----------+
(1 row)

Time: 2.164562ms

**创建一个表
root@:26257/> create table bank.accounts(id int primary key,balance decimal);
CREATE TABLE

Time: 49.272314ms
定义数据类型和约束,
数据类型:https://www.cockroachlabs.com/docs/stable/data-types.html
约束: https://www.cockroachlabs.com/docs/stable/constraints.html

当你没有显示的定义一个主键,cochroach会西东定义一个隐藏的rowid作为主键root@:26257/bank> create table if not exists accounts(
               -> id int primary key,
               -> balance decimal);
CREATE TABLE

Time: 24.13113ms

查看表中的所有列:root@:26257/bank> show columns from accounts;
+---------+---------+-------+---------+-------------+
|  Field  |  Type   | Null  | Default |   Indices   |
+---------+---------+-------+---------+-------------+
| id      | INT     | false | NULL    | {"primary"} |
| balance | DECIMAL | true  | NULL    | {}          |
+---------+---------+-------+---------+-------------+
(2 rows)

Time: 39.56398ms

删除表及数据:
root@:26257/bank> drop table accounts;

**查看table
root@:26257/bank> show tables;
+----------+
|  Table   |
+----------+
| accounts |
+----------+
(1 row)

Time: 8.02106ms

查看其他数据库的表
root@:26257/bank> show tables from animals;
+-------+
| Table |
+-------+
| frogs |
+-------+
(1 row)

Time: 9.405729ms

**插入行

root@:26257/> insert into bank.accounts values (1,1000.50) ;
INSERT 1

乱序插入:
root@:26257/bank> INSERT INTO accounts(balance, id) VALUES (25000.00, 3);
INSERT 1

Time: 13.715741ms

插入多行:
root@:26257/bank> insert into accounts values (4,8100.73),(5,9400.10);
INSERT 2

Time: 13.452986ms

默认值使用,本例子中默认值为空

root@:26257/bank> insert into accounts (id) values (7);
INSERT 1

Time: 40.842133ms

root@:26257/bank> insert into accounts (id,balance) values (6,default);
INSERT 1

Time: 8.194243ms

root@:26257/bank> select * from accounts where id in (6,7);
+----+---------+
| id | balance |
+----+---------+
|  6 | NULL    |
|  7 | NULL    |
+----+---------+
(2 rows)

Time: 3.471182ms

**创建索引:
索引帮助去定位数据,而不需要去扫描表内的每行数据,自动创建表的主键,有独立约束。

为非唯一列创建索引:
root@:26257/bank> create index balance_idx on accounts(balance desc);
CREATE INDEX

Time: 637.757236ms

在表创建中,可以使用索引
root@:26257/bank> create table custom(id int,name string,index name_idx(name desc));
CREATE TABLE

Time: 49.841363ms

**查看索引

root@:26257/bank> show index from accounts;
+----------+-------------+--------+-----+---------+-----------+---------+----------+
|  Table   |    Name     | Unique | Seq | Column  | Direction | Storing | Implicit |
+----------+-------------+--------+-----+---------+-----------+---------+----------+
| accounts | primary     | true   |   1 | id      | ASC       | false   | false    |
| accounts | balance_idx | false  |   1 | balance | DESC      | false   | false    |
| accounts | balance_idx | false  |   2 | id      | ASC       | false   | true     |
+----------+-------------+--------+-----+---------+-----------+---------+----------+
(3 rows)

Time: 17.100527ms

**查询数据

root@:26257/bank> select balance from accounts;
+----------+
| balance  |
+----------+
|  1000.50 |
|   800.50 |
| 25000.00 |
|  8100.73 |
|  9400.10 |
| NULL     |
| NULL     |
+----------+
(7 rows)

Time: 7.391805ms

root@:26257/bank> select * from accounts;
+----+----------+
| id | balance  |
+----+----------+
|  1 |  1000.50 |
|  2 |   800.50 |
|  3 | 25000.00 |
|  4 |  8100.73 |
|  5 |  9400.10 |
|  6 | NULL     |
|  7 | NULL     |
+----+----------+
(7 rows)

Time: 6.413298ms

root@:26257/bank> SELECT * FROM accounts where balance >9000;
+----+----------+
| id | balance  |
+----+----------+
|  3 | 25000.00 |
|  5 |  9400.10 |
+----+----------+
(2 rows)

Time: 4.9048ms

root@:26257/bank> SELECT * FROM accounts order by balance desc;
+----+----------+
| id | balance  |
+----+----------+
|  3 | 25000.00 |
|  5 |  9400.10 |
|  4 |  8100.73 |
|  1 |  1000.50 |
|  2 |   800.50 |
|  6 | NULL     |
|  7 | NULL     |
+----+----------+
(7 rows)

Time: 4.358385ms

**更新行

root@:26257/bank> update accounts set balance = balance - 5.50 where balance < 10000;
UPDATE 4

Time: 74.469221ms

root@:26257/bank> select * from accounts;
+----+----------+
| id | balance  |
+----+----------+
|  1 |   995.00 |
|  2 |   795.00 |
|  3 | 25000.00 |
|  4 |  8095.23 |
|  5 |  9394.60 |
|  6 | NULL     |
|  7 | NULL     |
+----+----------+
(7 rows)

Time: 6.937405ms
如果一个表有主键,可以使用where子句去更新具体的行,否则每个行匹配到where字句会被更新。

**删除表

root@:26257/bank> delete from accounts where id in (6,7);
DELETE 2

Time: 42.058324ms

root@:26257/bank> select * from accounts;
+----+----------+
| id | balance  |
+----+----------+
|  1 |   995.00 |
|  2 |   795.00 |
|  3 | 25000.00 |
|  4 |  8095.23 |
|  5 |  9394.60 |
+----+----------+
(5 rows)

Time: 2.664848ms

cockroach官方文档翻译---1.3 学习cockroachSQL相关推荐

  1. scikit_learn 官方文档翻译(集成学习)

    1.11. Ensemble methods(集成学习) 目标: 相对于当个学习器,集成学习通过使用多个基学习器的预测结果来来提高学习预测的泛化性能以及鲁棒性: 集成学习的两个思路: 1).通过使用并 ...

  2. db4o_8.0对象数据库官方文档翻译_学习笔记三

    紧接上篇:db4o_8.0对象数据库官方文档翻译_学习笔记二 3. Object Manager Enterprise Overview(OME视图)即OME插件的使用 If you did not  ...

  3. Okio学习之官方文档翻译

    Okio学习之官方文档翻译 链接: Okio官方文档连接 Okio是一个对java.io和java.nio的补充库.它使我们对数据的访问.存储和加工更加容易. 它最初是作为 OkHttp的一个组件库, ...

  4. 欢迎参与 KubeVela 官方文档翻译活动

    来源 | 阿里巴巴云原生公众号 背景 KubeVela v1.0 启用了新的官网架构和文档维护方式,新增功能包括文档版本化控制.i18n 国际化以及自动化流程.但目前 KubeVela 官方文档只有英 ...

  5. 【KubeVela 官方文档翻译】,欢迎大家踊跃参与

    简介:KubeVela v1.0 启用了新的官网架构和文档维护方式,新增功能包括文档版本化控制.i18n 国际化以及自动化流程.但目前 KubeVela 官方文档只有英文版,这提高了学习和使用 Kub ...

  6. Log4j2官方文档翻译--欢迎使用Log4j2!

    官网原文标题<Welcome to Log4j 2!> 官网原文地址http://logging.apache.org/log4j/2.x/manual/index.html 译者:本文介 ...

  7. Jess 7.2p2——Java平台规则引擎官方文档翻译1

    Jess 7.2p2--Java平台规则引擎官方文档翻译1 本博客转载自本体小本营. 1.入门 1.1.需求 在使用Jess前请先确认JVM是否正确安装并能正常工作. 使用JessDE集成开发环境,你 ...

  8. Ionic Framework 5官方文档翻译

    Ionic Framework 5官方文档翻译 入门 Ionic Framework 5特点 Ionic Framework是什么? 核心概念 构建你的第一个应用 先进的Web应用 浏览器支持 版本控 ...

  9. 【iOS官方文档翻译】iOS蓝牙的基本概念

    之前写了[iOS官方文档翻译]iOS的蓝牙连接.数据接收及发送一文,介绍了怎样进行蓝牙通讯,但是很多基本概念没有进行解释,看起来可能有点吃力,所以现在再翻译一篇苹果对官方蓝牙4.0一些基本概念介绍的文 ...

最新文章

  1. 数据变金矿:一文读懂序列模型(附用例)
  2. Mysql数据库权限问题
  3. 通信数字信号处理基本知识
  4. 面向对象的软件测试技术
  5. python爬虫电商京东_python爬虫-京东商品爬取
  6. 剑桥的商学院硕士的创业项目找我做tech lead,稳得一批
  7. 如何做好一名软件实施人员 (转载)
  8. 【OpenCV 例程200篇】31. 图像金字塔(cv2.pyrDown)
  9. MongoDB 教程索引 (附有视频)
  10. python编程从入门到实践第八章_Python编程从入门到实践的第三天
  11. 八 理解各种不同含义的new和delete
  12. hash算法总结收集
  13. linux硬盘检测工具下载,硬盘健康检测软件(HDSentinel Linux服务器版)
  14. 专为Oracle数据库恢复而生 - PRM
  15. c语言的指针思维导图,指针基础知识(含思维导图)
  16. 双机热备份VRRP原理详解(附实验)
  17. win10u盘一直正在计算机,Windows10未插入U盘却一直显示的解决方法
  18. RMAN恢复Oracle数据库到不同的服务器
  19. html怎么把字做成动画效果,用纯CSS实现文字的动态效果
  20. JavaScript 实现 标签页 切换效果

热门文章

  1. 【每日英文】2021.8.9
  2. 沃尔玛CIO:我们已经在利用AI实现IT产品化和过程自动化
  3. java sts_Spring Tool Suite(STS)安装
  4. Java定时注解@Scheduled的使用,fixedDelay,fixedRate,cron的使用
  5. 使用vuetify2.0的正确姿势
  6. 【数据库】索引的基本原理
  7. 实验三 中国剩余定理
  8. android 前言中不允许有内容,解决:gradle 前言中不允许有内容
  9. HardFault_Handler的相关实验1--VCAP_1管脚外加信号源
  10. 听哥一句劝,按这套嵌入式的课程内容和课程体系去学习