本文将介绍在PolarDB-X里常用的SQL语句。

查看数据库

您可以使用如下SHOW DATABASES语句查看数据库:

SHOW DATABASES;

创建、查看和删除表

  • 您可以使用以下CREATE TABLE语句创建表。
    • 创建带拆分的表:
      CREATE TABLE multi_db_single_tbl(
        id int auto_increment, 
        name varchar(30), 
        primary key(id)
      ) dbpartition by hash(id);
    • 创建单表:
      CREATE TABLE single_tbl(
       id int, 
       name varchar(30), 
       primary key(id)
      );
  • 您可以使用以下SHOW CREATE TABLE语句查看建表语句。
    • 查看拆分表建表语句:
      SHOW CREATE TABLE multi_db_single_tbl;
    • 查看单表建表语句:
      SHOW CREATE TABLE single_tbl;
  • 您可以使用以下DROP TABLE语句删除表。
    • 删除拆分表:
      DROP TABLE multi_db_single_tbl;
    • 删除单表:
      DROP TABLE single_tbl;
  • 您可以使用如下SHOW TABLES语句查看数据库中的所有表:
    SHOW TABLES;

加列、减列、修改数据类型

  • 您可以使用如下ALTER TABLE语句加列:
    ALTER TABLE multi_db_single_tbl ADD COLUMN textcol text;           
  • 您可以使用如下ALTER TABLE语句修改列:
    ALTER TABLE multi_db_single_tbl MODIFY COLUMN textcol varchar(40);           
  • 您可以使用如下ALTER TABLE语句减列:
    ALTER TABLE multi_db_single_tbl DROP COLUMN textcol;

创建、查看和删除本地索引

  • 您可以使用如下两种语句中的任意一种创建本地索引:
    • CREATE INDEX idx_name ON multi_db_single_tbl (name);
    • ALTER TABLE multi_db_single_tbl ADD INDEX idx_name(name);
  • 您可以使用如下语句查看本地索引:
    SHOW INDEX FROM multi_db_single_tbl;
  • 您可以使用如下两种语句中的任意一种删除本地索引:
    • DROP INDEX idx_name ON multi_db_single_tbl;
    • ALTER TABLE multi_db_single_tbl DROP INDEX idx_name;

增删改查数据

  • 您可以使用如下INSERT语句向表内插入数据:
    INSERT INTO multi_db_single_tbl (name) VALUES ('test_name');
    INSERT INTO multi_db_single_tbl (name) VALUES ('test_name');
    INSERT INTO multi_db_single_tbl (name) VALUES ('test_name'),('test_namexx');
  • 您可以使用如下SELECT语句检索表内数据:
    SELECT * FROM multi_db_single_tbl;
  • 您可以使用如下UPDATE语句修改表内数据:
    UPDATE multi_db_single_tbl set name='zzz' WHERE id in (100001,100002,100003,100004);
  • 您可以使用如下DELETE语句删除表内数据:
    DELETE FROM multi_db_single_tbl WHERE id = 100002;

创建、授权和删除用户

  • 您可以使用如下CREATE USER语句创建用户:
    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    说明
    • username:待创建的账号。
    • host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用百分号(%)。
    • password:账号的密码。

    例如,创建一个账号,账号名为drdsuser,密码为Drds123456,并允许从任意主机登录数据库,命令如下。

    CREATE USER drdsuser@'%' IDENTIFIED BY 'Drds123456';
  • 您可以使用如下语句授权目标用户可检索目标数据库内的表:
    GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
    说明
    • privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL。
    • databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用星号(*)。
    • tablename:表名。如果要授予该账号具备所有表的操作权限,则使用星号(*)。
    • username:待授权的账号。
    • host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用百分号(%)。
    • WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。

    例如,授予drdsuser账号具备sample_db数据库和所有表的所有权限,并允许从任意主机登录数据库,命令如下:

    GRANT ALL ON sample_db.* TO drdsuser@'%';
  • 您可以使用如下语句查询目标用户的权限:
    SHOW GRANTS FOR 'username'@'host'
  • 您可以使用如下语句删除目标用户:
    DROP USER 'username'@'host'