!注释方式

#    --    单行

/*     */  多行

1.SELECT  column1,column2,column3  FROM tablename WHERE id <= 5;

2.SELECT  DISTINCT column1,column2  FROM tablename WHERE id <= 5;

去掉所有column里的重复列

3.SELECT  column1 FROM tablename WHERE id = 1 LIMIT 5 ;

选取  前5条

4.SELECT  column1 FROM tablename WHERE id = 1 LIMIT 5 OFFSET 5;

从第5条开始 选取5条   下标从第0条开始计算

可以简写为 SELECT  column1 FROM tablename WHERE id = 1 LIMIT 5 , 5;

5. 排序规则有DESC/DESCENDING 和 ASC/ASCENDING  默认是ASC  降序排列必须指明 DESC

如果没有指定排序,则不应该假定检索出来的数据的顺序有任何意义

SELECT  column1,column FROM tablename WHERE id = 1 ORDER BY column DESC;

一定要确保 ORDER BY 是SQL语句的最后一条语句,否则将会出现问题

column可以是表中的任何字段,并不一定是要显示的列

SELECT  column1,column2 FROM tablename WHERE id = 1 ORDER BY columnX,columnY ASC;

先按照columnX排列,再在此基础之上按照columnY排列

SELECT  column1,column2 FROM tablename WHERE id = 1 ORDER BY 1,2;

支持相对列位置进行排列   先按照column1排列,再在此基础之上按照column2排列

SELECT  column1,column2 FROM tablename WHERE id = 1 ORDER BY columnX DESC,columnY ASC;

先按照columnX降序排列,再在此基础之上按照columnY升序排列

6.检索指定数据要给予  过滤条件   即:WHERE子句

SELECT  column1 FROM tablename WHERE id = 1;

常用操作符

操作符   说 明

=         等于

!= 不等于

< 小于

<= 小于等于

> 大于

>= 大于等于

BETWEEN X AND Y 在指定的X,Y之间的值

IS NULL 为NULL值

NULL与字段0、空字符串、空格不同  只用用 IS NULL来验证

7.SQL允许给出多个WHERE子句。这些子句有两种使用方式,即以AND子句或OR子句的方式使用,

逻辑操作符用来联结或改变WHERE子句中的子句的关键字。

SELECT  column1 FROM tablename WHERE id = 1 AND pid =>2;

同时满足两个条件id = 1,pid =>2的数据才会被检索出来

可以增加多个过滤条件,每个条件间都要使用AND关键字。

类似于交集

SELECT  column1 FROM tablename WHERE id = 1 OR pid =>2;

只要满足其中一个条件id = 1 或者pid =>2的数据才会被检索出来

但是在第一个条件满足时,不管第二个条件是否满足,相应的行都将被检索出来

类似于并集

SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。

SELECT  column1 FROM tablename WHERE id = 1 OR pid =>2 AND uid =2;

但是可以用括号提高优先级

SELECT  column1 FROM tablename WHERE (id = 1 OR pid =>2) AND uid =2;

任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认求值顺序,即使它确实如你希望的那样。使用圆括号没有什么坏处,它能消除歧义。

8.IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号中的合法值。

SELECT  column1 FROM tablename WHERE id in ('1','2','3');

选取id为1 或者2 或者3的数据,可以这样理解

SELECT  column1 FROM tablename WHERE id=1 OR id=2 OR id=3;

选取的结果为并集,IN操作符一般比一组OR操作符执行得更快,并且可以包含其他SELECT语句

NOT 否定其后所跟的任何条件。因为NOT从不单独使用,所以它的语法与其他操作符有所不同。NOT关键字可以用在要过滤的列前,而不仅是在其后。

SELECT  column1 FROM tablename WHERE NOT id=1;

选取除了id=1之外的所有数据

SELECT  column1 FROM tablename WHERE id!=1;

!! NOT简单语句没有什么优势,但是可以和 IN BETWEEN EXISTS语句合并

9.模糊查询 LIKE NOT LIKE

通配符搜索只能用于文本字段(串),非文本数据类型字段不能使用通配符搜索。

百分号(%)通配符,在搜索串中,%表示任何字符出现任意次数 包括0

SELECT  column1 FROM tablename WHERE username='A%';

所有username以A开头的用户

SELECT  column1 FROM tablename WHERE username='%A%';

所有username包含字母A的用户

SELECT  column1 FROM tablename WHERE username='A%s';

所有username以A开头B结尾的用户

