SQL语句用法梳理全都在这里,拿走不谢

   **

**

写在前面:SQL语言不区分大小写**

**

**

SQL语言主要分为:

**
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增、改、删,如insert、update、delete
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop

常用数据类型如下:
整数:int,bit
小数:decimal
字符串:varchar,char
日期时间: date, time, datetime
枚举类型(enum)

常见的约束:

主键约束 primary key
非空约束 not null
惟一约束 unique
默认约束 default
外键约束 foreign key

命令行客户端MySQL的使用:
登录数据库: mysql -uroot -p
退出数据库: quit 或者 exit 或者 ctr + d
创建数据库: create database 数据库名 charset=utf8;
使用数据库: use 数据库名;
删除数据库: drop database 数据库名;
创建表: create table 表名(字段名 字段类型 约束, …);
修改表-添加字段: alter table 表名 add 字段名 字段类型 约束
修改表-修改字段类型: alter table 表名 modify 字段名 字段类型 约束
修改表-修改字段名和字段类型: alter table 表名 change 原字段名 新字段名 字段类型 约束
修改表-删除字段: alter table 表名 drop 字段名;
删除表: drop table 表名;
查询数据: select * from 表名; 或者 select 列1,列2,… from 表名;
插入数据: insert into 表名 values (…) 或者 insert into 表名 (列1,…) values(值1,…)
修改数据: update 表名 set 列1=值1,列2=值2… where 条件
删除数据: delete from 表名 where 条件

as和distinct关键字
as 关键字可以给表中字段 或者 表名起别名
distinct 关键字可以去除重复数据行。

where条件查询语法:select * from 表名 where 条件
比较运算符:等于: =
      大于: >
      大于等于: >=
      小于: <
      小于等于: <=
      不等于: != 或 <>
      
逻辑运算符:and
      or
      not
      
模糊查询: like是模糊查询关键字
      %表示任意多个任意字符
      _表示一个任意字符
      
范围查询: between … and … 表示在一个连续的范围内查询
      in 表示在一个非连续的范围内查询
      
空判断:  判断为空使用: is null
      判断非空使用: is not null
注意:
不能使用 where height = null 判断为空
不能使用 where height != null 判断非空
null 不等于 ‘’ 空字符串

**

排序查询语法

**:
select * from 表名 order by 列1 asc|desc [,列2 asc|desc,…]
排序使用 order by 关键字
     asc 表示升序
     desc 表示降序

分页查询的语法:select * from 表名 limit start,count
   limit是分页查询关键字
start表示开始行索引,默认是0 公式 (page -1)*count
   count表示查询条数
  注:当 limit=0 时,可以不用写。limit 关键字后面的第一个参数是开始行索引(默认是0,不写就是0),第二个参数是查询条数

常用的聚合函数:

count(col): 表示求指定列的总行数
max(col): 表示求指定列的最大值
min(col): 表示求指定列的最小值
sum(col): 表示求指定列的和
avg(col): 表示求指定列的平均值

注:ifnull函数: 表示判断指定字段的值是否为null,如果为空使用自己提供的值。
拓展:round ( avg (price) , 2) 表示价格平均值保留2位小数


分组查询基本的语法格式如下:**

GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]

列名: 是指按照指定字段的值进行分组。
HAVING 条件表达式: 用来过滤分组后的数据。
WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果

2. group by的使用
group by可用于单个字段分组,也可用于多个字段分组

– 根据gender字段来分组
select gender from students group by gender;
– 根据name和gender字段进行分组
select name, gender from students group by name, gender;
3. group by + group_concat()的使用
group_concat(字段名): 统计每个分组指定字段的信息集合,每个信息之间使用逗号进行分割

– 根据gender字段进行分组, 查询gender字段和分组的name字段信息
select gender,group_concat(name) from students group by gender;
4. group by + 聚合函数的使用
– 统计不同性别的人的平均年龄
select gender,avg(age) from students group by gender;
– 统计不同性别的人的个数
select gender,count(*) from students group by gender;
5. group by + having的使用
having作用和where类似都是过滤数据的,但having是过滤分组数据的,只能用于group by

– 根据gender字段进行分组,统计分组条数大于2的
select gender,count() from students group by gender having count()>2;
6. group by + with rollup的使用
with rollup的作用是:在最后记录后面新增一行,显示select查询时聚合函数的统计和计算结果

– 根据gender字段进行分组,汇总总人数
select gender,count(*) from students group by gender with rollup;
– 根据gender字段进行分组,汇总所有人的年龄
select gender,group_concat(age) from students group by gender with rollup;
7. 小结
group by 根据指定的一个或者多个字段对数据进行分组
group_concat(字段名)函数是统计每个分组指定字段的信息集合
聚合函数在和 group by 结合使用时, 聚合函数统计和计算的是每个分组的数据
having 是对分组数据进行条件过滤
with rollup在最后记录后面新增一行,显示select查询时聚合函数的统计和计算结果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值