mysql 2.sql的基础操作

这篇有点水,是我看《sql必知必会》的笔记,凌乱的一码~,而且这本书着重介绍的是SQL语言,对于特定的DBMS不够深入,所以这周我看了同作者写的《MySQL必知必会》哈哈。在这里立个FLAG吧,三天看完,然后总结出一篇笔记,也就是周三晚上12点截止,我会发布mysql的读书笔记的,吼吼。如果我有幸让大家看到这篇文章,并且想交流一下的话,可以加我微信哦,我好闲的哈哈。wx:zz1994yr.。





我又回来了~~昨天跟朱老板聊国际内外形势,颇有点书生意气,很是酣畅。1点左右上床睡觉,跟平常比起来算是很早了,今天5点多就醒了过来,窗外雾蒙蒙的,却有一层红色纱裙环绕着天际,不多会,红彤彤的太阳就从山尖尖那里冒出头了。嗨,美景总是来的那么不经意。

跑偏了哈,今天继续Mysql的学习咯,来介绍一下基操。

[if !supportLists]一、[endif]seclect语句查询

seclect () from ();

seclect () ,() from ();

seclect distinct () from ();


[if !supportLists]二、[endif]order by语句排序

order by 字句放在最后,默认从小到大,从A到B。

order by ();

order by () , ();

order by () desc ;


[if !supportLists]三、[endif]where语句过滤

操作符

< ; >; <>; !=; !<; !>; <=; >=;between … and … ; IS NULL;


[if !supportLists]四、[endif]高级数据过滤

[if !supportLists]1.    [endif]“ADN””OR”来进行多组筛选,AND优先级高,使用时尽量用小括号明确操作顺序。

[if !supportLists]2.    [endif]IN 语句。 IN(— ,—);

[if !supportLists]3.    [endif]NOT语句。WhereNOT ;


[if !supportLists]五、[endif]高高级数据过滤----通配符进行过滤

LIKE作为谓语出现,来进行模糊的匹配。(RegExp正则也可以来过滤,之后补)

[if !supportLists]1.    [endif]%

用“%”来代替任意字符串。Where pro_name like(‘F%y%’);

PS:    区分大小写;

注意填充在字符串后面的空格(最好用函数去除);

% 无法区分NULL

[if !supportLists]2.    [endif]_

用 “_” 来代替单一字符,精确。

[if !supportLists]3.    [endif][]

用“[…]” 来指定一个字符集,[^…]来指定不包含的字符集

Seclect pro_name

From pro_tables

Where pro_name like ‘[JM]%’

Order by pro_name;

       附注:RegExp来进行正则表达式匹配,使用方法一样。

                     […]  [^…] {n}  {n,m} p1|p2|p3 


[if !supportLists]六、[endif]计算字段

应用程序所需要的数据格式没法直接seclect数据库的列来呈现,这时就需要创建计算字段,直接在数据库中创建、转换、计算。

[if !supportLists]1.    [endif]拼接字段

不同DBMS有不同的操作符。Access, sql server用“+” ,DB2,Oracle等用“|” 。

Select rtrim(vend_name) + ‘ (’ + rtrim(vend_cou) + ‘)’

As vend_title

From vendor

Order by vend_name;

附注:     trim()函数去除字段的空格,rtrim() 和ltrim()

               As()赋予别名

[if !supportLists]2.    [endif]执行计算

Select price, quantity, price*quantity as expanded_price

From tables

Order by price;


[if !supportLists]七、[endif]数据处理函数

具体的DBMS中函数不同。在这里就不一一列举了,其实用法都很简单。

[if !supportLists]1.    [endif]文本处理函数

Left() ; rtrim() ; length() ; .soundex() ;

[if !supportLists]2.    [endif]日期、时间处理函数

看具体函数的参数意义。

[if !supportLists]3.    [endif]数值处理函数

这类函数在不同DBMS中用法相同。


[if !supportLists]八、[endif]汇总数据

不需要实际的数据,用聚集函数获得汇总的数据,在所有的DBMS中用法一致。

[if !supportLists]1.    [endif]AVG ()

[if !supportLists]2.    [endif]COUNT ()

[if !supportLists]3.    [endif]MAX()

[if !supportLists]4.    [endif]MIN()

[if !supportLists]5.    [endif]SUM()

聚集不同值时使用distinct()。


[if !supportLists]九、[endif]分组数据

将数据分为多个逻辑组,对每个分组进行聚集计算。

[if !supportLists]1.    [endif]用group by创建分组

Select vend_id , count(*) asvend_item

From products

Group by vend_id;

[if !supportLists]2.    [endif]用having 来过滤分组

Selectprod_id , sum(quantity) as sum_quan

Fromorderitems

whereitem_price >= 3

Group byprod_id

Havingsum(quantity) >=100

Order by prod_id;

[if !supportLists]3.    [endif]Select字句的顺序

Select àfrom àwhere àgroup byàhaving àorder by


[if !supportLists]十、[endif]使用子查询

子查询就是select的嵌套

在用子查询过滤时注意表之间的联结。

(Select count(*)

From cust

Where cust_id = prod_id) as orders


[if !supportLists]十一、    [endif]联结表

几个表之间的联结。

[if !supportLists]1.    [endif]用where 实现的等值联结

Where pro.prod_id = cust.cust_id

[if !supportLists]2.    [endif]内联结(inner join)

Select name , id , pro

From vender inner join cust

On vender.id = cust.id

              联结多个表的时候,用where…and…


[if !supportLists]十二、    [endif]创建高级联结

[if !supportLists]1.    [endif]自联结

[if !supportLists]2.    [endif]Outer join


[if !supportLists]十三、    [endif]组合查询

Ouiou进行组合查询,与where 用法类似。Onion all


[if !supportLists]十四、    [endif]插入数据

[if !supportLists]1.    [endif]用insert into插入数据

Insert into __ ()

Value ( ) ;

insert into __ ()

select () from __;

[if !supportLists]2.    [endif]Select into复制数据表

Select *

From ()

Into __

在mysql中用法不同

Create table __ as select * from __;


[if !supportLists]十五、    [endif]更新和删除数据

UPDATE  DELETE

[if !supportLists]1.    [endif]UPDATE __

SET __.__ =

FROM __;

[if !supportLists]2.    [endif]DELETE FROM __

WHERE __ =   ;


[if !supportLists]十六、    [endif]创建和操纵表

1.创建表Creat table __ (

***,

***

)

表列的名字和定义用“ , ”隔开

设置默认值,default __ 通常用于时间戳,MySQL中default current_date()

[if !supportLists]3.    [endif]更新表 alter table __

[if !supportLists]4.    [endif]删除表drop table __


[if !supportLists]十七、    [endif]使用视图

视图即是打包的函数,是虚拟的表

creat view __ as …

简化主程序。


[if !supportLists]十八、    [endif]使用存储过程

即创建函数,用时直接调用。

[if !supportLists]1.    [endif]执行存储过程

Execute __ (…);

[if !supportLists]2.    [endif]创建存储过程

各个DBMS创建不同,步骤都差不多。


[if !supportLists]十九、    [endif]管理事务处理

批量的进行SQL语言操作,保证遇到错误能够回退。

Transaction   rollback   commit   savepoint


[if !supportLists]二十、    [endif]游标

Cursor

你可能感兴趣的:(mysql 2.sql的基础操作)