
# DWS数据开发SQL入门操作
本节主要介绍DWS数据库的一些SQL基本操作。
#### 创建、查看和删除数据库
- 使用CREATE DATABASE语句创建数据库。
  ```
  CREATE DATABASE test_db ENCODING 'UTF8' template = template0;
  ```
  
- 使用\\l元命令查看数据库系统的数据库列表。该命令适用于gsql命令行客户端。
  ```
  \l
  ```
  
- 通过系统表PG_DATABASE查询数据库列表。
  ```
  SELECT datname FROM pg_database;
  ```
  
- 使用DROP DATABASE语句删除数据库。
  ```
  DROP DATABASE test_db;
  ```
  
 
#### 创建、查看、修改和删除表
- 使用CREATE TABLE语句创建表。
  ```
  CREATE TABLE customer_t1(id INT, name CHAR(40),age TINYINT);
  ```
  
- 使用PG_GET_TABLEDEF()函数查看建表语句。其中customer_t1替换为实际需要查询的表名。
  ```
  SELECT * FROM PG_GET_TABLEDEF('customer_t1');
  ```
  
- 使用ALTER TABLE语句修改表。
  增加列：
  ```
  ALTER TABLE customer_t1 ADD (address VARCHAR(100));
  ```
  删除列：
  ```
  ALTER TABLE customer_t1 DROP COLUMN address;
  ```
  修改字段类型：
  ```
  ALTER TABLE customer_t1 MODIFY age INTEGER NOT NULL;
  ```
  
- 使用DROP TABLE语句删除表。
  ```
  DROP TABLE customer_t1;
  ```
  
 
#### 创建、查看和删除索引
- 使用CREATE INDEX或ALTER TABLE语句创建普通索引。
  ```
  CREATE INDEX c_id_index on customer_t1(id);
  ```
  ```
  ALTER TABLE customer_t1 ADD INDEX c_id_index (id);
  ```
  
 
- 使用PG_INDEXES系统表查看表内所有索引。
  ```
  SELECT * FROM pg_indexes WHERE tablename = 'customer_t1';
  ```
  
- 使用ALTER TABLE或DROP INDEX语句删除索引。
  ```
  DROP INDEX c_id_index;
  ```
  ```
  ALTER TABLE customer_t1 DROP INDEX c_id_index;
  ```
  
#### 增删改查表数据
- 使用INSERT INTO语句插入表数据。
  ```
  INSERT INTO customer_t1 VALUES(1001,'user1',22);
  ```
  
- 使用SELECT语句查询表数据。
  ```
  SELECT * FROM customer_t1;
  ```
  
- 使用UPDATE更新表数据。
  ```
  UPDATE customer_t1 SET id = 1009 WHERE id = 1001;
  ```
  
- 使用DELETE删除表数据。
  ```
  DELETE FROM customer_t1 WHERE id = 1009;
  ```
  
 
