mysql 增、删、改、查 、函数、执行次序

这些是最基础的部分,若果这些不能满足你的需求,可以到http://www.w3school.com.cn中查询


增删改:
增
insert into<表名>(<列名列表>(如果添加一个表所有字段就不需要设置这项))values();
删
delete from <表名> where<过滤条件>;
改
update <表名> set <列1=值 ,列2=值> where <过滤条件>

查 

@1.select *from <表名>;查询单表全部。
@2.select *from <表名> where <过滤条件>;
@3.Select * from student where <列名> in('A','B'); 集合条件查询。
@3.select <列名1 as 别名1,列名2 as 别名2>from <表名> where <过滤条件>; 查询一个表的某几个字段。
@4.select *from <表名> where...or/and...  where后跟条件用or或者/and并且 
 
去重查询
1.select distinct <列名> from <表名>;  

子查询
1.select *from <表名> where <列名> In<
      select <列名1>from <表名> where <过滤条件>
    >;(In是包含的意思   In后的括号中也能是一个集合)

模糊查询
1.select *from <表名> where <列名> like((%张%)(包含零个或者多个任意字符)||(张_)  下画线代表一个字符)

聚合函数
count (统计数量)
sum   (求和)
avg   (平均值)
max   (最大值)
min   (最小值)

sql语句执行次序:
select子句
from子句
where子句
group by子句      分组语句 例如:group by  列名;
order by子句      排序语句  升asc  降desc 
having 子句      后面跟聚合函数

where和having区别 两者多为过滤条件  where子句会在聚合函数之前计算之前就过滤,而having子句会在group by子句后执行。


多表查询

select 1.a ,2.b from 1 ,2 where 1.aa=2.bb;需要查询两张表中字段  用这种方式连接。


1.<表名>join<表名>on<连接条件>and...      链表查询链表条件用on 多条件时跟and。
2.<表名>join<表名>on<连接条件>where...    链表查询链表条件用on     where就是对生成的表进行过滤。
3.<表名>join<表名>on<连接条件>join...on   多表连接。这是三张表连接样式。

4.select * from table1,table2 where table1.column1<table2.column2   非相等连接  如果把<换成= 也能连接。

内连接
from table1 inner join table2 on table1.column1=table2.column2   让两个表中条件值相匹配的进行连接。
左外连接
left join (left outer join)on     返回左边表全部,如果右表没有匹配的则返回空值。
右外连接
right join (right outer join) on  返回右边表全部,如果左表没有匹配的则返回空值
全外连接
full join (full outer join) on    返回左右表的全部行,若果一表没有匹配时返回空行匹配。



posted @ 2016-03-31 09:49  goumingming  阅读(294)  评论(0编辑  收藏  举报