2018.08.20MySQL常用命令总结(二)

六、视图

视图创建形式:

create  view   视图名 [(列名1,列名2...]   as  一条复杂select语句;

可以将select语句所取得的列重新命名,但也可以不重新命名,则使用select语句中的给定列名。

视图的使用

其实就是当作一个查询表来用(通常只用于select

select  *  from  视图名  where 条件  order by .....

修改视图: 

alter view 视图名 [(列名1,列名2...] as select语句;

删除视图: 

drop  view  [if exists] 视图名;

七、数据插入和删除

 

3种形式

 

形式1

 

insert into  表名(字段名1,字段名2....values (a1,值a2.....)(b1,值b2.....).....

 

形式2

 

insert into  表名1(字段名1,字段名2....select  字段名1,字段名2....  from  表名2

 

形式3

 

insert  into  表名  set  字段名1=1,字段名2=2.....

 

删除数据

 

基本语法形式:

 

delete from 表名 [where条件] [order排序] [limit限定]

 

八、数据查询语言DQL 

 

基本查询

 

语法形式

 

select [all | distinct] 字段或表达式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句]

 

 [all | distinct]

 

用于设定所select出来的数据是否允许出现重复行(完全相同的数据行)

 

all:允许出现——默认不写就是All(允许的)。

 

distinct:不允许出现——就是所谓的“消除重复行”。

 

from子句

 

就是指定数据的来源,其实就是“表”,可以是一个表名,也可以是多个表——多表查询了。

 

where子句

 

一个概念:where子句,相当于phpjs中的if条件语句:其最终结果就是布尔值(true/false

 

phpif($n  % 4 == 0 && $n % 100 != 0  || $n % 400 == 0 ){}

 

则:

 

where  true,  where  1;    where 1=1;  都表示true

 

where  false,  where  0;    where 1<>1;  都表示false

 

where中可用的运算符:

 

算术运算符: +  -  *  /   %

 

比较运算符: >   >=   <    <=   =(等于)   <>(不等于)   

 

==(等于,mysql扩展),!=(不等于,mysql扩展)

 

逻辑运算符: and(与)  or(或)   not(非)

 

between语法:

 

XX  between  1  and   2

 

含义:字段XX的值在值1和值2之间(含),相当于:XX >=1 and XX<=2

 

in语法:XX in (1,2,3,4,5)        XX not in ()

 

Xx = 1 or  xx = 2 or xx =3...

 

XX  in (1,值2.......)

 

含义:XX等于其中所列出的任何一个值都算成立,相当于:

 

XX = 1  or XX = 2  or  XX = 2

 

like语法(模糊查找):

 

语法形式: XX like  ‘要查找字符’;

group  by  分组子句

形式:

group  by  字段1  排序方式1,字段2 排序方式2.....

通常都只进行一个字段的分组。

 

having子句

 

having子句其实概念跟where子句完全一样:

 

where是针对表的字段的值进行“条件判断”

 

having是只针对groupby之后的“组”数据进行条件判断,即

 

其不能使用:字段名>10

 

但可以使用:count(字段名)>10, 或  max(price) > 2000, 但如果字段是分组依据,也可以。

 

当然,通常也可以使用select中的有效的字段别名,比如:

 

select count(*) as f1 , max(f1) as f2  from tab1  group by f3 having f1 > 5 and  f2 < 1000;

 

Order by子句

 

形式:

 

order  by  排序字段1  [排序方式],  排序字段2  [排序方式].....

 

limit子句

 

形式:

 

limit   [起始行号start], 要取出的行数num

 

posted on 2018-08-20 14:20  scc78  阅读(128)  评论(0编辑  收藏  举报

导航