数据库基本语句

创建表

Create table 表名

例: create table person(

          id int primary key,

         name varchar(16) not null,

         age int,

         phone varchar(11),

         address varchar(256)

);

插入数据(增)

insert into person(id,name,age,phone,address)

values(1,'yang',22,'1232323','中国上海')

查询数据(查)

1. 查询所有数据

select * from hero

2.统计表中有多少数据

select  count (*) from hero

3.分页查询

显示前5条数据

select * from hero limit 0,5

修改数据(改)

update hero set hp = 818 where id = 1

删除数据(删)

delete from hero where id = 1

where子句

查询出,名字叫「yang」,年龄为「22」的记录

select * from person

where name ='yang'&&22;

 

HAVING 子句

HAVING 子句在我看来就是一个高配版的 where 子句,无论是我们的分组或是排序,都是基于以返回的结果集,也就是说 where 子句的筛选已经结束。

那么如果我们对排序、分组后的数据集依然有筛选需求,就用到我们的 HAVING 子句了。

例如:

select avg(age) as vage from person

group by name

having vage>23;

 

like子句

LIKE 子句,一般用来做一些简单的搜索查询,或者说模糊匹配,表达式主要涉及到两个符号:

  • 百分号 %:匹配任意多个字符
  • 下划线 _:匹配固定一个字符

例:查询所有的数据,找到其中 name 字段以字符「ang」结尾的数据记录集合:

select * from person where name like '%ang';

in子句

in 关键字也是使用在 where 子句的条件表达式中,它限制的是一个集合,只要字段的值在集合中即符合条件,例如:

select * from person where age in (22,30,23);

not in 反向限制,查询不是这些集合的数据

select * from person where age not in (22,30,23);

ORDER BY 子句

ORDER BY 子句根据一列或者多列的值,按照升序或者降序排列数据。某些数据库就默认以升序排列查询结果。

ASC 表示数据结果集按升序排序,DESC 表示数据结果集按降序排序。

select * from person order by id desc;

GROUP BY 子句

GROUP BY 子句用于将查询返回的结果集进行一个分组,并展示各个分组中排在第一个的记录,将分组中其余成员隐藏。

select * from person group by name;

平均值

select avg(age) as '平均年龄' from person group by name;

多表查询

join操作

在数据库的查询中,多表连接查询是一大难点,也是多表查询里的重点。连接主要有以下四种情况:

INNER JOIN或者JOIN(内连接):如果表中有至少一个匹配,则返回行 【在语法中可以省略INNER关键字】

select a.*, b.* from tablea a

inner join tableb b

on a.id = b.id

LEFT JOIN(左连接):从左表返回所有的行,如果右表中没有匹配,对应的列返回Null

select a.*, b.* from tablea a

left join tableb b

on a.id = b.id

RIGHT JOIN(右连接):从右表返回所有的行 ,如果左表中没有匹配,对应的列返回Null

 select a.id aid,a.age,b.id bid,b.name from tablea a

right join tableb b

on a.id = b.id

    FULL JOIN(全连接):只要其中一个表中存在匹配,则返回行(即结合左连接和右连接的结果)

 select a.id aid,a.age,b.id bid,b.name from tablea a  

left join tableb b 

on a.id = b.id   

union  

select a.id aid,a.age,b.id bid,b.name from tablea a   

right join tableb b   

on a.id = b.id

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值