通配符%看起来像是可以匹配任何东西,但有个例外,这就是NULL。

WHERE username LIKE '%'不会匹配用户名称为NULL的行。

通配符是下划线 _ 下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。

SELECT  column1 FROM tablename WHERE username='A_s';

所有username以A开头s结尾的,并且只能是三个字母  比如:ABs   Abs

10.方括号[]通配符

类似于正则表达式的[],它必须匹配指定位置的一个指定字符范围。

SELECT  column1 FROM tablename WHERE username='[ABC]%';

所有username以A开头或者B开头的用户或者C开头的用户

否定  在[]中加上^否定符号

SELECT  column1 FROM tablename WHERE username='[^ABC]%';

所有username不以A开头或者B开头的用户或者C开头的用户

正如所见,SQL的通配符很有用。但这种功能是有代价的,即通配符搜索一般比前面讨论的其他搜索要耗费更长的处理时间。这里给出一些使用通配符时要记住的技巧。

a.不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。

b.在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。

c.仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

11.计算字段是运行时在SELECT语句内创建的,是直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。计算字段并不实际存在于数据库表中。需要特别注意,只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户端(如应用程序)来看,计算字段的数据与其

他列的数据的返回方式相同。

SELECT user_name +'('+user_sex+')' FROM user;

取出格式为 zhou(man) 类似的数据

'+'号拼接类似于 JS中的拼接字符串操作

RTRIM()(正如刚才所见,它去掉字符串右边的空格)、

LTRIM()(去掉字符串左边的空格)以及

TRIM()(去掉字符串左右两边的空格)。

SELECT TRIM(user_money) FROM user;

取出去掉两遍空格的user_money

12.使用别名  SELECT从数据库取出值以后,这个列没有名字,只是一个值

SQL支持列别名。别名(alias)是一个字段或值的替换名。别名用AS关键字赋予。

SELECT Coder AS PHPer FROM user;

从user表中取出Coder,并且重新命名为PHPer,其中的AS是可以省略的,但是最好写上

SELECT Coder PHPer FROM user;

别名还有其他用途。常见的用途包括在实际的表列名包含不合法的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它。

别名既可以是一个单词也可以是一个字符串。如果是后者,字符串应该括在引号中。虽然这种做法是合法的,但不建议这么去做。多单词的名字可读性高,不过会给客户端应用带来各种问题。因此,别名最常见的使用是将多个单词的列名重命名为一个单词的名字。

13. SELECT pid,num,price,

num*price AS total

FROM goods

WHERE pid = 2;

操 作 符 说 明

+     加

-     减

*     乘

/     除

圆括号可用来区分优先顺序

SELECT语句为测试、检验函数和计算提供了很好的方法。虽然SELECT通常用于从表中检索数据,但是省略了FROM子句后就是简单地访问和处理表达式,例如SELECT 3 * 2;将返回6,SELECT Trim(' abc ');将返回abc,SELECT Now();使用Now()函数返回当前日期和时间。

函 数 说 明

LEFT() (或使用子字符串函数) 返回字符串左边的字符

LENGTH() (也使用DATALENGTH()或LEN()) 返回字符串的长度

LOWER() (Access使用LCASE()) 将字符串转换为小写

LTRIM()  去掉字符串左边的空格

RIGHT() (或使用子字符串函数) 返回字符串右边的字符

RTRIM()  去掉字符串右边的空格

UPPER() (Access使用UCASE()) 将字符串转换为大写

14.MySQL里的日期函数说明

获得当前日期+时间(date + time)函数:now()

a.select now(); //获取当前日期   2016-09-06 11:37:50

b.获得当前时间戳函数:current_timestamp, current_timestamp()

SELECT current_timestamp, current_timestamp()//2016-09-06 11:38:10  2016-09-06 11:38:10

c.(日期/时间转换为字符串)函数:date_format(date,format), time_format(time,format)

select date_format('2016-09-06 11:37:50', '%Y-%m-%d');   //2016-09-06

15.5个聚集函数

函 数 说 明

AVG() 返回某列的平均值

COUNT() 返回某列的行数

MAX() 返回某列的最大值

MIN() 返回某列的最小值

SUM() 返回某列值之和

AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。

使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。

使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

MAX()返回指定列中的最大值。MAX()要求指定列名,忽略列值为NULL的行。

MIN()返回指定列中的最小值。MIN()要求指定列名,忽略列值为NULL的行。

SUM()用来返回指定列值的和(总计),忽略列值为NULL的行。

DISTINCT不能用于COUNT(*)

