返回
基础
分类

组合聚集函数,in操作符的预发更加清楚

日期: 2020-01-02 08:00 浏览次数 : 194

《MySQL必知必会》读书笔记_3,mysql必知必会

SHOW DATABASES;
USE LangLibCEE;
SHOW TABLES;
SHOW COLUMNS FROM customers;
DESC customers;

《MySQL必知必会》读书笔记_3

PS:这次的信息量有点大。

聚集不同值

SELECT AVG(DISTINCT prod_price) AS avg_price

FROM products

WHERE vend_id = 1003

#相同的值不会被计算

 必赢手机登录网址 1

组合聚集函数

SELECT COUNT(*) AS num_items,

 MIN(prod_price) AS price_min,

 MAX(prod_price) AS price_max,

 AVG(prod_price) AS price_avg

FROM products

 必赢手机登录网址 2

 

创建分组

#不创建分组的样子

SELECT vend_id FROM products

#创建分组的样子

SELECT vend_id,COUNT(*) AS num_prods

FROM products

GROUP BY vend_id

 必赢手机登录网址 3

 

P84~P96

 

主键:唯一标识

外键:某个表的主键值,包含在另一个表中的一列,定义了两个表之间的关系。

PS:外键约束,会导致如果删除表A中的一行数据,如果表A的主键为表B的外键的话,并且表B中有数据引用外键为删除数据,那么会删除失败。需要先接触约束,删除表B中的数据,才能删除表A中的数据。

 

PS:需要学习数据库范式的概念,才能更加了解书中所说的设计方式。

 

联结是一种机制,用来在一条SELECT语句中关联表,因此称之为联结。

联结不是物理实体,它在实际的数据库表中不存在。

SELECT vend_name, prod_name, prod_price

必赢手机登录网址 ,FROM vendors, products

WHERE vendors.vend_id = products.vend_id

ORDER BY vend_name, prod_name

 必赢手机登录网址 4

 

笛卡尔积:由于没有联结条件的表关系返回的结果为笛卡尔积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。(PS:(R*S))

SELECT vend_name, prod_name, prod_price

FROM vendors, products

#WHERE vendors.vend_id = products.vend_id

ORDER BY vend_name, prod_name

 必赢手机登录网址 5

 

数据量很大时,应该保证所有的联结都有WHERE子句,这样可以减少返回数据量,同理也要保证子句的正确性。

 

内部联结,与上面的联结语句结果相同,不过按照规范首选下面的语句。

SELECT vend_name, prod_name, prod_price

FROM vendors INNER JOIN products

ON vendors.vend_id = products.vend_id

 必赢手机登录网址 6

多做实验:为执行任一给定的SQL操作,一般存在不止一种方法。很少有绝对正确或绝对错误的方法。性能会受很多因素影响,因此有必要对不同的选择机制进行实验,以找出最适合具体情况的方法。

 

外连接

SELECT customers.cust_id, orders.order_num

FROM customers LEFT OUTER JOIN orders

ON customers.cust_id = orders.cust_id

 必赢手机登录网址 7

MySQL下没有*=操作符,其它DBMS中很流行。

外部链接类型有两种形式:左外连接和右外连接。唯一的差别是所关联的表的顺序不同。具体使用哪一种纯粹根据方便而定。

 

带聚集函数的联结

SELECT customers.cust_name,

 customers.cust_id,

 COUNT(orders.order_num) AS num_ord

FROM customers INNER JOIN orders

ON customers.cust_id = orders.cust_id

GROUP BY customers.cust_id

 必赢手机登录网址 8

SELECT customers.cust_name,

 customers.cust_id,

 COUNT(orders.order_num) AS num_ord

FROM customers LEFT OUTER JOIN orders

ON customers.cust_id = orders.cust_id

GROUP BY customers.cust_id

 必赢手机登录网址 9

UNION组合查询:将两个SELECT语句的结果和到一起

SELECT vend_id, prod_id, prod_price

组合聚集函数,in操作符的预发更加清楚。FROM products

WHERE prod_price <= 5

UNION

SELECT vend_id, prod_id, prod_price

FROM products

WHERE vend_id IN (1001,1002)

 必赢手机登录网址 10

 

UNION从查询结果中自动去除重复行,是默认行为。要想返回所有行需要使用UNION ALL。

 

对组合查询结果排序:在语句的最后ORDER BY 用来排序所有SELECT语句返回的结果。

 

使用全文本搜索:一般在表创建的时候启用,CREATE TABLE语句接受FULLTEXT子句,它给出被索引列的一个逗号分隔的列表。

不要在导入数据时使用FULLTEXT,更新索引需要耗费时间。

在索引后使用两个函数:MATCH()指定被搜索的列;AGAINST()指定要使用的搜索表达式。

 

SELECT note_text

FROM productnotes

WHERE Match(note_text) Against('rabbit')

 必赢手机登录网址 11

传递给Match()的值必须与FULLTEXT()定义中的相同。

除非使用BINARY,否则全文本搜索不区分大小写。

 

使用查询扩展

SELECT note_text

FROM productnotes

WHERE Match(note_text) Against('anvils' WITH QUERY EXPANSION)

 必赢手机登录网址 12

 

布尔文本搜索

SELECT note_text

FROM productnotes

WHERE Match(note_text) Against('anvils' IN BOOLEAN MODE)

 必赢手机登录网址 13

 

插入检索出的数据

INSERT INTO tablename1(filed1,filed2) SELECT filed1,filed2 FROM tablename2

 

更新多个字段中的数据

UPDATE  tablename1

SET filed1 = value1,

   filed2 = value2

WHERE filed3 = value3

 

更快的删除表中所有行,使用TRUNCATE TABLE语句。

 

 

#创建表

CREATE TABLE vendors

{

vend_id INT NOT NULL AUTO_INCREMENT, #自增属性

vend_name CHAR(50) NOT NULL, #不为空属性

vend_city CHAR(50) NULL, #允许为空属性

vend_age int NOT NULL DEFAULT 1, #默认值为1,不允许使用函数,只能用常亮

PRIMARY KEY (vend_id, vend_name) #联合主键,可以单个字段做主键

} ENGINE = INNODB #选择引擎,如果没有默认为MyISAM

 

外键不能跨引擎。

 

常用数据库引擎

InnoDB是一个可靠地事务处理引擎,它不支持全文本搜索。

MEMORY在功能上等同于MyISAM,但由于数据存储在内存中,速度很快

MyISAM是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

 

更新表

ALTER TABLE tablename1

ADD filed1 CHAR(20)

 

ALTER TABLE tbalename2

DROP COLUMN filed1

 

删除表

DROP TABLE tablename1

 

重命名表

RENAME TBALE oldtablename TO newtablename

 

删除存储过程

DROP PROCEDURE procedurename

 

使用参数的存储过程

CREATE PROCEDURE procedurename( #创建存储过程

IN prfiled1 int, #接收来自外部参数

OUT prfiled2 DECIMAL(8,2) #输出结果到外部

)

BEGIN

SELECT Min(filed1) #内部查询语句

INTO prfiled2 #内部查询结果输出到变量

FROM table1;

WHERE filed2 = prfiled1 #使用接收外部参数作为查询条件

END;

 

执行存储过程

CALL procedurename(@prfiled1,@prfiled2)

