MySQL数据库增删改查及聚合查询SQL语句学习汇总

您所在的位置:网站首页 oracle添加索引的sql语句 MySQL数据库增删改查及聚合查询SQL语句学习汇总

MySQL数据库增删改查及聚合查询SQL语句学习汇总

2023-06-25 19:14| 来源: 网络整理| 查看: 265

目录

数据库增删改查SQL语句

MySQL数据库指令

1.查询数据库

2.创建数据库

3.删除数据库

4.选择数据库

创建表table  

查看所有表

创建表

查看指定表的结构

删除表

数据库命令进行注释

增删改查(CRUD)详细说明

增加

SQL库提供了关于时间的函数:now() 

查询

查询表作列与列之间进行运算

查询指定某列作为别名,使用关键字as

进行查询数据去重操作,使用关键字distinct

查询结果排序

指定条件查询 where

范围查找区别:between A and B  (前闭后闭)

查询某个具体的数值:使用in来表示

模糊查找某个字符:使用like

 分页查询,使用limit来查询

查询结果作为表新增的数据

SQL查询结果进行字符串截取:substring 

SQL查询结果进行字符串拼接:concat

SQL查询结果进行字符大写:upper

聚合查询

数据求和:sum

计算平均值:avg 

求某列的最大值和最小值 :max \ min

分组查询:group by

条件过滤:having \ where

计算表中行的数量:count 

多表查询:join    on 

左外连接:left join  表   on 

右外连接:right join  表   on 

合并多表查询结果:union \ union all 

数据库索引

查看索引

 创建索引

删除索引 

数据库增删改查SQL语句

userlogin为表的名字

增:insert  into  userlogin  values ('5','5');

删:delete  from  userlogin  where  username ='3';

改:update  userlogin  set  username ='3'  where  pwd  ='2';

查:select  *  from  userlogi;

注意点:查询语句中的通配符 * 尽量不要使用,原因:数据量大时会降低查询效率,使用列名代替*,平时养成好习惯

MySQL数据库指令 1.查询数据库

show databases;(多个数据库用复数)

2.创建数据库

create database 数据库名 charset  utf8;    

 (数据库名由字母、数字、下划线组成,数字不能在最前面)

注意:此处为database,后面没有s,创建数据库增加 charset utf8 可以使数据库插入中文,否则插入中文会报错

报错案例:

3.删除数据库

drop database 数据库名;

4.选择数据库

use 数据库名;

创建表table  

注意点(创建表前先选中具体某个数据库)

查看所有表

show tables;

创建表

create  table 表名(列名 类型,列名 类型,列名 类型);

注意点:类型有int,varchar(),decimal(m,n)   m指有m位有效数字,n指在小数点后有n位数字

查看指定表的结构

desc 表名;

删除表

drop  table 表名;

数据库命令进行注释

在SQL中可以使用“--空格+描述”来表示注释说明

增删改查(CRUD)详细说明 增加

Insert  into 表名 (id,name,age) values(1, ‘小红’,111)    注意点:插入字符串时记得用分号’ ’隔开

注意点:一次插入多个记得用逗号,隔开

SQL库提供了关于时间的函数:now() 

 

查询

Select * from 表名;

Select 列名,列名 from 表名;

查询表作列与列之间进行运算

select  列名, 列名+列名+列名  from  表名;

查询指定某列作为别名,使用关键字as

进行查询数据去重操作,使用关键字distinct

查询结果排序

对查询的结果需要进行排序时,可以使用order by asc(asc 可以默认不写) 即order by 

对结果进行升序操作(由小到大):order by

对结果进行降序操作(由大到小):order by desc

 注意点:(orde by 可以后面接别名,比如计算总和时,前面有as total ,后面可以order by total),Where 不能后面接别名

指定条件查询 where

条件查询,可以直接拿两个列进行比较

示例:查询 语文成绩大于数学成绩的学生名单

select  name from table  where chinese > math;

范围查找区别:between A and B  (前闭后闭)

查询某个具体的数值:使用in来表示

模糊查找某个字符:使用like

 分页查询,使用limit来查询

举例:查询表前3条数据(此时默认从第一页查询)

 如果想自定义从某一页查询,就使用offset

查询结果作为表新增的数据

SQL查询结果进行字符串截取:substring 

用法:substring(字符串,截取起始位置,截取字符数)

SQL查询结果进行字符串拼接:concat

用法:concat(字符串1,字符串2,字符串3,......)

SQL查询结果进行字符大写:upper

 用法:upper(字符串)

聚合查询 数据求和:sum

sum求和只针对数字有效,无法对字符串进行求和,在对列进行求和时会自动跳过结果为null的行

计算平均值:avg 

avg能够计算某一列的平均值,使用方法和sum一样

avg还能搭配表达式一起使用

求某列的最大值和最小值 :max \ min

分组查询:group by

 分组查询会把相同的列分在同一组中。

比如说如果需要计算某一个岗位的工资就需要把每一个岗位分在同一个组中,再来计算这个岗位的平均工资

条件过滤:having \ where

where: 过滤指定的行

having: 过滤分组,与group by 连用

注意:group by  子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 where 语句,而需要用having

举例: 显示平均工资低于 1500 的角色和它的平均工资 select role ,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3