在指定别名以包含某个聚集函数的结果时,不应该使用表中实际的列名。虽然这样做也算合法,但许多SQL实现不支持,可能会产生模糊的错误消息。

SELECT id,pid,avg(price) as avg_price FROM goods GROUP BY pid;

根据pid对商品进行分组,筛选出 id,pid,avg_price

先分组再筛选

GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。

参考网址:http://blog.csdn.net/xxpyeippx/article/details/8059910

16.HAVING非常类似于WHERE。事实上,目前为止所学过的所有类

型的WHERE子句都可以用HAVING来替代。唯一的差别是,WHERE过滤行,而HAVING过滤分组。

SELECT cust_id, COUNT(*) AS orders

FROM Orders

GROUP BY cust_id

HAVING COUNT(*) >= 2; //过滤出分组以后,记录条数大于2的记录

说明:HAVING和WHERE的差别

这里有另一种理解方法,WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。这是一个重要的区别,WHERE排除的行不包括在分组

中。这可能会改变计算值,从而影响HAVING子句中基于这些值过滤掉的分组。

SELECT vend_id, COUNT(*) AS num_prods

FROM Products

WHERE prod_price >= 4

GROUP BY vend_id

HAVING COUNT(*) >= 2;

一般在使用GROUP BY子句时,应该也给出ORDER BY子句。这是保证数据正确排序的唯一方法。千万不要仅依赖GROUP BY排序数据。

17.解联结不是物理实体。换句话说,它在实际的数据库表中并不存在。DBMS会根据需要建立联结,它在查询执行期间一直存在。

创建联结非常简单,指定要联结的所有表以及关联它们的方式即可。

SELECT id,pid,  FROM goods  WHERE user.pid = product.pid;

在引用的列可能出现歧义时,必须使用完全限定列名(用一个句点分隔表名和列名)。如果引用一个没有用表名限制的具有歧义的列名,大多数DBMS会返回错误。

要保证所有联结都有WHERE子句,否则DBMS将返回比想要的数据多得多的数据。同理,要保证

WHERE子句的正确性。不正确的过滤条件会导致DBMS返回不正确的数据。

18.SQL不限制一条SELECT语句中可以联结的表的数目。创建联结的基本规则也相同。首先列出所有表,然后定义表之间的关系。

SELECT prod_name, vend_name, prod_price, quantity

FROM OrderItems, Products, Vendors

WHERE Products.vend_id = Vendors.vend_id

AND OrderItems.prod_id = Products.prod_id

AND order_num = 20007;

DBMS在运行时关联指定的每个表,以处理联结。这种处理可能非常耗费资源,因此应该注意,不要联结不必要的表。联结的表越多,性能

下降越厉害。

/*不推荐

SELECT cust_name, cust_contact

FROM Customers

WHERE cust_id IN (SELECT cust_id

FROM Orders

WHERE order_num IN (SELECT order_num

FROM OrderItems

WHERE prod_id = 'RGAN01'));

*/

//推荐

SELECT cust_name, cust_contact

FROM Customers, Orders, OrderItems

WHERE Customers.cust_id = Orders.cust_id

AND OrderItems.order_num = Orders.order_num

AND prod_id = 'RGAN01';

19.SQL除了可以对列名和计算字段使用别名,还允许给表名起别名。

这样做有两个主要理由:

缩短SQL语句;

允许在一条SELECT语句中多次使用相同的表。

SELECT cust_name, cust_contact

FROM Customers AS C, Orders AS O, OrderItems AS OI

WHERE C.cust_id = O.cust_id

AND OI.order_num = O.order_num

AND prod_id = 'RGAN01';

别名不仅能用于WHERE子句,还可以用于SELECT的列表、ORDER BY子句以及其他语句部分。

20.联结:处理联结远比处理子查询快得多。

参考网址:http://www.cnblogs.com/Ewin/archive/2009/10/05/1578322.html

1.内联结  只连接匹配的行

内连接:利用内连接可获取两表的公共部分的记录,(默认联结方式)

SELECT A.Aid AS ID,A.AName,B.BName FROM A JOIN B ON A.Aid =B.Bid;

等价于

SELECT A.Aid AS ID,A.AName,B.BName FROM A,B WHERE A.Aid =B.Bid;

2.自联结

SELECT c1.cust_id, c1.cust_name, c1.cust_contact

FROM Customers AS c1, Customers AS c2

WHERE c1.cust_name = c2.cust_name

AND c2.cust_contact = 'Jim Jones';

