SQL语句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

SQL语句


DDL: CREATE, DROP, ALTER

DML: INSERT(REPLACE), DELETE, UPDATE, SELECT

DCL: GRANT, REVOKE

数据类型:

字符:

变长字符:VARCHAR(#),VARBINARY(#)

定长字符: CHAR(#), BINARY(#)

内建类型: ENUM, SET

对象: TEXT, BLOB

数值:

精确数值

整型: INT

TINYINT, AMALLINT, INT, MEDIUMINT, BIGINT

十进制:DECIMAL

近似数值

单精度: FLOAT

双精度:  DOUBLE

日期时间型:

DATE:    日期

TIME:   时间

DATATIME: 日期时间

TIMESTAMP: 时间戳

YEAR(2|4):  年份

修饰符:

NOT NULL

DEFAULT VALUE

UNSIGNED 

AUTO_INCREMENT

PRIMARY KEY


DDL:

数据库

CREATE DATABASE [IF NOT EXISTS] db_name;

CHARACTER SET [=] charset

COLLATE [=] collate

SHOW CHARACTER SET;    查看字符集

SHOW COLLATIONS;       查看排序规则

DROP DATABASE [IF EXISTS] db_name;  删除数据库

数据表

CREATE TABLE [IF NOT EXISTS] tb_name (col1 type1,col2,type2,...)

PRIMARY KEY(col1,col2,...)

INDEX(col1,col2,...)

UNIQUE(col1,col2,...)

表选项

ENGINE [=] engine_name

ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

SHOW ENGINES;  查看存储引擎;

获取帮助:

mysql> HELP CREATE TABLE;

查看创建命令:

SHOW CREATE TABLE tb_name;

查看表状态:

SHOW TABLE STATUS LIKE 'tb_name'\G

删除表:

DROP TABLE [IF EXISTS] tb_name;

修改表:

ALTER TABLE tb_name;

字段:

添加字段: ADD

ADD col1 data_type [FIRST | AFTER col_name]

删除字段: DROP

修改字段: ALTER ,CHANGE,MODIFY

改字段名称: CHANGE

改属性定义:  MODIFY

索引:

添加索引: add

删除索引:  drop {INDEX} INDEX_NAME;

表选项


查看表上的索引:

SHOW INDEXES FROM [db_name.]tb_name;

删除索引:

ALTER TABLE tb_name DROP INDEX index_name;


索引:

索引是一种特殊数据结构; 定义在查找时作为查找条件的字段; 

索引,要有索引名称;

创建索引:

CREATE INDEX index_name ON tb_name(index_col_name,...);

删除索引:

DROP INDEX index_name ON tb_name;

DML: 

INSERT :

INSERT [INTO] tbl_name [(col_name,...)]{VALUES | VALUE}(val1,...)


例:

#INSERT INTO tb1 VALUES (1,'yanguo','m'),(2,'xiaolongnv','f');

#INSERT INTO tb1 (id,name) VALUES (3,'zhangwuji'),(4,'zhaomin');

DELETE:

DELETE FROM tbl_name [WHERE where_condition]

例:

DELETE FROM tb1 WHERE id=3;

    

SELECT:

SELECT col1,col2,... FROM tb_name;

SELECT col1,col2,... FROM tb_name [WHERE clause][ORDER BY 'col_name'][LIMIT [m,]n];

字段表示法:

* : 表示所有字段

as : 字段别名, col1 AS alias1

WHERE clase:

操作符

<, > ,==,>=,<=,!=

BETWEEN ... AND... (在..和..之间)

LIKE:

% 任意长度的任意字符

— 任意单个字符

RLIKE:

正则表达式,不建议使用;

条件逻辑操作:

and 

or

not

例:

SELECT * FROM tb1;

SELECT * FROM tb1 WHERE id <3;

SELECT * FROM tb1 WHERE gender IS NULL;

SELECT * FROM tb1 ORDER BY id DESC;

SELECT * FROM tb1 WHERE id BETWEEN 2 AND 4;

SELECT * FROM tb1 WHERE name LIKE 'z%';

SELECT * FROM tb1 WHERE name LIKE 'z%';



UPDATE

UPDATE tb_name SET col1=new-val1,col2=new_val2,... [WHERE clause]

注意:后面一定要指定条件WHERE,不然会更改整个表;

例:

UPDATE tb1 SET gender='f' WHERE id=4;



用户账号及权限管理:


用户账号: ‘user’@'host'

user: 用户名

host: 此用户访问mysql服务时允许通过哪些主机远程创建连接;

IP, 网络地址, 主机名, 通配符(%和_);

禁止检查主机名

my.cnf [mysqld]

skip_name_resove = yes  跳过主机名解析

创建用户

CREATE USER 'username'@'host' [IDENTIFIED BY 'passwd'];

例:

CREATE USER 'candy'@'%' IDENTIFIED BY 'candy';

SELECT User,Host,Password FROM mysql.user;

删除用户:

DROP USER ‘username’@'host';

授权:

权限: 管理权限,数据库,表,字段,存储例程

GRANT priv_type,...ON [object_type] db_name.tb_name TO 'user'@'host' [IDENTIFIED BY 'passwd']

[with option];

priv_type: ALL [PRIVILEGES]

db_name.tb_name:

*.* 所有库的所有表;


db_name.* 指定库的所有表;

db_name.tb_name: 指定库的指定表;

db-name.routine_name: 指定库的存储例程;

查看指定用户获得的授权:

SHOW GRANTS FOR 'user'@'host';

 

查看当前用户的授权:

SHOW GRANTS FOR CURRENT_USER;

撤消授权:

REVOKE priv_type,... ON db_name.tb_name FROM 'user'@'host';

注意:mariaDB服务进程启动时会读取mysql库中的所有授权表至内存中;

1.GRANT或REVOKE等执行权限操作会保存于表中,mariadb的服务进程会自动重读授权表;

2.对于不能够或不能及时重读授权表的命令,可手动让mariadb的服务进程重读授权表;

mysql> flush privileges;





      本文转自limingyu0312  51CTO博客,原文链接:http://blog.51cto.com/limingyu/1956848,如需转载请自行联系原作者







相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
606 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
691 11
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
120 0
Pandas与SQL的数据操作语句对照
Pandas与SQL的数据操作语句对照
205 0
Pandas与SQL的数据操作语句对照
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
612 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等