SELECT @prfiled2

SHOW STATUS WHERE Variable_name LIKE '%time';
SHOW CREATE DATABASE httprunner;
SHOW CREATE TABLE t;

读书笔记3篇

  流血的背后——评海明威《永别了,武器》

  ??“抽象的名词,像光荣、荣誉、勇敢或者神圣,倘若跟具体的名称——例如村庄的名称、路的号数、河名、部队的番号和重大日期等等——放在一起,就简直令人厌恶。”

  ??(《永别了,武器》海明威 上海译文出版社)

  ??因为海明威有过一战的经历,而且凭着他清醒的意识,他比多数人更接近战争的本质——荒诞。引发战争的原因完全不像旁人理解的那么纯粹,但是这些善良、单纯的人的内心强烈的爱国热忱及虚荣心很容易被另有图谋的人利用、操纵,一主面成了刽子手,另一方面成了廉价的牺牲品。战争发展到后来,完全脱离了它维护正义的本质。在《永别了,武器》这部作品中,海明威非常直接、严肃地坦言了他反战的立场。他并不像其他人试图制造一个轰轰烈烈的战争场面,他只尊重事实,及每一个战争的受害者。

  ??这群受害者无一不表露出对战争的厌恶,没有人明白战争的意义,唯一可见的是在这个过程中不断地有无辜的、可爱的、年轻的生命瞬息间消失,而所谓的荣誉,类似于闪闪发光的银制勋章不过是用谎言捏造出来的。他们并不惧怕死亡,只是惧怕空虚,及生命的被践踏、污辱。所以他们痛恨战争的丑陋,虚伪。但同时,他们没有主宰自己命运的自由,除了用酗酒,互相挖苦的方式做低调的抵抗。在海明威的这部小说里,再次重返了荒诞,悲观绝望的主题。

  ??唯一能够证实个体存在的价值的,是那些看得见的风景,“例如村庄的名称、路的号数、河名、部队的……”而那些经过了美化的夸大事实的诸如战争之类的事物,只会加速湮灭人们对理想的兴致。其实,细心的读者会发现,海明威对大自然的迷恋远大于对人的世界(无论从《永别了,武器》,还是《乞力马扎罗的雪》,或者《战地钟声》等),此二者恰好相对立的占据着美与丑的两端。顺便值得一提的是,《老人与海》中的圣地亚哥永远不会比那只大马林鱼强大、坚韧。很显然的,他们之间的较量欠公平,圣地亚哥赢得并不光彩,似乎一条大鱼的位置应当在他之上。虽然圣地亚哥为着某种信念在坚持,但最后他仍然逃不脱孤独、一无所有的宿命。坚持一种没有结果的行为,从另外一个层面来讲,增进了悲剧的范畴。在卡夫卡的文字里,重复往往暗示着绝望。

  ??小说发展到后来,故事的主人公亨利因为厌战带着女友从意大利逃到瑞士,但女友最终死于难产,继续延展悲剧的宿命。“世界杀害最善良的人,最温和的人,最勇敢的人……”小人物在现实中是没有地位可言的,他们的精神世界永远是残缺的,他们的反抗,及圣地亚哥的博斗都带着浓重的、嘲讽的、苦涩的意味。

  ??不仅仅是《永别了,武器》,包括《第二十二条军规》,《九三年》等等一系列同宗旨的作品,的确提供给了我们一个很好的重新审视战争的机会:不要盲目的流血,不要无谓的牺牲。

  《名人传》,又称《巨人三传》,是19世纪末20世纪初法国著名批判现实主义作家罗曼•罗兰创作的传记作品,它包括《贝多芬传》、《米开朗琪罗传》、《托尔斯泰传》三部传记。
  我愿证明,凡是行为善良与高尚的人,定能因之而担当患难。
  --------贝多芬
  (一八一九年二月一日在维也纳政府语)
  竭力为善、爱、自由甚于一切,即使为了王座,也永勿欺枉真理。
  --------贝多芬
  (一七九二年手册)
  赌博欲,可能战胜的。肉欲,极难战胜的。虚荣欲,一切中最可怕的。
  科学与艺术和面包与水同样重要,甚至更重要。
  谁也无法战胜我,我要死死握住命运的咽喉。
  终于从大理石的牢狱中解放出来了。
  --------米开朗基罗
  从结构上看,《贝多芬传》、《米开朗基罗传》、《托尔斯泰传》看似各自独立、互不相干,实际上却有着内在的一致性。这种一致性既源于三位传主在精神上的相似,也源于罗兰另一重要的思想,即欧洲统一的思想和人道主义精神。 在这本书里流着一条大河,这条大河就是从贝多芬身上流出来的,并且加以伸展开的。
  《名人传》是一部独具魅力的人物传记,著者倾注他全部激情,成功地让读者在传记中跟三位大师接触,分担他们的痛苦、失败;也分享他们的诚挚、成功。
  《名人传》最突出的地方就是,多侧面地去表现传主们在身体上和精神上遭受的磨难,他们对无限苦难的不懈抗争,以及在抗争中爆发出来的生命激情。纵观三传,罗兰的英雄有着共同的命运图式和方向:经历长期的磨难,激流一般的生命力,体现生之意志的艺术创造和用痛苦换取欢乐的追求。
  《名人传》记叙了贝多芬、米开朗基罗、列夫•托尔斯泰苦难和坎坷的一生,同时也赞美了他们顽强拼搏的意志和高尚的品格。

  《钢铁是怎样炼成的》是苏联作家尼古拉•奥斯特洛夫斯基所著的一部长篇小说,于1933年写成。小说通过保尔.柯察金的成长道路,告诉人们,一个人只有在革命的艰难困苦中战胜敌人也战胜自己,只有在把自己的追求和祖国、人民的利益联系在一起的时候,才会创造出奇迹,才会成长为钢铁战士。革命者在斗争中百炼成钢,是小说的一个重要主题。1942年,苏联根据原著小说拍摄了一部同名的电影。
  精彩语录:1 数千人形成一个强大的变压器,形成一种永不枯竭的原动力。
  2 “不必召开群众大会了,这里没有哪个人需要宣传鼓舞,托卡列夫,你说话很准确,他们确实是无价之宝,钢铁就是这样炼成的!”朱赫莱说。
  3 忧伤,以及常人的各种热烈的或者温柔的普通感情,几乎人人都可以自由抒发,唯独保尔没有这个权利,它们被永不松懈的意志禁锢着。但是工作越接近尾声,这些感情越经常地冲击他,力图摆脱意志的控制。要是他屈服于这些感情中的任何一种,听任它发作,就会发生悲惨的结局。
  4 青春啊,无限美好的青春!这时,情欲还没有萌动,只有急促的心跳隐约显示它的存在;这时,手无意中触到女友的胸脯,便惊慌地颤抖着,急速移开;这时,青春的友谊约束着最后一步的行动。在这样的时刻,还有什么比心爱姑娘的手更可亲的呢?这双手紧紧地搂住你的脖子,接着就是电击一般炽热的吻。
  5 冬天过去了,春天推开了紧闭着的窗户。失血过多的保尔,经受住最后一次手术,意识到再也不能待在医院里了。十多个月,周围的病员在受煎熬,垂死者在呻吟、在决别,这种气氛,比自身的痛苦更让人受不了。
  6 保尔的心又怦怦的狂跳起来了。他那朝思暮想的愿望实现了!铁环已被砸碎,他又拿起新的武器,回到战斗的队伍里,开始了新的战斗历程。
  7 钢是在烈火里燃烧、高度冷却中炼成的,因此它很坚固。我们这一代人也是在斗争中和艰苦考验中锻炼出来的,并且学会了在生活中从不灰心丧气。
  8 任何一个傻瓜在任何时候都能结束自己!这是最怯弱也是最容易的出路。
  9 收起枪,别跟任何人说。哪怕,生活无法忍受也要坚持下去,这样的生活才有可能变得有价值。
  10 领袖的逝世没有引起党的队伍涣散。就像一棵大树一样,强有力的将根深深地扎入土壤中,即使削掉树梢,也绝不会因此而凋零。
  11人最宝贵的东西是生命。生命对人来说只有一次。因此,人的一生应当这样度过:当一个人回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧;这样,在他临死的时候,能够说,我把整个生命和全部精力都献给了人生最宝贵的事业——为人类的解放而奋斗。
  《钢铁是怎样炼成的》是一部描写新人成长历程和揭示新人优秀品质的优秀小说。通过保尔的成长道路,小说告诉人们,一个人只有在革命的艰难困苦中战胜敌人也战胜自己,只有在把自己的追求和祖国、人民的利益联系在一起的时候,才会创造出奇迹,才会成长为钢铁战士。革命者在斗争中百炼成钢,这是小说的一个重要主题。 通过揭示保尔为了党和人民的事业,敢于战胜任何艰难困苦的刚毅性格,小说形象地告诉青年一代,什么是共产主义理想,如何为共产主义理想去努力奋斗。革命战士应当有一个什么样的人生,这是小说的又一主题。保尔在凭吊女战友娃莲的墓地时所说的那段话,就是他的共产主义人生观的自白,也是对小说这一主题的阐发: “人最宝贵的东西是生命,生命对于我们只有一次。一个人的生命应当这样度过;当他回忆往事的时候,他不因虚度年华而悔恨,也不因碌碌无为而羞愧——这样,在临死的时候,他能够说:‘我整个的生命和全部精力,都已献给世界上最壮丽的事业——为人类的解放而斗争。’” 可以这样来概括小说的主题思想:人的一生应当像保尔那样去度过。

  《骆驼祥子》是老舍的代表作,以北平(今北京)一个人力车夫祥子的行踪为线索,以二十年代末期的北京市民生活为背景,以人力车夫祥子的坎坷、悲惨的生活遭遇为主要情节,深刻揭露了旧中国的黑暗,控诉了统治阶级对劳动者的剥削、压迫,表达了作者对劳动人民的深切同情,向人们展示军阀混战、黑暗统治下的北京底层贫苦市民生活于痛苦深渊中的图景。
  主要内容:旧北京人力车夫的辛酸悲剧故事
  经典语句:
  1钱会把人引进恶劣的社会中去,把高尚的理想撇开,而甘心走入地狱中去。
  2为金钱而工作的,怕遇到更多的金钱,忠诚不立在金钱上。
  3爱与不爱,穷人得在金钱上决定、"情种"只生在大富之家。
  4经验是生活的肥料,有什么样的经验便变成什么样的人,在沙漠里养不出牡丹来
  5那辆车是他的一切挣扎与困苦的总结果与报酬,像身经百战的武士的一颗徽章.

  经典段落:
  1 风吹弯了路旁的树木,撕碎了店户的布幌,揭净了墙上的报单,遮昏了太阳,唱着,叫着,吼着,回荡着;忽然直弛,像惊狂了的大精灵,扯天扯地的疾走;忽然慌乱,四面八方地乱卷,像不知怎样好而决定乱撞的恶魔;忽然横扫,乘其不备的袭击着地上的一切,扭折了树枝,吹掀了屋瓦,撞断了电线;可是,祥子在那里看着;他刚从风里出来,风并没能把他怎样了!
  2 走吧,就是一时卖不出骆驼去,似乎也没大关系了;先到城里再说,他渴望再看见城市,虽然那里没有父母亲戚,没有任何财产,可是那到底是他的家,全个的城都是他的家,一到那里他就有办法。
  3 他不愿再走,不愿再看,更不愿再陪着她;他真想一下子跳下去,头朝下,砸破了冰,沉下去,像个死鱼似的冻在冰里。
  4 可是有一天方大小姐叫他去给放进十块钱,他细细看了看那个小折子,上面有字,有小红印;通共,哼,也就有一小打手纸那么沉吧。
  5 他的身量与筋肉都发展到年岁前边去;二十来的岁,他已经很大很高,虽然肢体还没被年月铸成一定的格局,可是已经像个成人了——一个脸上身上都带出天真淘气的样子的大人。看着那高等的车夫,他计划着怎样杀进他的腰去,好更显出他的铁扇面似的胸,与直硬的背;扭头看看自己的肩,多么宽,多么威严!杀好了腰,再穿上肥腿的白裤,裤脚用鸡肠子带儿系住,露出那对“出号”的大脚!是的,他无疑的可以成为最出色的车夫;傻子似的他自己笑了。
  理想和现实总是充满了矛盾,它们往往不能调和,然而它们却又同时存在。社会是现实的,它不会为了一个人的理想而改变,也不会是完美无瑕的。对于骆驼祥子,我感到遗憾,感到惋惜,也感到无奈,但也感到敬佩,我佩服他从前的坚强,他的上进。然而他最终没能战胜自己,没能战胜社会,终究还是被打败了。
  虽然这只是一本小说,但是它折射出了人性的懦弱,毕竟能够一生都坚忍不拔的人是少数,但我们可以在追求的过程中慢慢改变。毕竟明天会怎样?我们都不得而知,但是我们可以把握今天。

