SQL 操作
📄字数 2.6K
👁️阅读量 加载中...
成功部署 XuguDB 和客户端工具后,可连接 XuguDB ,执行 SQL 语句。
本节主要介绍常用 SQL 的基础操作。
数据库
本节主要提供数据库的创建、查看、切换、删除的示例。
使用 CREATE DATABASE
语句创建数据库。
示例
创建名为 db_quickstart 的数据库,字符集是 UTF8。sqlSQL> CREATE DATABASE db_quickstart CHARACTER SET 'UTF8';
库创建完成后,通过系统表 SYS_DATABASES,查看当前服务端中的所有数据库。
示例
查看当前服务端中的所有数据库名称。sqlSQL> SELECT db_name FROM SYS_DATABASES; +---------------+ | DB_NAME | +---------------+ | SYSTEM | | DB_QUICKSTART | +---------------+
使用 USE
命令切换数据库。
示例
切换到用户库 db_quickstart。sqlSQL> USE db_quickstart;
使用 db_info
查看当前库信息。
示例
切换到用户库 db_quickstart后,查询当前库信息。sqlSQL> SHOW DB_INFO; +---------------+-------+----------+------------+-----------+ | DB_NAME | DB_ID | DB_OWNER | DB_CHARSET | DB_TIMEZ | +---------------+-------+----------+------------+-----------+ | DB_QUICKSTART | 11 | SYSDBA | UTF8 | GMT+08:00 | +---------------+-------+----------+------------+-----------+
使用 DROP DATABASE
删除数据库。
示例
删除用户库 db_quickstart。sqlSQL> DROP DATABASE db_quickstart;
更多 DATABASE 语句相关的语法,参考 数据库对象管理-数据库 章节。
表操作
使用 CREATE TABLE
语句在数据库中创建新表。
示例
在用户库 db_quickstart 下,创建产品表 tab_products,包含字段产品 id,产品名称 prod_name。sql-- 切换用户库 SQL> USE db_quickstart; Database switch to db_quickstart -- 创建产品表 tab_products。 SQL> CREATE TABLE tab_products(id INTEGER, prod_name VARCHAR(255));
通过系统视图 ALL_TABLES,查看当前库下的表信息。
示例
通过系统视图 ALL_TABLES ,查询表 tab_products 的 id和类型。sqlSQL> SELECT table_id,table_type FROM ALL_TABLES WHERE table_name = 'TAB_PRODUCTS'; +----------+------------+ | TABLE_ID | TABLE_TYPE | +----------+------------+ | 1048581 | 0 | +----------+------------+
使用 ALTER TABLE
语句修改表。
示例
表 tab_products 中增加列 prod_price。sqlSQL> ALTER TABLE tab_products ADD COLUMN prod_price DOUBLE;
使用 DESC
查看当前表结构信息。
示例
查看表 tab_products 结构信息。sqlSQL> DESC tab_products; +------------+------+--------------+ | ColumnName | NULL | DataType | +------------+------+--------------+ | ID | | INTEGER | | PROD_NAME | | VARCHAR(255) | | PROD_PRICE | | DOUBLE | +------------+------+--------------+
使用 DROP TABLE
语句删除表。
示例
删除表 tab_productssqlSQL> DROP TABLE tab_products;
更多 TABLE 语句相关的语法,参考 数据库对象管理-表 章节。
索引操作
索引主要用于快速定位满足条件的行。
使用 CREATE INDEX
语句创建索引。
示例
对于值不唯一的字段,可创建普通索引。sqlSQL> CREATE INDEX idx_prod_unique ON tab_products (id);
对于值唯一的字段,可创建唯一值索引。
sqlSQL> CREATE UNIQUE INDEX idx_prod_unique ON tab_products (id);
通过系统视图 ALL_INDEXES 查看表内所有索引。
示例
查询表 tab_products 中的所有索引。sqlSQL> SELECT INDEX_NAME FROM ALL_INDEXES idx LEFT JOIN ALL_TABLES tab ON idx.table_id = tab.table_id WHERE tab.table_name='TAB_PRODUCTS'; +-----------------+ | INDEX_NAME | +-----------------+ | IDX_PROD_UNIQUE | +-----------------+
使用
DROP INDEX
删除索引。sqlSQL> DROP INDEX tab_products.idx_prod_unique;
更多 INDEX 语句相关的语法,参考 数据库对象管理-索引 章节。
插入语句
使用 INSERT
语句向表插入一行数据。
示例
向表 tab_products 插入单行数据。sqlSQL> INSERT INTO tab_products VALUES(1,'apple',6.98);
向表 tab_products 插入包含部分字段的多行数据。
sqlSQL> INSERT INTO tab_products(id,prod_name) VALUES(2,'banana'),(3,'watermelon'),(4,'strawberry');
更多 INSERT 语句相关的语法,参考 INSERT 章节。
更新语句
使用 UPDATE
语句修改部分字段数据。
示例
将表 tab_products 中PROD_NAME = 'banana'
对应行的数据 PROD_PRICE 列 修改为 4.99 。sqlSQL> UPDATE tab_products SET PROD_PRICE = 4.99 WHERE PROD_NAME = 'banana';
提示
UPDATE 操作,如果无 WHERE 过滤子句,则对全表操作。
更多 UPDATE 语句相关的语法,参考 UPDATE 章节。
删除语句
使用DELETE
语句删除数据。
示例
删除产品表 tab_products 中产品名为 apple 的数据。sqlSQL> DELETE FROM tab_products WHERE PROD_NAME = 'apple';
提示
DELETE 操作,如果无 WHERE 过滤子句,则对全表操作。
更多 DELETE 语句相关的语法,参考 DELETE 章节。
查询语句
使用 SELECT
语句检索表内数据。
示例
查询表 tab_products 中所有数据。sqlSQL> SELECT * FROM tab_products; +----+------------+--------------+ | ID | PROD_NAME | PROD_PRICE | +----+------------+--------------+ | 2 | banana | 4.990000e+00 | | 3 | watermelon | <NULL> | | 4 | strawberry | <NULL> | +----+------------+--------------+
在 SELECT 关键字后加列名,查询部分字段。
sqlSQL> SELECT prod_name FROM tab_products; +------------+ | PROD_NAME | +------------+ | banana | | watermelon | | strawberry | +------------+
使用
WHERE
子句,查询满足条件的数据,如:查询字段 prod_price 为空的产品。sqlSQL> SELECT prod_name,prod_price FROM tab_products WHERE prod_price IS NULL; +------------+------------+ | PROD_NAME | PROD_PRICE | +------------+------------+ | watermelon | <NULL> | | strawberry | <NULL> | +------------+------------+
更多 SELECT 语句相关的语法,参考 SELECT 章节。