In this tutorial series, I am going to explain how to work with user defined types.
You are going to learn,
a. How to create user defined type
b. How to use user defined type
c. How to alter user defined type
d. How to drop user defined type
How to create user defined type?
Using 'CREATE TYPE' statement, you can create user defined types.
<create-type-stmt> ::= CREATE TYPE ( IF NOT EXISTS )? <typename>
'(' <field-definition> ( ',' <field-definition> )* ')'
<typename> ::= ( <keyspace-name> '.' )? <identifier>
<field-definition> ::= <identifier> <type>
Example
CREATE TYPE cassandratutorial.address (
street_name text,
street_number int,
city text,
state text,
country text,
zip int
)
CQL Script
CREATE KEYSPACE cassandratutorial WITH REPLICATION =
{
'class' : 'SimpleStrategy',
'replication_factor' : 1
};
CREATE TYPE cassandratutorial.address (
street_name text,
street_number int,
city text,
state text,
country text,
zip int
);
CREATE TABLE IF NOT EXISTS cassandratutorial.employee (
id INT PRIMARY KEY,
firstName VARCHAR,
lastName VARCHAR,
addressInfo address,
age int
);
INSERT INTO cassandratutorial.employee JSON '{"id" : 1, "firstName" : "Krishna", "lastName" : "Gurram", "age" : 30, "addressInfo" : {"street_name" : "Marthalli", "street_number" : 123, "city" : "Bangalore", "state" : "Karnataka", "country" : "India", "zip" : 560037}}';
Cqlsh console output
cqlsh> CREATE KEYSPACE cassandratutorial WITH REPLICATION =
... {
... 'class' : 'SimpleStrategy',
... 'replication_factor' : 1
... };
cqlsh>
cqlsh> CREATE TYPE cassandratutorial.address (
... street_name text,
... street_number int,
... city text,
... state text,
... country text,
... zip int
... );
cqlsh>
cqlsh> CREATE TABLE IF NOT EXISTS cassandratutorial.employee (
... id INT PRIMARY KEY,
... firstName VARCHAR,
... lastName VARCHAR,
... addressInfo address,
... age int
... );
cqlsh>
cqlsh> INSERT INTO cassandratutorial.employee JSON '{"id" : 1, "firstName" : "Krishna", "lastName" : "Gurram", "age" : 30, "addressInfo" : {"street_name" : "Marthalli", "street_number" : 123, "city" : "Bangalore", "state" : "Karnataka", "country" : "India", "zip" : 560037}}';
cqlsh>
cqlsh> SELECT * FROM cassandratutorial.employee;
id | addressinfo | age | firstname | lastname
----+----------------------------------------------------------------------------------------------------------------------+-----+-----------+----------
1 | {street_name: 'Marthalli', street_number: 123, city: 'Bangalore', state: 'Karnataka', country: 'India', zip: 560037} | 30 | Krishna | Gurram
(1 rows)
No comments:
Post a Comment