SHOW GRANTS;
SHOW ERRORS;
SHOW WARNINGS;

读书笔记3篇400字以上

读《命运》有感

前阵子在书城买了本书,叫《滴水藏海》,里边有300个经典的哲理故事。现在我来品味一篇小故事,叫《命运》。
《命运》讲的是连个孩子的命运,一个被高僧占卜为“状元”,另一个为“乞丐”。二十年后,当初的“状元”成了乞丐,而“乞丐”却成了“状元”。
上帝说:“我赋予每个人的天分之占他命运的三分之一,其余的在于他如何去把握。”
看了这段话,我很受触动。把握,把握命运,多简单的字眼,可是又有多少人真正把握住了自己的命运呢?不必埋怨自己的天分,更不必埋怨自己的命运,因为命运掌握在自己的手中,你随时都可以改变它的!只要你愿意
读《永别了武器》有感
一个告别了武器的人,不是敌人的俘虏,就是爱的俘虏.我不是不善于自我保护,实在是一个放弃自我保护的人.就如同生命的数据库,已经不需要进入的密码,随时都可以打开全部程序,可以读出全部的文件.我说的俘虏,就是这个意义上的俘虏.当我把自我放到阳光下的时侯,我明白从此不能有所伪装,隐蔽的日子一想起就令人不安.当我意识到抗拒的无奈,有多少时间无可挽回,有多少记忆渐渐从内心淡出.说到底,俘虏就是一个不能抵挡伤害的人,就是要有足够的勇气放弃希望,必须承受生存的全部压力.本来,在属于个人的空间,可以沉浸于独自的幻想,可以从尘埃里开出虚拟的花朵.而一个放弃自我保护的人是连欺骗自己都不能,只有不断地净化内心世界.

