Mysql语句

Mysql语句

一.创建表(create)


#创建表
create table tablename(
字段名1 类型,
字段名2 类型,
字段名3 类型,…);
//例子
create table student(
stu_id int primary key(主键) auto_increment(//自增长),
stu_name varchar(255),//字符串要写长度
stu_score double,
tea_id int
);

二.查找(select 查)

#1.选择查询:
select * from 表名 where 范围;
//例
select * from student where stu_id = 1;

#2.完全查询:
select * from 表名
//例
select * from student;

三.插入(insert 增)

#完全插入:
#完全插入可以省略列名,但是值必须包含所有字段,批量插入类同
insert into 表名 values(值1,值2,值3,…)
//例子
insert into student values
(1,"刘一",100,1);

#选择插入:
#选择插入必须选择需要插入的字段,选择对应字段的值,批量插入类同
insert into 表名(列名1,列名2,列名,3…) values(值1,值2,值3,…)
//例子
insert into student(stu_name, stu_score, tea_id)values
("陈二",90,1)

#批量插入:
insert into 表名 values(值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…)…
//例子
insert into student (stu_name , stu_score, tea_id )values
("张三",80,1),("李四",70,1),("王五",60,1),("赵六",50,1),("孙七",40,1),("周八",30,1),("吴九",20,1),("郑十",10,1)

四.修改(update 改)

#(注意:没有where条件整张表全部数据更新)
update 表名 set 列名=‘值’ where 列名=‘范围’;
//例子
update student set stu_score=100,tea_id = 2 where  stu_id=1;

五.删除(delete 删)

#删除数据
Delete from 表名 where 条件;
//例子
delete from student where stu_id = 1;

#删表
Drop table 表名;#这个通用
Drop table if exists 表名;#oracle不支持这个写法

六.内连接、左连接、右连接以及全连接查询

1.Left join:即左连接,是以左表为基础,根据on后给出的两表的条件将两表连接起来。
结果会将左表所有的查询信息列出,而右表只列出on后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
语法:
select *from 表a left join 表b on 表a.id=表b.id;

2.Right join:即右连接,是以右表为基础,根据on后给出的两表的条件将两表连接起来。
结果会将右表所有的查询信息列出,而左表只列出on后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。
语法
select * from 表a right join 表b on 表a.id=表b.id;

3.Inner join:即内连接,同时将两表作为参考对象,根据on后给出的两表的条件将两表连接起来。
结果则是两表同时满足on后的条件的部分才会列出
语法:
select * from 表a inner join 表b on 表a.id=表b.id;

七.聚合函数

1.sum(<参数>)	
用法:用于求和,可按照目标分组求和。若分组求和需要结合group by分组函数一起使用。
	1.简单的查询语句:
	select sum(<参数>) from <表名>
	2.与group by语法结合的查询语句:
	select <字段>,sum(<参数>) from <表名> group by <字段>

2.count(<参数>)
用法:用于计数,可按照目标分组求和。若分组计数需要结合group by分组函数一起使用
	1.简单的查询语句:
	select count(<参数>) from <表名>
	2.与group by语法结合的查询语句:
	select <字段>,count(<参数>) from <表名> group by <字段>

3.avg(<参数>)
用法:用于求平均值
	1.简单的查询语句:
	select average(<参数>) from <表名>
	2.与group by语法结合的查询语句:
	select <字段>,average(<参数>) from <表名> group by <字段>
	
4.max(<参数>)
用法:用于求最大值
	1.简单的查询语句:
	select max(<参数>) from <表名>

5.min(<参数>)
用法:用于求最小值
	1.简单的查询语句:
	select min(<参数>) from <表名>

八.group by、having、order by

group by
分组

group by <字段>

having
在分好组后找出特定的分组,通常是以筛选聚合函数的结果。
如果使用having,必须使用group by ;
但是使用group by 不一定使用having。

group by <字段>having<筛选聚合函数>

order by
排序字段,默认是降序

降序order by 列名desc
升序order by 列名  或order by 列名asc

九.limit用法

放在sql语句的最后

limit offset,length;

offset:起始行数,从 0 开始计数,如果省略,默认就是 0
length: 返回的行数

十.sql语句执行顺序

1.from语句:先执行form语句,然后会生成**虚拟表1**

2.join(链接表):链接两张或多张表,生成**虚拟表2**

3.where语句:
①如果是单表查询,那么就没有join语句,此时where在**虚拟表1**操作,进行过滤,
把满足where条件的数据过滤出来,生成**虚拟表3**
②如果多表查询,在这个**虚拟表2**中操作,进行过滤,把满足where条件的数据过滤出来,生成**虚拟表3**

4.group by语句:对满足where条件的**虚拟表3**进行分组操作,分组完成后,生成**虚拟表4**

5.执行having过滤:对##虚拟表4##进行过滤,但是一般都是用聚合函数,生成**虚拟表5**

6.select语句:这个时候执行语句,select *  或 select  id ,name  ,password等,
都是在**虚拟表5**中进行操作,把需要的字段从**虚拟表5**中提取出来,生成**虚拟表6**

7.order by语句:根据**虚拟表6**中的某个字段进行排序,生成**虚拟表7**

8.limit字句:在**虚拟表7**上操作,从指定位置取出数据,生成**最终表**
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值