3.自然联结

4.外联结

外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)全外联结

a.左连接

SELECT A.Aid AS ID,A.AName,B.BName FROM A LEFT JOIN B ON A.Aid =B.Bid;

包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行

b. SELECT * FROM A RIGHT JOIN B ON A.Aid =B.Bid;

以B为标准

右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行

c.全外连接: 返回笛卡尔积

select * from A full join B

包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。

21.组合查询

主要有两种情况需要使用组合查询:

在一个查询中从不同的表返回结构数据;

对一个表执行多个查询,按一个查询返回数据。

利用UNION,可给出多条SELECT语句,将它们的结果组合成一个结果集。

Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All

两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致);

SELECT A.Aid AS ID FROM A

UNION

SELECT B.Bid AS NAME FROM B

SELECT A.Aid AS ID FROM A

UNION ALL

SELECT B.Bid AS NAME FROM B

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

22. INSERT用来将行插入(或添加)到数据库表。插入有几种方式:

插入完整的行;

INSERT INTO A VALUES (column1,column2,column3……);  //必须是A表中完整列

//但是编写依赖于特定列次序的SQL语句是很不安全的,这样做迟早会出问题。

最好是一一对应

INSERT INTO A(C1,C2,C3……) VALUES (column1,column2,column3……);

//就算结构改变了,也没有关系

插入行的一部分;

INSERT INTO A(id) VALUES (idValue); //部分指定列

省略的列必须满足以下某个条件。

该列定义为允许NULL值(无值或空值)。

在表定义中给出默认值。这表示如果不给出值,将使用默认值。

如果对表中不允许NULL值且没有默认值的列不给出值,DBMS将产生错误消息,并且相应的行插入不成功。

插入某些查询的结果。

INSERT INTO B(Bid,BName)

SELECT Aid,Aname FROM A WHERE Aid=8 //注意这里是没有VALUES的

//对应的表结构是要一致的,而且主键不允许重复

SELECT语句从A检索出要插入的值,而不是列出它们。

23.SELECT INTO将数据复制到一个新表

SELECT INTO FROM语句

语句形式为:SELECT vale1, value2 into Table2 from Table1

要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中

24. 更新(修改)表中的数据,可以使用UPDATE语句。有两种使用UPDATE的方式:

更新表中的特定行;

更新表中的所有行。

不要省略WHERE子句,在使用UPDATE时一定要细心。因为稍不注意,就会更新表中的所有行。

基本的UPDATE语句由三部分组成,分别是:

要更新的表;

列名和它们的新值;

确定要更新哪些行的过滤条件。

update A SET AName='zhouqi',Awork='PHP' WHERE Aid=8;

在UPDATE语句中使用子查询

UPDATE语句中可以使用子查询,使得能用SELECT语句检索出的数据更新列数据。

UPDATE tableA SET columnA=tableB.columnB FROM

(SELECT columnB FROM tableB WHERE ...)

WHERE ...

应该使用inner join,即:

UPDATE friends INNER JOIN users ON friends.friendid=users.userid

SET friends.friendname=users.username

25.在使用DELETE时一定要细心。因为稍不注意,就会错误地删除表中所有行。一定要有WHERE语句

DELETE FROM A WHERE id = 2;

如果省略WHERE 则删除A表中的所有数据,并且效率没有truncate好

truncate清空表数据,但是不清除表结构

26.利用CREATE TABLE创建表,必须给出下列信息:

新表的名字,在关键字CREATE TABLE之后给出;

表列的名字和定义,用逗号分隔;

CREATE TABLE ONE(

#表定义内容

);

27. 每个表列要么是NULL列,要么是NOT NULL列,这种状态在创建时由表的定义规定。

主键是其值唯一标识表中每一行的列。只有不允许NULL值的列可作为主键,允许NULL值的列不能作为唯一标识。

警告:理解NULL

不要把NULL值与空字符串相混淆。NULL值是没有值,不是空字符串。如果指定''(两个单引号,其间没有字符),这在NOT NULL列中是允许

的。空字符串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空字符串指定。

默认值在CREATE TABLE语句的列定义中用关键字DEFAULT指定。

链接:http://www.cnblogs.com/aspnethot/articles/1397130.html

1:删除列

ALTER TABLE 【表名字】 DROP 【列名称】

2:增加列

ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL  COMMENT '注释说明'

3:修改列的类型信息

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL  COMMENT '注释说明'

4:重命名列

ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL  COMMENT '注释说明'

5:重命名表