《哈姆雷特》读后感
莎翁的《哈姆雷特》是一部经典的代表作.这本书在表面情节上与历史的传说并没有多大的区别,讲的还是丹麦王子为父报仇的故事,其中充满了血腥暴力和死亡.正如
剧中人霍拉旭所说: 你们可以听到奸淫残杀,反常修理的行为,冥冥中的判决,意外的屠戮,借手杀人的狡计,以及陷入自害的结局. 曲折选宕的情节,紧紧围绕着复仇
而展开.哈姆雷特从德国的威登堡匆匆赶回国内,是来参加他父亲的葬礼的,使他不能接受的是,他未赶上父亲的葬礼,却目睹了母亲与叔叔克劳迪斯的婚礼,这已使哈姆莱特疑窦在心,加之夜晚在王宫城堡的露台上与父亲的亡魂相见,亡魂哀诉,这桩暴行是哈姆雷特的叔叔所为,并要他为父报仇.至此,他开始了艰难的复仇历程,与克劳迪斯展开了你死我活的较量.最终,向克劳迪斯发出了复仇之剑.

《基督山伯爵》读后感
爱也彻底,恨也彻底.报恩也彻底,复仇也彻底.这就是在我读完《基督山复仇记》后最大的感受.中国有句俗语叫做君子报仇,十年不晚,报仇也是需要养精蓄锐的,并不是凭着一时的心绪就可轻举妄动的.而基督山伯爵,则是最具体的用自己的行动阐释了这句俗语的.在经历十四年的地牢生涯后,他的人生要义就是找寻曾经的亲人,曾经的恩人和曾经的仇人.在确认了所要寻找的人以后,他并没有如我们在武侠小说里所见的那样,于恩人抱拳云赴汤蹈火,再所不惜,于仇人一剑刺死.他选择了他自己的方式.对曾经有恩于自己的船主一家,他竭其所能,默默地支持着,以各种各样的方式,却从来不让他们知道其实自己就是为了报恩而来.如果说他的报恩令人感动,那他的复仇则是如此的淋漓尽致,在我们也有几度的叫好后不免有点心惊.
《释梦》读后感
弗洛伊德(1856--l939)是奥地利著名的精神病学家,精神分析学派的创始人.他的著作横跨半个世纪,对文学,哲学,神学,伦理学,美学,政治科学,社会学和大众心理产生了广泛而深入的影响,如果以影响的范围作为衡量伟大的标准,那么弗洛伊德无疑是最伟大的心理学家.弗洛伊德发动了人类思想史上又一次哥白尼式革命,他指出人类的无意识是无法被意识所控制,人类的潜意识中蕴含了巨大的心理内容,他以最理性的声音诉说了人类的无理性.《释梦》是弗洛伊德支柱性的学术著作.通过对梦的研究极大地拓展了人类对自身的探究的幅度,对我们的生活产生了深远的影响.
《红与黑》读后感
作家笔下展现的,首先是整个法兰西社会的一个典型的窗口——小小的维里埃尔城的政治格局.贵族出生的德瑞那市长是复辟王朝在这里的最高代表,把维护复辟政权,防止资产阶级自由党人在政治上得势视为天职.贫民收容所所长瓦尔诺原是小市民,由于投靠天主教会的秘密组织圣会而获得现在的肥差,从而把自己同复辟政权栓在一起.副本堂神父玛斯隆是教会派来的间谍,一切人的言行皆在他的监视之下,在这王座与祭坛互相支撑的时代,是个炙手可热的人.这三个人构成的三头政治,反映了复辟势力在维里埃尔城独揽大权的局面.而他们的对立面,是为数甚重,拥有巨大经济实力的咄咄逼人的资产阶级自由党人.司汤达一方面向人们描述了保王党人的横行霸道,一方面又让人们得出这样的结论:握有经济实力的资产阶级,在政治上也定将是最后的胜者.《红与黑》成书于一八三零年七月革命以前,司汤达竟像是洞悉了历史运动的这一必然趋向.

一只狗,一生情
——读《再见了,可鲁》有感
(361021)集美中学高二7班 李晓惠/发表于中学生语文(有节选)
在我很小的时候,我就喜欢上了小猫、小狗,并不仅仅因为它们的可爱与单纯。
日本有个作家叫石黑谦吾,他说,他的生命中出现过很多只狗,它们仿佛是与他宿命相
连的,他从狗身上得到了巨大的安慰和鼓励,因此,他写了《再见了,可鲁》这本书。
当我拿到这本书的时候,马上就被它的封面所吸引,上面是一只趴着的拉布拉多犬,深
黑色的背景。
那样的眼神,那样的姿态,是那样的熟悉。我情不自禁地,轻轻地把手搭在它的鼻子上,
刹时,似乎激起了心中的某个回忆。手心有种异样的感觉,仿佛真的有温温的,湿湿的呼吸,
温暖了我的手。那眼睛在跟我诉说着它的一生。
可鲁是一只纯正的拉布拉多犬,也许本应该很平常的成为一只平凡的宠物,但是,它却
是一只导盲犬。直到看了这本书,我才知道,导盲犬是一种多么了不起的动物。
它会帮助主人上下车,引着主人走安全的道路,遇到路口会停下,遇到障碍物会避开,
当红灯亮的时停—下脚步……可以想象,盲人对导盲犬会有多大的依赖,而导盲犬的这些行为
都仅仅因为它们对人的爱。
可鲁是日本的一只导盲犬,退役后由一对姓仁井的夫妇收养。那时可鲁已经是一只虚弱
的老狗了。书里面说到,可鲁已经快不行了,也许是肺部受到压迫而感到呼吸困难,它频频
示意要翻身,但是最终,它连发出示意的力气都没有了。“仁井先生不停地抚摩着它的头,
仁井太太摩挲着它的背部,用平静的口吻对它说:‘小可,谢谢你,你不需要再那么努力了,
可以了,你就慢慢休息吧,到了天国以后,要准确地报出自己的名字‘仁井可鲁’噢!”刚
说完,可鲁就停止了呼吸。看到这里,我难过的哽咽,最终还是哭了,为了这可爱生命的陨
落,为了一个我认为无比高尚的生灵。
佛斯特说过:“在这个自私的世界上,一个人惟一不自私的朋友,惟一不抛弃他的朋友,
惟一不忘恩负义的朋友,就是他的狗。”可谓“一只狗,一生情”。
狗把人类看成自己的神,即使人们不停的辜负它们,背叛它们,伤害它们,但它们却永
远是人类最忠诚的伙伴,毫无怨言的陪伴着我们的孤独。
它们忠诚勤劳,但求付出不求回报。在某些世俗的人身上,这些品德已经逐渐消失殆尽
了,狗性中深具超凡的神性,而人性中却潜藏着可耻的兽性。
这个社会越来越世俗,越来越淡漠,人与人心灵之间的隔阂越来越大,试问,此时还有
谁在保持着不变的忠诚呢?还有谁让你唤之则来,呼之则去,不计较你的粗鲁和无理的对待,
并无休止的迁就你呢?
从此,我告诉自己要更爱狗,也希望能告诉别人,请爱你们的狗。
作文点评:
文章从狗讲到人,从书讲到自己,又从自己写到他人,都起源与自己喜爱狗的个性;文
章从事写到理,从国外到国内有回到世界,都透漏出一种情、一种人文关怀。“文似看山不
喜平”,李晓惠同学的文章就有这一优点,值得同学借鉴。

