跳到主要内容

基本操作

SQL是结构化查询语言(Structured Query Language)的简称,是一种特殊的编程语言,也是一种数据库查询和程序设计语言,用于存取、查询、更新和管理关系型数据库管理系统。

由于 StoneDB 是100%兼容 MySQL 的,那么可以使用 MySQL 支持的客户端连接 StoneDB,并且大多数情况下可以直接执行 MySQL 支持的 SQL 语法,本文将详细介绍 StoneDB 基本的 SQL 操作。

SQL语言按照不同的功能划分为以下的4个部分:

  • DDL(Data Definition Language):数据定义语言,用来定义数据库中的对象,如 create、alter、drop。
  • DML(Data Manipulation Language):数据操作语言,用来操作表数据,如 insert、delete、update。
  • DQL(Data Query Language):数据查询语言,用来查询对象,如 select。
  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别,如 grant、revoke。

1. 数据库相关操作

1)创建数据库

要创建一个名为 test_db 的数据库,数据库的默认字符集是 utf8mb4 ,可以使用以下 SQL 语句:

create database test_db DEFAULT CHARACTER SET utf8mb4;

2)查看数据库

查看数据库可以使用以下 SQL 语句:

show databases;

3)应用数据库

应用已创建的数据库可以使用以下 SQL 语句:

use test_db;

4)删除数据库

删除数据库 test_db 可以使用以下 SQL 语句:

drop database test_db;

2. 表相关操作

1)创建表

要创建一个表名为 student 的表,包括编号、姓名、年龄、生日等字段,可以使用以下SQL语句:

create table student(
id int(11) primary key,
name varchar(20),
age smallint,
birthday DATE
) engine=stonedb;
信息
  • StoneDB 5.6 的存储引擎名是 stonedb,5.7 的存储引擎名是 tianmu。
  • 如果 SQL 语句中未指定“engine=stonedb”,则所创建的表的存储引擎由参数 default_storage_engine 决定,详情参见设置参数

2)查看表

查看表结构使用以下 SQL 语句:

show create table student;

3)删除表

要删除表 student,可以使用以下 SQL 语句:

drop table student;

3. 数据相关操作

1)插入数据

使用 insert 向表插入记录:

insert into student values(1,'Jack',15,'20220506');

2)修改数据

使用 update 修改记录:

update student set age=25 where id=1;

3)删除数据

使用 delete 删除记录:

delete from student where id=1;

4. 查询表

1)查询 student 表中 ID=1 的学生的姓名和生日

select name,birthday from student where id=1;

2)查询 student 表的学生姓名和生日,并且按照生日排序

select name,birthday from student order by birthday;

5. 用户相关操作

1)创建用户

例如:要创建用户 tiger,密码为123456,可以使用以下 SQL 语句:

create user 'tiger'@'%' identified by '123456';

注:用户名和主机名('username'@'host')唯一表示一个用户,'tiger'@'%'和'tiger'@'localhost'是两个不同的用户。

2)向用户授权

例如:向用户 tiger 授予可查询数据库 test_db 所有的表,可以使用以下 SQL 语句:

grant select on test_db.* to 'tiger'@'%';

3)查询用户权限

例如:查询名为 tiger 的用户所拥有的权限

show grants for 'tiger'@'%';

4)删除用户

例如:要删除用户 tiger@%,可以使用以下 SQL 语句:

drop user 'tiger'@'%';