ALTER TABLE 【表名字】 RENAME 【表新名字】

6:删除表中主键

Alter TABLE 【表名字】 drop primary key

7:添加主键

ALTER TABLE tablename ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid)

8:添加索引

ALTER TABLE sj_resource_charges add index INDEX_NAME (name);

9: 添加唯一限制条件索引

ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);

10: 删除索引

alter table tablename drop index emp_name;

28.删除表(删除整个表而不是其内容)使用DROP TABLE tablename;

MYSQL基础知识总结的更多相关文章

  1. mysql基础知识大全

    前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里作简单概括性的介绍,具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善. 数据库和数据库软件 数据库是 ...

  2. mysql基础知识语法汇总整理(二)

    mysql基础知识语法汇总整理(一) insert /*insert*/ insert into 表名(字段列表) values(值列表); --蠕虫复制 (优点:快速复制数据,测试服务器压力) in ...

  3. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  4. MySQL 基础知识梳理

    MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...

  5. MySQL基础知识:启动管理和账号管理

    整理.记录常用的MySQL基础知识:时间久了,很多就忘记了. 操作系统环境为MacOS Catalina, MySQL版本为: 8.0.13 MySQL Community Server - GPL. ...

  6. MySQL基础知识:创建MySQL数据库和表

    虚构一个微型在线书店的数据库和数据,作为后续MySQL脚本的执行源,方便后续MySQL和SQL的练习. 在虚构这个库的过程中,主要涉及的是如何使用命令行管理 MySQL数据库对象:数据库.表.索引.外 ...

  7. MySQL基础知识:Character Set和Collation

    A character set is a set of symbols and encodings. A collation is a set of rules for comparing chara ...

  8. mysql基础知识详解

    分享一些mysql数据库的基础知识. 1.每个客户端连接都会从服务器进程中分到一个属于它的线程.而该连接的相应查询都都会通过该线程处理.2.服务器会缓存线程.因此并不会为每个新连接创建或者销毁线程.3 ...

  9. Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型

    1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结 ...

  10. 一、MySQL基础知识

    一.背景介绍 我们每天都在访问各种网站.APP,如微信.QQ.抖音,今日头条等,这些东西上面都存在大量的信息,这些信息都需要有地方存储,存储在哪里呢?数据库. 所有我们需要开发一个网站.APP,数据库 ...

随机推荐

  1. sharepoint2010问卷调查(4)-实现问卷的重复答复次数(采用自定义字段类型和JS)

    sharepoint的问卷调查可以设置重复和一次答复.但是设置一次后,调查过的用户再进行答复.会提示如下图: 分析下:该提示用户体验很不好.给用户感觉是系统出问题了.因此网上有人提出用eventhan ...

  2. 升级tomcat7的运行日志框架到log4j2,可以打进kafka

    为了让web application能随意使用logging组件而不受web容器自身的影响,从tomcat 6.0开始,tomact默认使用的是java.util.logging framework来 ...

  3. 如何申请Autodesk ReCap 360 photo的云币(Cloud Credit)

    在之前的博客中我介绍过Autodesk的照片建模云服务—Autodesk ReCap 360 photo,通过Autodesk ReCap 360 photo,你可以非常方便的通过照片生成三维模型.如 ...

  4. 在GitHub上管理项目

    在GitHub上管理项目 新建repository 本地目录下,在命令行里新建一个代码仓库(repository) 里面只有一个README.md 命令如下: touch README.md git ...

  5. tomcat内存溢出处理

    tomcat内存溢出设置JAVA_OPTS  答案1设置Tomcat启动的初始内存 其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4.可以利用JVM提供的-Xmn ...

  6. iOS 学习 - 10下载(3) NSURLSession 音乐 篇

    使用 NSURLSession 下载,需要注意的是文件下载文件之后会自动保存到一个临时目录,需要开发人员自己将此文件重新放到其他指定的目录中 // // ViewController.m // Web ...

  7. 定做属于自己的Lodop安装程序

    WEB控件Lodop自发布以来,受到广大开发人员的喜爱,从如下博文分析看看: http://blog.sina.com.cn/s/blog_721e77e501011nyb.html 无论是好评率还是 ...

  8. 《AngularJS高级程序设计》学习笔记

      一.AngularJS应用剖析 AngularJS存在一些最主要的构件,如模型,视图和控制器.但AngularJS中也有许多其他可供灵活使用的部件,包括模块,指令,过滤器,工厂和服务. 一 . 1 ...

  9. (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...

  10. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?