《 名人传》读书笔记
《名人传》由法国著名作家罗曼·罗兰的《贝多芬传》、《米开朗琪罗传》和《托尔斯泰传》组成,它们均创作于二十世纪初期,无论在当时是在后世都产生了广泛的影响。在这三部传记中,罗曼·罗兰是紧紧把握住这三位拥有各自领域的艺术家的共同之处,着力刻画了他们为追求真善美而长期忍受苦难的心路历程。
书中写了三个世界上赫赫有名的人物。第一个是德国作曲家:贝多芬;另一个是意大利的天才雕刻家:米开朗基罗;最后一个是俄罗斯名作家:托尔斯泰。
在这本《名人传》中最令我感动的就是贝多芬的故事。贝多芬是个音乐天才,他的天分很早就被他的父亲发现了,不幸的是,贝多芬的父亲并不是一个称职的好父亲,他天天让贝多芬练琴,不顾及他的心情,一个劲儿的培训他,有时甚至把贝多芬和一把小提琴一起放进一个屋子里关起来,一关就是一整天,用暴力逼他学音乐。贝多芬的童年是十分悲惨的,他的母亲在他十六岁时就去世了,他的父亲变成了挥霍的酒鬼。这些不幸一起压到了贝多芬的头上,在他心中刻下了深深的伤痕,也因此导致他的脾气暴躁而古怪。但是贝多芬没有因此而沉沦,他把自己的全部精力,都投入到了自己所热爱的音乐事业中去了。由于他的天分和勤奋,很快地他就成名了。当他沉醉在音乐给他带来的幸福当中时,不幸的事情又发生了:他的耳朵聋了。对于一个音乐家而言,最重要的莫过于耳朵,而像贝多芬这样以音乐为生的大音乐家,却聋了耳朵,这个打击是常人所接受不了的。
贝多芬的一生是悲惨的,也是多灾多难的,但他为什么还能成功呢?为什么正常人做不到的事,他却能做到呢?这引起了我的深思。我认为,贝多芬之所以成功,是因为它有着超与凡人的毅力和奋斗精神。面对困难,他丝毫无惧。这就是他成功的秘诀。在日常生活中,我们遇到困难时,经常想到的就是请求他人的帮助,而不是直面困难,下定决心一定要解决。而贝多芬,因为脾气古怪,没有人愿意与他做朋友,所以,他面对困难,只能单枪匹马,奋力应战。虽然很孤独,却学会了别人学不到的东西:只要给自己无限的勇气,再可怕的敌人也可以打败。
罗曼·罗兰称他们为“英雄”,以感人肺腑的笔墨,写出了他们与命运抗争的崇高勇气和担荷全人类苦难的伟大情怀.早在二十世纪三四十年代,由我国著名翻译家傅雷先生译成中文,他从《名人传》中得到的启示是:“惟有真实的苦难,才能驱除浪漫底克的幻想的苦难;惟有克服苦难的壮烈的悲剧,才能帮助我们担受残酷的命运;惟有抱着‘我不入地狱谁入地狱’的精神,才能挽救一个萎靡而自私的民族……”
那么,对于今天的读者来说,《名人传》又能给予我们什么呢?在一个物质生活极度丰富而精神生活
相对贫弱的时代,在一个人们躲避崇高、告别崇高而自甘平庸的社会里,《名人传》给予我们的也许更
多是尴尬,因为这些巨人的生涯就像一面明镜,使我们的卑劣与渺小纤毫毕现。在《米开朗琪罗传》的
结尾,罗曼·罗兰说,伟大的心魂有如崇山峻岭,“我不说普通的人类都能在高峰上生存。但一年一度
他们应上去顶礼。在那里,他们可以变换一下肺中的呼吸,与脉管中的血流。在那里,他们将感到更迫近永恒。以后,他们再回到人生的广原,心中充满了日常战斗的勇气”。对于我们的时代,这实才是真言。《名人传》印证了一句中国人的古训:古今之成大事业者,非惟有超世之才,亦必有坚韧不拔之。
贝多芬的“在伤心隐忍中找栖身”,米开朗琪罗的“愈受苦愈使我喜欢”,托尔斯泰的“我哭泣,我痛
苦,我只是欲求真理”,无不表明伟大的人生就是一场无休无止的战斗。我们的时代千变万化,充满机
遇,我们渴望成功,但我们却不想奋斗。我们要的是一夜成名。浮躁和急功近利或许会使我们取得昙花
一现的成就,但绝不能让我们跻身人类中的不朽者之列。因此,读读《名人传》也许会让我们清醒一些。

.《简爱》被万众所热爱的,大约是其作者的自尊与平凡??或者说,是夏洛特的自尊与平凡。那是一个灵魂炽热而外表简单的女子。这一形象无疑是不朽的经典。可是与其夫罗切斯特一样,这个形象始终在用一种类似于自傲的口吻言论??他们对于他人的鄙薄,多多少少,曾经使我快慰,现在却令我不安。夏洛特托身于简爱,
这是我所知道的。但我所感觉到的是:她对于高层贵族的鄙薄与一种近乎敌视的态度,有些刻意了。反过来说,我从中读到了自卑的情绪。

简爱是个敏感而容易受伤的女子。开头用了太长的篇幅来叙述她幼时的情景。但是我感觉到的是,在叙述简爱这个人物时,夏洛特不曾将自己离开这个躯壳,所以她也没有用全知角度叙述。如此一来,她所描述的差不多可以认定是她的意见。那么,我在简爱中,看到的是某种情绪化的自卑,而后是近乎于传奇的爱情??惟其传奇性,昭示了某种不真实与幻想性??和最后一个几乎有点硬凑的结尾。她遇到了JOHN RIVERS。虽然前头有笔,但还不是那么自然。夏洛特对于简爱的处理,开头非常真实,中间段非常精彩,但是隐伏着不安,到了结尾,则几乎归于俗套??一个我料到的俗套。最后无疑是皆大欢喜,带一点感伤。她的铺垫和衔接很完美,几感觉不到瑕疵。但是我隐约间感到的是,这是一个人间女子编造的故事。它已经缺少了令我战栗的小说结构??更多的时候,我读到了简爱离开山庄,就没再读下去。如果我是夏洛特,或许我就会在那里结束。因为之后的一切,在我看来,比之于前,是很拙劣的。

水浒传》读书笔记(一)--醉打蒋门神
武松杀死了西门庆,就被发送了孟州充军,又在十字坡结识了张青和孙二娘。但是这些都不够精彩,唯独这集里的武松醉打蒋门神最为精彩。
本集中,武松为了个人的友谊而去帮助施恩夺回快活林和在路上每家酒官都吃上三碗酒,这两点,就知道他有着放任一己的感情。
而他在打蒋门神之前的挑逗更是精彩,先是到酒官里找茬,然后把蒋门神惹急,在狠狠的打他,这能证明武松是个粗中有细的人。
他在挑逗时还可分成几个细节,三次换酒,之后说让蒋门神的小妾陪他喝酒,酒饱不让,就和他们打了起来(这里包括蒋门神)。
他在禽了蒋门神之后,又怕他告官,在说要求蒋门神的第三件事时,却怕他告官和以后再把快活林夺回来,所以让他离开孟州,不得在此居住。由此也可以开出武松多么的细心。

