14. Keyspace
CREATE KEYSPACE cql WITH replication = {
'class': ‘NetworkTopologyStrategy',
and strategy_options:Madrid = 3,
and strategy_options:Barcelona = 6,
and strategy_options:Paris = 30
}
ISTHARI – INTRODUCCIÓN CQL3
15. Table
CREATE TABLE users (
id uuid PRIMARY KEY , email text, name text ) ;
ISTHARI – INTRODUCCIÓN CQL3
16. Insert
CREATE TABLE users (
id uuid PRIMARY KEY , email text, name text ) ;
INSERT INTO users (id, email , name )
VALUES ( 4b8f9e26-…, 'john@nobody.com', 'John');
ISTHARI – INTRODUCCIÓN CQL3
17. Update
CREATE TABLE users (
id uuid PRIMARY KEY , email text, name text ) ;
INSERT INTO users (id, email , name )
VALUES ( 4b8f9e26-…, 'john@nobody.com', 'John');
UPDATE users SET name = 'Doe' where id=4b8f9e26-…;
ISTHARI – INTRODUCCIÓN CQL3
18. Delete
CREATE TABLE users (
id uuid PRIMARY KEY , email text, name text ) ;
INSERT INTO users (id, email , name )
VALUES ( 4b8f9e26-…, 'john@nobody.com', 'John');
UPDATE users SET name = 'Doe' where id=4b8f9e26-…;
DELETE from user WHERE id=4b8f9e26-…;
ISTHARI – INTRODUCCIÓN CQL3
19. Select
SELECT * from users ;
id
| email
| name
------------+-----------------+-----4b8f9e26-… | john@nobody.com |
ISTHARI – INTRODUCCIÓN CQL3
Doe
20. UPSERT
SELECT * from users ;
id
| email
| name
------------+-----------------+-----4b8f9e26-… | john@nobody.com |
Doe
INSERT INTO users (id, email , name )
VALUES ( 4b8f9e26-…, 'john@nobody.com', 'Doe');
UPDATE users SET email = 'doe@nobody.com', name='Doe'
where id=859086f4-…;
ISTHARI – INTRODUCCIÓN CQL3
21. Primary key compuesto
CREATE TABLE employees (
company text,
name text,
age int,
role text,
primary key (company, name));
ISTHARI – INTRODUCCIÓN CQL3
22. Primary key compuesto
CREATE TABLE employees (
Name
Age
Role
company text,
IST
John
30
Dev
name text,
IST
Doe
40
Admin
age int,
RPT
Peter
30
Dev
role text,
primary key (company, name));
ISTHARI – INTRODUCCIÓN CQL3
23. Primary key compuesto
CREATE TABLE employees (
Name
Age
Role
company text,
IST
John
30
Dev
name text,
IST
Doe
40
Admin
age int,
RPT
Peter
30
Dev
role text,
primary key (company, name));
Doe:age
IST
ISTHARI – INTRODUCCIÓN CQL3
Doe:role
John:age
John:role
40
Admin
30
Dev
24. Primary key compuesto
CREATE TABLE employees (
Name
Age
Role
company text,
IST
John
30
Dev
name text,
IST
Doe
40
Admin
age int,
RPT
Peter
30
Dev
role text,
primary key (company, name));
company | name
| age | role
---------+-------+-----+------RPT | Peter |
30 |
IST |
Doe |
40 | Admin
IST |
John |
ISTHARI – INTRODUCCIÓN CQL3
30 |
Dev
Dev
29. Partition key compuesto
CREATE TABLE sensor_data (
sensor_id uuid,
year int,
date timestamp,
value decimal,
primary KEY ((sensor_id, year), date));
SELECT * FROM sensor_data where sensor_id=c3e04efc-…;
ISTHARI – INTRODUCCIÓN CQL3
30. Partition key compuesto
CREATE TABLE sensor_data (
sensor_id uuid,
year int,
date timestamp,
value decimal,
primary KEY ((sensor_id, year), date));
SELECT * FROM sensor_data where sensor_id=c3e04efc-…;
SELECT * FROM sensor_data where sensor_id=c3e04efc-…
and year =2014;
ISTHARI – INTRODUCCIÓN CQL3
31. Partition key compuesto
CREATE TABLE sensor_data (
sensor_id uuid,
year int,
date timestamp,
value decimal,
primary KEY ((sensor_id, year), date));
SELECT * FROM sensor_data where sensor_id=c3e04efc-…;
SELECT * FROM sensor_data where sensor_id=c3e04efc-…
and year =2014;
SELECT * FROM sensor_data where sensor_id=c3e04efc-…
and year =2014 and date > '2014-02-11 12:00:00';
ISTHARI – INTRODUCCIÓN CQL3
33. Lightweight transacion
CREATE TABLE user_by_email (
email text PRIMARY KEY ,
user_id uuid);
INSERT INTO user_by_email (email, user_id )
VALUES ( 'john@nobody.com', d3979598-93cf-…) if not exists;
ISTHARI – INTRODUCCIÓN CQL3
34. Batch
BEGIN BATCH
INSERT INTO user_by_email (email, user_id )
VALUES ( 'john@nobody.com', d3979598-93cf-…) if not exists;
INSERT INTO user (id, email , name ) VALUES
(d3979598-93cf-…, 'john@nobody.com', 'john');
APPLY BATCH
ISTHARI – INTRODUCCIÓN CQL3
35. Set
CREATE TABLE articulo (
id uuid PRIMARY KEY ,
contenido text,
tags set<text >);
ISTHARI – INTRODUCCIÓN CQL3
39. Set
CREATE TABLE articulo (
id uuid PRIMARY KEY ,
contenido text,
tags set<text >);
INSERT INTO articulo (id, contenido , tags )
VALUES ( e2a9b6e6- …, 'articulo', {'ciencia', 'noticia'});
UPDATE articulo SET tags = tags+{'politica'} where id=e2a9b6e6-…;
UPDATE articulo SET tags = tags-{'politica'} where id=e2a9b6e6-…;
ISTHARI – INTRODUCCIÓN CQL3
40. List
CREATE TABLE ruta(
id uuid PRIMARY KEY ,
nombre text,
ciudades list<text >);
ISTHARI – INTRODUCCIÓN CQL3
Nombre
e2a9b6e6-…
Ciudades
Ruta 1
[‘Madrid’,
‘Barcelona’]
41. List
CREATE TABLE ruta(
id uuid PRIMARY KEY ,
nombre text,
ciudades list<text >);
Nombre
e2a9b6e6-…
Ciudades
Ruta 1
[‘Madrid’,
‘Barcelona’]
Nombre
e2a9b6e6-…
ISTHARI – INTRODUCCIÓN CQL3
Ciudades:f7e5450
039..8d
Ciudades:7e54501
39..8d
Articulo
Madrid
Barcelona
42. List
CREATE TABLE ruta(
id uuid PRIMARY KEY ,
nombre text,
ciudades list<text >);
Nombre
e2a9b6e6-…
Ciudades
Ruta 1
[‘Madrid’,
‘Barcelona’]
Insert into ruta (id, nombre, ciudades)
Values (e2a9b6e6-…, ‘Ruta 1’, [‘Madrid’, ‘Barcelona’]);
ISTHARI – INTRODUCCIÓN CQL3
43. List
CREATE TABLE ruta(
id uuid PRIMARY KEY ,
nombre text,
ciudades list<text >);
Nombre
e2a9b6e6-…
Ciudades
Ruta 1
[‘Madrid’,
‘Barcelona’]
Insert into ruta (id, nombre, ciudades)
Values (e2a9b6e6-…, ‘Ruta 1’, [‘Madrid’, ‘Barcelona’]);
Update ruta set ciudades = ciudades + [‘Paris’] where id =e2a9b6e6-…;
Update ruta set ciudades = [‘Paris’] + ciudades where id=e2a9b6e6-…;
Update ruta set ciudades[1]=[‘Roma’] where id=e2a9b6e6-…;
ISTHARI – INTRODUCCIÓN CQL3
44. Map
CREATE TABLE producto(
id uuid PRIMARY KEY ,
nombre text,
caracteristicas
map<string, string >);
ISTHARI – INTRODUCCIÓN CQL3
Nombre
e2a9b6e6-…
Caracteristicas
Mesa
{‘alto’:’100cm’,
‘ancho’:’20cm’,
‘fondo’:’50cm’}
45. Map
CREATE TABLE producto(
id uuid PRIMARY KEY ,
nombre text,
Nombre
e2a9b6e6-…
caracteristicas
Caracteristicas
Mesa
{‘alto’:’100cm’,
‘ancho’:’20cm’,
‘fondo’:’50cm’}
map<string, string >);
Nombre
e2a9b6e6-…
ISTHARI – INTRODUCCIÓN CQL3
Caracteristicas
:alto
Caracteristicas
:ancho
Caracteristicas:
fondo
Mesa
100cm
20cm
50cm
46. Map
CREATE TABLE producto(
id uuid PRIMARY KEY ,
nombre text,
caracteristicas
Nombre
e2a9b6e6-…
Caracteristicas
Mesa
{‘alto’:’100cm’,
‘ancho’:’20cm’,
‘fondo’:’50cm’}
map<string, string >);
Insert into producto (id, nombre, caracteristicas)
Values (e2a9b6e6-…, ‘Mesa’, {‘alto’:’100cm’, ‘ancho’:’20cm’, …});
Update product set caracteristicas[‘alto’]=‘120cm’
where id=e2a9b6e6-…
ISTHARI – INTRODUCCIÓN CQL3