
# 使用入门
在机器学习和自然语言处理中，Embedding是指将高维度的数据（例如文字、图片、音频）映射到低维度空间的过程。Embedding向量通常是一个由实数构成的向量，它将输入的数据表示成一个连续的数值空间中的点。简而言之，Embedding是一个N维的实值向量，可以用来表示任何事情，如文本、音乐、视频等。
本小节介绍向量数据库的基本功能，包括创建向量表、修改向量属性类型、管理向量数据、清空表格等操作。
1. 创建含向量类型的表，同时设定数据维度。建表时向量类型必须要指定维度，当插入数据的维度与设置的数据维度不一致时，数据库报错。 
   ```
   gaussdb=# CREATE TABLE t1(id int unique, repr floatvector(4));
   gaussdb=# CREATE TABLE t2(id int unique, repr boolvector(3));
   ```
   
   
   
2. 增加向量列。需指定默认值，否则数据库报错。 
   ```
   gaussdb=# ALTER TABLE t1 ADD COLUMN floatvec floatvector(3) default '[1,1,1]';
   ```
   
   
3. 修改表中的向量数据类型属性。可以通过ALTER TABLE语句修改向量维度。 
   ```
   gaussdb=# ALTER TABLE t1 ALTER COLUMN repr type floatvector(4);
   ```
   **注意：**如果表中已经插入数据，变换向量维度时需要表中数据符合维度设定，否则数据库报错；当向量属性已创建向量索引，属性的数据类型无法切换到其他数据类型，数据库报错。
   
   
4. 插入数据。 
   ```
   gaussdb=# INSERT INTO t1 VALUES(0, '[30,12,12,25]');
   gaussdb=# INSERT INTO t1 VALUES(1, '{7.5,62,1,235}');
   ```
   字符型数据隐式转化为向量数据类型。
   ```
   gaussdb=# INSERT INTO t2 VALUES(2, '[1, 0, 1]');
   gaussdb=# INSERT INTO t2 VALUES(3, '[T, T, F]');
   gaussdb=# INSERT INTO t2 VALUES(4, '[false, true, true]');
   gaussdb=# INSERT INTO t2 VALUES(5, '[Y, N, N]');
   gaussdb=# INSERT INTO t2 VALUES(6, '[no, yes, no]');
   gaussdb=# INSERT INTO t2 VALUES(7, '[off, off, on]');
   gaussdb=# INSERT INTO t2 VALUES(8, '[1, yes, on]');
   ```
   
   
5. 删除数据。 
   ```
   gaussdb=# DELETE t1 where repr <-> '[30,12,12,25]' < 0.2;
   ```
   
   
6. 对向量列和非向量列的更新和删除操作，以及VACUUM操作。 
   ```
   gaussdb=# UPDATE t1 SET id = 38;
   gaussdb=# UPDATE t1 SET repr = '[1000,152,132,5]';
   gaussdb=# DELETE FROM t1 WHERE id=38;
   gaussdb=# DELETE FROM t1 WHERE repr='[30,12,12,25]';
   gaussdb=# DELETE FROM t1 WHERE repr <-> '[30,12,12,25]' < 0.8;
   gaussdb=# VACUUM t1;
   ```
   
   
 