《水浒传》读书笔记(二)--沂岭杀四虎
李逵见宋江父子团聚后,也想念自己的老母,便去沂水县的百丈村接自己的母亲。
去时,途上遇见李鬼扮成的假李逵威胁,李鬼战败求饶,说他尚有九十岁老母,杀他就是把他和他的老母一块杀了。李逵可怜他,便饶了他,而且还给了他一锭银子,让他走了。
我觉得是作者很反感像李鬼这样的人,所以就让李鬼和李逵再次遇上,而且让李逵把他杀死。一是作者可以出一下气,二是让那些读者也赞同他,并看完后有一种豪迈气质,似乎自己就是李逵。李逵杀李鬼是很精彩。
但是后来的李逵背着老母过沂岭时杀虎的场景最为精彩。先是去打水,然后发现老母不见了,又发现两只小虎和两条人腿,愤怒之下杀死小虎,公、母虎分别来寻仇都被杀。
只可惜杀了虎,还被人请到家里做客,后又被擒。这让人看完之后,都想替李逵打抱不平,可见作者的用心良苦。

《水浒传》读书笔记(三)--抱怨狮子楼
武松在阳谷县坐了都头,又上京办事。回来时,才知道哥哥武大郎死了,武松心疑便察得实情,去告官,谁知县馆已受贿,无奈下在狮子楼为武大郎报了仇。
其中,让人看得最热血沸腾的就是最后报仇时杀死西门庆的那一段,武大郎虽死,潘金莲和西门庆也得到了她该得到的恶果,而武松为民除害还被发配孟州。我觉得这有可能是作者在讽刺当时的朝廷昏庸无道。西门庆在这里被作者描写的简直是“臭不可闻”,几乎上谁看完都痛骂他一两句,这能体现作者是多么的会描写人物啊!

《水浒传》读书笔记(四)--卖刀汴京城
杨志盘缠用尽,只得将宝刀卖去,赚些钱投奔他乡谋生。谁知卖刀时,当地泼皮牛二百般凌辱,杨志忍无可忍便杀死牛二,再去报馆。最后被判充军大名府。
最有趣的莫过于杨志卖刀时的情景。先是问谁买刀,牛二来后,让他试刀,牛二百般阻挠和凌辱,最后被杀。这告诉了我们当时的一些地痞流氓是什么样的。而牛二被杀不仅为书中的老百姓们出气,而且另读者看完也出了口气,这也许就是作者抓住了读者的心理来写的吧。

《水浒传》读书笔记(五)--题诗浔阳楼
宋江到了江洲后,结识了神行太保等人。一天在浔阳楼喝酒,乘着一时酒兴便在墙上题了一首反诗,还留下姓名。最后被黄文炳看到打入死牢。
这件事把宋江写得让读者哭笑不得,不知该怎么说他,本集也没有什么精彩的环节。只是作者能把宋江写到让读者看了说不出宋江什么的境界,真是了不起。只能够说宋江太糊涂,提什么诗罢了。而正是有了这一集,才能更好的衬托出下一集截法场的情景来。用宋江题诗被抓着一段来衬托出后面截法场的情景。的确,用宋江题诗被抓要比用其它的好。一是让你说不出什么,二还可以把他们截法场的理由弄得更充分。所以我觉得这集好。
<读书笔记范文>一

人最宝贵的东西是生命,生命属于我们只有一次。一个人的生命是应当这样度过的:当他回首往事的时候,他不因虚度年华而悔恨,也不因碌碌无为而羞耻,——这样,在临死的时候,他就能够说:“我整个的生命和全部的精力,都已献给世界上最壮丽的事业——为人类的解放而斗争。”
——《钢铁是怎样炼成的》

<读书笔记范文>二

刚从远处看到的那个笔直的山峰,就站在峡口上,山如斧削,隽秀婀娜。(案):用“隽秀”形容“笔直的”、“如斧削”的“山”尚可,而用“婀娜”来形容就不妥了。“婀娜”是形容姿态柔软而美好,“如斧削”一样笔直的山峰怎么能给人以柔软的感觉呢?可以把“婀娜”改为“挺拔”。
——《语文短评·顾此失彼》

<读书笔记范文>三

我只想在痛惜之余,说出几点希望
首先当然是希望大家(不限于知识分子,而是一切党员、团员,一切觉悟的青年和觉悟的劳动者)都应该向他们学习,特别是那些至今对知识分子还有某种不信任感、不敢推心置腹的人们,以及那些一味争名夺利,甚至对社会主义祖国至今还三心二意,羡慕资本主义“天堂”的人们,多读读他们的事迹。……
其次,我想说,希望一切先进分子所在机构中的党组织、每个党员以至每个正直的公民能够更多地更好地关心这些先进的人们。……
第三,我也想对活着的蒋筑英、罗健夫等同志说几句话。共产党员是一不怕苦、二不怕死的,是随时随地准备着为了共产主义事业的利益,为了社会主义祖国的利益,为了十亿人民的利益而牺牲一切。我们不是那种认为一个大学生“不值得”为一个农民的生命而牺牲自己的人,那样的人,如果在别的岗位上,当然也不会冒死去抢救一个小学生,或者同一个甚至几个拿着凶器图谋犯罪的歹徒格斗。这是事情的一个方面。但是事情还有另外一方面。我想,蒋筑英和罗健夫都并不是必然要死(我不懂医,不知道罗健夫同志所患的“低分化恶性淋巴瘤”和蒋筑英同志所患的多种凶险疾病能不能在早期治愈,这里是假定能够)。如果他们还健康地活着,尽管报纸上不会这样大量地表扬他们,但是他们却能为祖国和人民作出更多更重大的贡献,这是毫无疑问的。我们经常提倡自我牺牲,但是我们不是说一个共产党员或先进分子的生命和健康就不重要。生命和健康,这是我们战胜一切敌人而建设伟大的社会主义祖国的资本,它们不是属于我们个人而是属于祖国和人民的,对于党员,就是属于党。我们反对借保护自己的生命和健康而损公利私,而贪生怕死,但是有了病,特别是有了严重的病,还是要治,并且要治好。
——胡乔木:《痛惜之余的愿望》

<读书笔记范文>四

读《命运》有感

前阵子在书城买了本书,叫《滴水藏海》,里边有300个经典的哲理故事。现在我来品味一篇小故事,叫《命运》。
《命运》讲的是连个孩子的命运,一个被高僧占卜为“状元”,另一个为“乞丐”。二十年后,当初的“状元”成了乞丐,而“乞丐”却成了“状元”。
上帝说:“我赋予每个人的天分之占他命运的三分之一,其余的在于他如何去把握。”
看了这段话,我很受触动。把握,把握命运,多简单的字眼,可是又有多少人真正把握住了自己的命运呢?不必埋怨自己的天分,更不必埋怨自己的命运,因为命运掌握在自己的手中,你随时都可以改变它的!只要你愿

