当前位置: 首页 > article >正文

【MySQL学习】关系数据库标准语言SQL

目录

定义

分类

DDL

数据库操作

查询

创建

删除

使用

数据库中的表操作

查询

创建

修改

删除

数据类型

数值类型

字符串类型

日期时间类型

 DML   

添加数据

 修改数据

DQL

基本查询

条件查询

聚合函数

分组查询

 排序查询

分页查询

DCL

管理用户

权限控制


定义

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准语言。

分类

DDL

数据定义语言,用来操作数据库、表、列等。

数据库操作
查询

查询所有数据库   

show databases;

查询当前数据库     

select database();

创建

create database [if not exists] 数据库名 [ default charset 字符集] [collate 排序规则];

删除

drop database [if exists] 数据库名;

使用

use 数据库名;

数据库中的表操作

ps.以下操作针对的是数据库中的表

查询

查询当前数据库所有表

show tables;

查询表结构

desc 表名;

查询指定表的建表语句

show create table 表名;

创建

create table 表名(

          字段1 字段1类型 COMMENT '字段1注释',

          字段2 字段2类型 COMMENT '字段2注释',

          ...........

          字段n 字段n类型 COMMENT '字段n注释'

)COMMENT='表注释';

注:最后一个字段后面没有逗号

修改

添加字段

alter table 表名 add 字段名 类型(长度)[comment 注释] [约束];

修改数据类型 

alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释] [约束];

修改表名 

alter table 表名 rename to 新表名;

删除

删除字段

alter table 表名 drop 字段名;

删除表

drop table [if exists] 表名;

删除指定表,并重新创建该表

truncate table 表名;

注:在删除表时,表中的全部数据也会被删除。

数据类型
数值类型

字符串类型

CHAR :定长字符串

VARCHAR:变长字符串

注意:当数据为CHAR(M)类型时,不管插入值的长度,它的占用空间都是M个字节

            而VACHAR(M)所对应的数据所占用字节数为实际长度加1

日期时间类型

 DML   

对数据库中表的数据记录进行增删改操作

添加数据

给指定字段添加数据

insert into 表名(字段1,字段2,......) values(值1,值2.....);

给全部字段添加数据

insert into 表名 values(值1,值2,.....);

批量添加数据

insert into 表名(字段名1,字段名2,.....) values(值1,值2.....)(值1,值2,....)(值1,值2.....);

注:1)插入数据时,指定字段顺序要与值的顺序一一对应

         2) 字符串和日期型数据应该包含在引号中

         3)插入的数据大小,应该在字段的规定范围内

 修改数据

uodate 表名 set 字段1=值1,字段2=值2,.....[where 条件];

注:没有条件的话会修改整张表的所有数据

DQL

查询数据库中表的记录

语法

select

          字段列表

from

          表名列表

where

          条件列表

group by

           分组字段列表

 having

            分组后条件列表

order by

            排序字段列表

limit

            分页参数

基本查询

查询多个字段

select 字段1,字段2,字段3..... from 表名;

设置别名

select 字段1 [as 别名1],字段2 [as 别名2]...... from 表名;

去除重复记录

select distinct 字段列表 from 表名;

扩展:

在select子句中,可以

1)选择现有列:直接指定想要查看的表中的列名

2)创建计算列:使用表中一个或多个列的数据进行计算,并将结果作为一个新列放回

3) 使用内置函数:如year(),count()等,对表中的数据进行处理

条件查询

语法

select 字段列表 from 表名 where 条件列表;

条件

1)between....and... 

2)in(......)   在in之后的列表中的值,多选一

3)like '<匹配串>'  其中匹配串可以是完整字符串,也可以含%(代表任意长度)或_(代表单个字符)

4).......is null   是NULL

5)or

6)and

聚合函数

将一列数据作为一个整体,进行纵向计算

常见:count,max,min,avg,sum 

语法

select 聚合函数(字段列表) from 表名;

注:null值不参与计算

分组查询

语法

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

注:

where和having的区别

1)执行时机不同

where是分组之前进行过滤,不满足where条件,不参与分组;

而having是分组之后对结果进行过滤

2)判断条件不同

where 不能对聚合函数进行判断,而having可以

 执行顺序:where >聚合函数>having 

 排序查询

select 字段列表 from 表名 order by 字段1 排序方式1,字段2,排序方式2;

ASC :升序(默认值)

DESC:降序

注:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

分页查询

select 字段列表 from 表名 limit 起始索引,查询记录数;

注:

1)起始索引从0开始

2)如果要从第一项开始查询,可以省略起始索引

DCL

数据控制语言,用来管理数据库用户、控制数据库的访问权限

管理用户

查询用户

use mysql;

select * from user;

创建用户

create user '用户名'@'主机名' identified by '密码';

修改用户密码

alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

删除用户

drop user '用户名'@'主机名';

注:主机名可以用 % 通配

权限控制

常用权限:

权限说明
all 所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改表
drop

删除数据库/表/视图

查询权限

show grants for '用户名'@'主机名';

授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

撤销权限

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';


http://www.kler.cn/a/564681.html

相关文章:

  • SC95F8767的学习——新工程的建立
  • WPF学习之Prism(二)
  • 11特殊函数
  • 【数据结构】二叉树(门槛极低的系统理解)
  • Apache Flink:实时数据流处理的终极武器
  • 关于家用 电视盒子[机顶盒] 的捣鼓日志 2025/2/27
  • 数据预处理实战:缺失值处理与数据标准化
  • 企业并购中SAP系统的三大数据转型挑战以及来如何应对?
  • 李代数(Lie Algebras)与Attention:深度学习中的数学之美
  • 记一次命令行启动springboot项目的问题 java -jar的问题
  • AF3 pair_sequences函数解读
  • MongoDB—(一主、一从、一仲裁)副本集搭建
  • 利用 Windows Terminal 和 SSH Config 简化 Linux 服务器管理
  • DeepSeek-R1-671B大模型满血版私有化部署高可用教程-SparkAi系统集成图文教程
  • python-leetcode-分割等和子集
  • 想转行做春晚那种扭秧歌的机器人,大概要会点什么?
  • 基于大模型的脑出血全周期预测与诊疗方案研究报告
  • AI大模型-提示工程学习笔记16—方向性刺激提示
  • Qt开发⑨Qt的事件_事件处理_按键事件和鼠标事件
  • 网络原理--IP协议简介