sql基础(MySQL)

1.数据库操作
create database 库名; #创建库

create datebase 库名 default character set utf8; #创建库时设置编码

show databases;  #查看所有数据库
2.表的操作
use 数据库名;  #进入/使用数据库

create table 表名(字段1 字段类型(字段长度),字段2 字段类型(字段长度),字段3.........);    #创建表

show tables;   #查看数据库中所有表

desc 表名;   #描述表的结构

drop table 表名 #删除表 

alter table 表名 add column 字段名 字段类型(字段长度);  #添加字段/列(修改表)

select * from 表名;  #查看表中所有数据

select 字段1,字段2,.... from 表名  #查询表中字段1,字段2....中所有数据

insert into 表名 values(字段1的值,字段2的值,字段3的值......)   #向表中添加数据
3.基础函数

lower(字段名) 转换为小写

upper(字段名) 转换为大写

substr(字段名,从哪截取,截取长度) 截取

length(字段名) 求字段长度

concat(字段名,要拼接的数据…) 拼接数据

replace(字段名,要替换的,替换成什么) 替换数据

ifnull(字段名,替换成什么) 将字段中null数据替换成想替换的

round(字段名) 四舍五入 ceil(字段名) 向上取整 floor()向下取整

now() 获取当前时间(包含年月日时分秒) year(now())获取当前年份 month(now())获取当前月份

4.条件查询
distinct

去除重复的记录行

select distinct 字段 from 表名;  
where
select * from 表名 where 字段='?';   #查询表中字段中为?的数据

select * from 表名 where 字段1='?' and  字段2='?'   #查询同时满足两个条件的数据

select * from 表名 where 字段1='?'  or  字段2='?'    #查询满足其中一个条件的数据
like

模糊查询

select * from 表名 where 字段 like 'a%';    #查询该字段以a开头的数据

select * from 表名 where 字段 like '%a';    #查询该字段以a结尾的数据

select * from 表名 where 字段 like '%a%';    #查询该字段包含a的数据
null
select *from 表名 where 字段 is null;   #查询该字段为空的数据

select *from 表名 where 字段 is not null;  #查询该字段不为空的数据
between and
select * from 表名 where 字段  between a and b   #查询字段中a到b之间的数据(包含a和b)
limit

通过limit可以进行分页查询,限制每页显示记录数

select * from 表名 limit 2; #列出前两条记录;
select * from 表名 limit a,b #从a+1条开始,展示b条记录
order by
select * from 表名 order by 字段;  #按照字段升序(默认最后有ASC关键字 也就是默认升序)
select * from 表名 order by 字段 desc #按字段降序
5.聚合函数

将一列的值聚合在一起再做分析(一共5个)

不能出现混合现象,即不能同时出现聚合列和非聚合列,进行分组后才可以混合

max(字段) 求最大值
min(字段) 求最小值
avg(字段) 求平均数
sum(字段) 求和
count(*) count(1) count(字段) 统计个数

count(字段) null不统计 低效,几乎不用

一般用count(1) 高效

使用count(字段)时,不会统计字段为null的个数

6.分组 group

用于对查询的结果进行分组统计

group by 表示分组,having 字句类似where过滤返回的结果

group by

当查询时出现了聚合列和非聚合列时,必须按照非聚合进行分组

select 字段1,max(字段2) fromgroup by 字段1; #将字段1进行分组后求字段2的最大值
select 字段1,max(字段2),avg(字段2) fromgroup by 字段1; #将字段1进行分组后求字段2的最大值和平均值
having

用法与where一样,只不过where用于没分组时,而having用于分组时。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值