《MySQL必知必会》读书笔记_3 PS:这次的信息量有点大。 聚集不同值 SELECTAVG(DISTINCTprod_price)ASavg...

SELECT prod_name FROM products;
SELECT prod_id, prod_name, prod_price FROM products;

SELECT DISTINCT vend_id FROM products;
SELECT prod_name FROM products LIMIT 5;

SELECT prod_name FROM products ORDER BY prod_name;
SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price, prod_name;

SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price DESC;
SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price DESC, prod_name;
SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;

SELECT prod_name, prod_price FROM products WHERE prod_price = 2.50;
SELECT prod_name, prod_price FROM products WHERE prod_name = 'fuses';
SELECT prod_name, prod_price FROM products WHERE prod_price < 10;
SELECT prod_name,prod_price FROM products WHERE prod_price < 10 ORDER BY prod_price DESC;
SELECT prod_name, prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
SELECT prod_name FROM products WHERE prod_price IS NULL;
SELECT cust_id FROM customers WHERE cust_email IS NULL;

SELECT prod_id,prod_price, prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;
SELECT vend_id, prod_name, prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;
SELECT prod_name,prod_price FROM products WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10;
SELECT prod_name, prod_price FROM products WHERE vend_id IN (1002, 1003) ORDER BY prod_name;
SELECT prod_name,prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003 ORDER BY prod_name;
SELECT vend_id, prod_name, prod_price FROM products WHERE vend_id NOT IN (1002,1003) ORDER BY prod_name;

为什么要使用in操作符?
1.在使用长的合法选项清单时,in操作符的预发更加清楚;
2.在使用in时,计算的次序更加容易管理(因为使用的操作符更少。简化操作符);
3.in操作符一般比or操作符清单执行更快;
4.in的最大优点时可以包含其他select语句,使得能够动态地建立where子句;

SELECT prod_id,prod_name FROM products WHERE prod_name LIKE 'jet%';
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE '%anvil%';
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil';

SELECT prod_name FROM products WHERE prod_name REGEXP '1000' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '.000' ORDER BY prod_name;

LIKE 匹配整个列,如果匹配的文本在列值中出现,Like将不会找到它。
REGEXP在列值内匹配
like匹配整个串,而regexp匹配子串

SELECT prod_name FROM products WHERE prod_name REGEXP '1000|2000' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '[123] Ton' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '[^123] Ton' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '[1-5] Ton' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '\.' ORDER BY prod_name;

* 0个或多个匹配

  • 1个或多个匹配,等于{1,}
    ? 0个或1个匹配,等于{0,1}
    {n} n个匹配
    {n,} >= n个匹配
    {n,m} n到m个匹配,m不超过255
    ^ 文本的开始
    $ 文本的结束

SELECT prod_name FROM products WHERE prod_name REGEXP '\([0-9] sticks?\)' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9]{4}' ORDER BY prod_name;
SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\.]' ORDER BY prod_name;

SELECT CONCAT(vend_name, ' (', vend_country, ')') AS INFO FROM vendors ORDER BY vend_name;
SELECT CONCAT(RTrim(vend_name), ' (', RTrim(vend_country), ')') AS vend_title FROM vendors ORDER BY vend_name;

SELECT prod_id,quantity, item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;

SELECT vend_name, Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
SELECT cust_name,cust_contact FROM customers WHERE Soundex(cust_contact) = Soundex;

SELECT cust_id,order_num FROM orders WHERE order_date = '2005-09-01';
SELECT cust_id,order_num FROM orders WHERE Date(order_date) = '2005-09-01';
SELECT cust_id,order_num FROM orders WHERE Date(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
SELECT cust_id,order_num FROM orders WHERE Date(order_date) BETWEEN '2005-09-01' AND '2005-09-30';

SELECT AVG(prod_price) AS avg_price FROM products;
SELECT AVG(prod_price) AS avg_price FROM products WHERE vend_id=1003;
SELECT COUNT AS num_cust FROM customers;
SELECT COUNT(cust_email) AS num_cust FROM customers;
SELECT MAX(prod_price) AS max_price FROM products;
SELECT MIN(prod_price) AS mix_price FROM products;
SELECT SUM AS items_ordered FROM orderitems WHERE order_num = 20005;
SELECT SUM(item_price * quantity) AS total_price FROM orderitems WHERE order_num = 20005;
SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003;
SELECT COUNT AS num_items,MIN(prod_price) AS price_min, MAX(prod_price) AS
price_max, AVG(prod_price) AS price_avg FROM products;
SELECT COUNT AS num_prods FROM products WHERE vend_id = 1003;

SELECT vend_id, COUNT AS num_prods FROM products GROUP BY vend_id;

WHERE 过滤行,HAVING 过滤分组,HAVING支持所有WHERE 操作符
where 在数据分组前进行过滤,Having 在数据分组后进行过滤

SELECT cust_id,COUNT AS orders FROM orders GROUP BY cust_id HAVING COUNT >= 2;
SELECT vend_id,COUNT AS num_prods FROM products WHERE prod_price >= 10 GROUP BY vend_id HAVING COUNT >= 2;
SELECT vend_id, COUNT FROM products GROUP BY vend_id HAVING COUNT >= 3;
SELECT order_num, SUM(quantity * item_price) AS ordertotal FROM orderitems GROUP BY order_num HAVING ordertotal >= 50 ORDER BY ordertotal;

SELECT cust_id FROM orders WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id = 'TNT2');
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 = 'TNT2'));
SELECT cust_name,cust_state, (SELECT COUNT FROM orders WHERE orders.cust_id = customers.cust_id) AS orders FROM customers ORDER BY cust_name;

SELECT vend_name,prod_name,prod_price FROM vendors, products WHERE vendors.vend_id = products.vend_id ORDER BY vend_name, prod_name;
SELECT vend_name,prod_name,prod_price FROM products INNER JOIN vendors ON vendors.vend_id = products.vend_id;
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 = 20005;

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')') AS vend_title FROM vendors ORDER BY vend_name;
SELECT p1.prod_id,p1.prod_name FROM products AS p1,products AS p2 WHERE p1.vend_id = p2.vend_id AND p2.prod_id = 'DTNTR';

SELECT c.*, o.order_num, o.order_date, oi.prod_id, oi.quantity, oi.item_price
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 = 'FB';
SELECT customers.cust_id, orders.order_num FROM orders
INNER JOIN customers ON customers.cust_id = orders.cust_id;

SELECT customers.cust_id, orders.order_num FROM customers
LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id;

SELECT customers.cust_id, orders.order_num FROM orders
LEFT OUTER JOIN customers ON customers.cust_id = orders.cust_id;

SELECT customers.cust_name,customers.cust_id, COUNT(orders.order_num) AS num_ord
FROM customers INNER JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id;

SELECT customers.cust_name, customers.cust_id,count(orders.order_num) AS num_ord
FROM customers LEFT OUTER JOIN orders ON customers.cust_id = orders.cust_id GROUP BY customers.cust_id;

SELECT vend_id, prod_id,prod_price FROM products WHERE prod_price <= 5;
SELECT vend_id, prod_id,prod_price FROM products WHERE vend_id IN (1002,1001) UNION
SELECT vend_id, prod_id,prod_price FROM products WHERE prod_price <= 5;

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5 UNION
SELECT vend_id, prod_id,prod_price FROM products WHERE vend_id IN (1001,1002) ORDER BY vend_id ;

SELECT note_text FROM productnotes WHERE Match(note_text) Against;
SELECT note_text FROM productnotes WHERE Match(note_text) Against;

SELECT note_text,Match(note_text) Against AS rank FROM productnotes;
SELECT note_text FROM productnotes WHERE Match(note_text) Against('anvils' WITH QUERY EXPANSION);
SELECT note_text FROM productnotes WHERE Match(note_text) Against('heavy' IN BOOLEAN MODE);
SELECT note_text FROM productnotes WHERE Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE);
SELECT note_text FROM productnotes WHERE Match(note_text) Against('+rabbit +bait' IN BOOLEAN MODE);

INSERT INTO Customers VALUES(NULL,'Pep E. LaPew','100 Main Street','Los Angles','CA','90046','USA',NULL,NULL);
INSERT INTO Customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country,cust_contact,cust_email) VALUES('Pep E. LaPew','100 Main Street', 'Los Angeles', 'CA','90046','USA',NULL, NULL);

CREATE TABLE custnew(
cust_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
cust_name CHAR NOT NULL,
cust_address CHAR NOT NULL,
cust_city CHAR NOT NULL,
cust_state CHAR NOT NULL,
cust_zip CHAR NOT NULL,
cust_country CHAR NOT NULL,
cust_contact CHAR,
cust_email CHAR
);

UPDATE customers SET cust_email = 'elmer@t.com' WHERE cust_id = 10005;
UPDATE customers SET cust_name = 'The Fudds',cust_email = 'elmer@fudds.com' WHERE cust_id = 10005;
UPDATE IGNORE customers SET cust_email = NULL WHERE cust_id = 10005;

DELETE FROM customers WHERE cust_id = 10006;
CREATE TABLE customers2(
cust_id INT NOT NULL AUTO_INCREMENT,
cust_name CHAR NOT NULL,
cust_address CHAR NULL,
cust_city CHAR NULL,
cust_state CHAR NULL,
cust_zip CHAR NULL,
cust_country CHAR NULL,
cust_contact CHAR NULL,
cust_email CHAR NULL,
PRIMARY KEYENGINE=InnoDB;

SELECT last_insert_id();

InnoDB 是一个可靠的事务处理引擎,不支持全文本搜索;
MEMORY 在功能上等同于MyISAM,但由于数据存在于内存中,速度快,适合临时表;
MyISAM 是一个性能极高的引擎,它支持全文本搜索,但是不支持事务处理;

ALTER TABLE vendors ADD vend_phone CHAR;
ALTER TABLE vendors DROP COLUMN vend_phone;

ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num);

RENAME TABLE custnew TO hehe2;
DROP TABLE hehe2;

CREATE VIEW productcustomers AS
SELECT cust_name,cust_contact,prod_id FROM customers,orders,orderitems
WHERE customers.cust_id = orders.cust_id AND ORDERITEMS.order_num = ORDERS.order_num;

SELECT * FROM productcustomers WHERE prod_id = 'TNT2';
SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;
CREATE VIEW vendorlocation AS
SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;

SELECT cust_id,cust_name, cust_email FROM customers WHERE cust_email IS NOT NULL;
CREATE VIEW custemaillist AS SELECT cust_id,cust_name, cust_email FROM customers WHERE cust_email IS NOT NULL;

SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;
CREATE VIEW oie2 AS SELECT order_num,prod_id,quantity,item_price,quantity*item_price AS expanded_price FROM orderitems;
SELECT * FROM oie2 WHERE order_num = 20005;

DELIMITER //
CREATE PROCEDURE productpricing()
BEGIN
SELECT Avg(prod_price) AS priceaverage FROM products;
END //
DELIMITER ;

CALL productpricing();
DROP PROCEDURE IF EXISTS productpricing;

CREATE PROCEDURE pp(OUT pl DECIMAL,OUT ph DECIMAL,OUT pa DECIMAL
-> BEGIN
-> SELECT Min(prod_price) INTO pl FROM products;
-> SELECT Max(prod_price) INTO ph FROM products;
-> SELECT Avg(prod_price) INTO pa FROM products;
-> END //

CALL pp(@pl,@ph,@pa);
SELECT @pa, @ph,@pl;

CREATE PROCEDURE ot(IN onumber INT,OUT ototal DECIMAL
-> BEGIN
-> SELECT Sum(item_price*quantity) FROM orderitems WHERE order_num = onumber INTO ototal;
-> END //
CALL ot(20005, @total);

SHOW CREATE PROCEDURE ot;

CREATE PROCEDURE po()
-> BEGIN
-> DECLARE ordernumbers CURSOR
-> FOR
-> SELECT order_num FROM orders;
-> END//
OPEN ordernumbers;
CLOSE ordernumbers;

DELIMITER //

CREATE PROCEDURE pos()
BEGIN
DECLARE done BOOLEAN DEFAULT 0;
DECLARE o INT;
DECLARE t DECIMAL;

DECLARE ordernumbers CURSOR
FOR
SELECT order_num FROM orders;

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;

CREATE TABLE IF NOT EXISTS ordertotals(order_num INT, total DECIMAL;

OPEN ordernumbers;

REPEAT
FETCH ordernumbers INTO O;
CALL ordertotal;

INSERT INTO ordertotals(order_num, total) VALUES;

UNTIL done END REPEAT;

CLOSE ordernumbers;

END;

DELIMITER ;

触发器只支持表,不支持视图及临时表;触发器不能更新或覆盖,只能先删除再重新创建;
在INSERT触发器代码内,可引用一个名为NEW的虚拟表,访问被插入的行;
在BEFORE INSERT触发器中,NEW中的值也可以被更新(允许更改被插入的值);
对于AUTO_INCREMENT列,NEW在INSERT执行之前包含0,在INSERT执行之后包含新的自动生成值
CREATE TRIGGER newproduct AFTER INSERT ON products FOR EACH ROW SELECT 'Product added';
DROP TRIGGER newproduct;

CREATE TRIGGER neworder AFTER INSERT ON orders FOR EACH ROW SELECT NEW.order_num;

事务处理是一种机制,用来管理必须成批执行的MySQL操作,以保证数据库不包含不完整的操作结果。
利用事务处理,可以保证一组操作不会中途停止,它们或者作为整体执行,或者完全不执行。
如果没有错误发生,整组语句提交给数据库表。如果发生错误,则进行回退以恢复数据库到某个已知且安全的状态。

 事务(transaction)指一组SQL语句;
 回退指撤销指定SQL语句的过程;
 提交指将未存储的SQL语句结果写入数据库表;
 保留点(savepoint)指事务处理中设置的临时占位符(placeholder),你可以对它发布回退(与回退整个事务处理不同)。

哪些语句可以回退? 事务处理用来管理INSERT、UPDATE和DELETE语句。你不能回退SELECT语句。(这样做也没有什么意义。)
你不能回退CREATE或DROP操作。事务处理块中可以使用这两条语句,但如果你执行回退,它们不会被撤销。

START TRANSACTION;
DELETE FROM orderitems WHERE order_num = 20008;
DELETE FROM orders WHERE order_num = 20008;
COMMIT;