语法讲解2
- 格式:doc
- 大小:16.50 KB
- 文档页数:2
SELECTBasic formSELECT select clause [INTO clause] FROM from clause [WHERE cond1] [GROUP BY fields1] [HAVING cond2] [ORDER BY fields2].EffectReads a selection and/or a summary of data from one or more database tables and/or views (see relational database). SELECT is an OPEN SQL statement.Each SELECT statement consists of a series of clauses, each with a differen task:The SELECT clause select clause describes∙Whether the result of the selection should be a single record or a table,∙Which columns should be contained in the result,∙Whether identical lines may occur in the result.The INTO clause INTO clause determines the target area into which the selected data is read. If the target area is an internal table, the INTO clause specifies:∙Whether you want to overwrite the contents of the internal table or∙Append the results to the internal table, and∙Whether you want to place the data in the internal table in a single step, or in a series of packages.The INTO clause can also occur after the FROM clause. You may omit it if∙The SELECT clause contains a "*",∙The FROM clause does not contain a JOIN, and∙You have declared a table work area dbtab in your program using TABLES.The data, if it exists in the database, is then made available using the table work area dbtab. The statement is then processed further like the SELECT * INTO dbtab FROM dbtab statement, which has the same effect.If the result of the selection is a table, the data is normally read line by line (for further information, see INTO clause) in a processing loop, which is introduced with SELECT and concludes with ENDSELECT. The loop is processed once for each line that is read. If you want the result of the selection to be a single record, there is no concluding ENDSELECT statement.The FROM clause FROM clause specifies the source of the data (database tables or views), from which you want to select the data. It also specifies the∙Client handling,∙Behavior for buffered tables, and∙The maximum number of lines that you want to read.The WHERE clause cond1 specifies the conditions that the result of the selection must satisfy. By default, only data from the current client is selected (without you having to specify the client field specifically in the WHERE clause). If you want to select data from several clients, you must use the ... CLIENT SPECIFIED addition in the FROM clause.The GROUP BY clause fields1 combines groups of lines into single lines of the result table.A group is a set of records with the same value of each database field listed in the GROUP BY clause.The HAVING clause cond2 specifies conditions for the combined lines of the result table.The ORDER BY clause fields2 specifies how the records in the result table should be arranged.The system field SY-DBCNT contains the number of lines read so far ecah time the SELECT statement is executed. After ENDSELECT, SY-DBCNT contains the total number of records read.The return code is set as follows:SY-SUBRC = 0:The result table contains at least one record.SY-SUBRC = 4:The result table is empty.SY-SUBRC = 8:Applies only to SELECT SINGLE FOR UPDATE: You did not specify all of the primary key fields in the WHERE condition. The result table is empty.NoteThe SELECT COUNT( * ) FROM ... statement returns a result table containing a single line with the result 0 if there are no records in the database table that meet the selection criteria. In an exception to the above rule, SY-SUBRC is set to 4 in this case, and SY-DBCNTto zero.ExampleDisplaying the passenger list for Lufthansa flight 0400 on 2/28/1995:DATA: WA_SBOOK TYPE SBOOK.SELECT * FROM SBOOK INTO WA_SBOOKWHERECARRID = 'LH ' ANDCONNID = '0400' ANDFLDATE = '19950228'ORDER BY PRIMARY KEY.WRITE: / WA_SBOOK-BOOKID, WA_SBOOK-CUSTOMID,WA_SBOOK-CUSTTYPE, WA_SBOOK-SMOKER,WA_SBOOK-LUGGWEIGHT, WA_SBOOK-WUNIT,WA_SBOOK-INVOICE.ENDSELECT.NotePerformance:Storing database tables in a local buffer (see SAP buffering) can lead to considerable time savings in a client/server environment, since the access time across the network is considerably higher than that required to access a locally-buffered table.Notes1. A SELECT statement on a table for which SAP buffering has been declared in theABAP Dictionary usually reads data from the SAP buffer without accessing thedatabase. This does not apply when you use:- SELECT SINGLE FOR UPDATE or- SELECT DISTINCT in the SELECT clause,- BYPASSING BUFFER in the FROM clause,- ORDER BY f1 ... fn in the ORDER BY clause,- Aggregate functions in the SELECT clause,- When you use IS [NOT] NULL in the WHERE condition,or when the table has generic buffering and the appropriate section of the key is not specified in the WHERE condition.2. The SELECT statement does not perform its own authorization checks. You shouldwrite your own at program level.3. Proper synchronization of simultaneous access by several users to the same set ofdata cannot be assured by the database lock mechanism. In many cases, you will need to use the SAP locking mechanism.4. Changes to data in the database are not made permanent until a database commit(see LUW) occurs. Up to this point, you can undo any changes using a databserollback (see Programming Transactions). At the lowest isolation level (see lock mechanism ), the "Uncommitted Read", it can sometimes be the case that dataselected by a SELECT statement was never written to the database. While a program is selecting data, a second program could be adding data to, changing data in, or deleting data from the database at the same time. If the second program thenexecutes a rollback, the first program has selected a set of data that may onlyrepresent a temporary state from the database. If this kind of "phantom data" isunacceptable in the context of your application, you must either use the SAP locking mechanism or change the isolation level of the database system to at least"Committed Read" (see locking mechanism).5. In a SELECT - ENDSELECT loop, the CONTINUE statement terminates the currentloop pass and starts the next.6. If a SELECT - ENDSELECT loop contains a statement that triggers a databasecommit, the cursor belonging to the loop is lost and a program termination andruntime error occur. Remote Function Calls and changes of screen always lead to adatabase commit. The following statements are consequently not allowed wihtin aSELECT-ENDSELECT loop: CALL FUNCTION ... STARTING NEW TASK, CALLFUNCTION ... DESTINATION, CALL FUNCTION ... IN BACKGROUND TASK,CALL SCREEN, CALL DIALOG, CALL TRANSACTION, and MESSAGE.7. On some database systems (for example DB2/390)locking conflicts can be caused even by read access. You can prevent this problemfrom occurring using regular database commits.SELECT ClauseVariants:1. SELECT [SINGLE [FOR UPDATE] | DISTINCT] *2. SELECT [SINGLE [FOR UPDATE] | DISTINCT] s1 ... sn3. SELECT [SINGLE [FOR UPDATE] | DISTINCT] (itab)EffectThe result of a SELECT statement is itself a table. The SELECT clause, along with the database tables and/or views in the FROM clause, specifies the sequence, name, database type, and length of the columns of the result table.You can also use the optional additions SINGLE or DISTINCT to indicate that only certain lines in the result set should be visible to the program:SINGLEThe result of the selection should be a single entry. If it is not possible to identify a unique entry, the system uses the first line of the selection. If you use the FOR UPDATE addition, the selected entry is protected against parallel updates from other transactions until the next database commit (see LUW and database lock mechanism). If the database system identifies a deadlock, a runtime error occurs. DISTINCTDuplicate entries in the result set are automatically deleted.NoteTo ensure that an entry can be uniquely identified, you can specify all of the fields in the primary key using AND expressions in the WHERE condition.NotePerformance:1. The additions SINGLE FOR UPDATE and DISTINCT bypass the SAP buffering.2. The addition DISTINCT forces a sort on the database server. You should thereforeonly use it if you are really expecting duplicates in the result set.Variant 1SELECT [SINGLE [FOR UPDATE] | DISTINCT] *EffectThe columns of the result set will have exactly the same sequence, names, database type, and length as the fields of the database table or view specified in the FROM clause.ExamplesExample to display all flights from Frankfurt to New York:DATA WA_SPFLI TYPE SPFLI.SELECT * FROM SPFLI INTO WA_SPFLIWHERECITYFROM = 'FRANKFURT' ANDCITYTO = 'NEW YORK'.WRITE: / WA_SPFLI-CARRID, WA_SPFLI-CONNID.ENDSELECT.Example to display the free seats on Lufthansa flight 0400 on 02.28.1995:DATA WA_SFLIGHT TYPE SFLIGHT.DATA SEATSFREE TYPE I.SELECT SINGLE *FROM SFLIGHT INTO WA_SFLIGHTWHERECARRID = 'LH ' ANDCONNID = '0400' ANDFLDATE = '19950228'.SEATSFREE = WA_SFLIGHT-SEATSMAX - WA_SFLIGHT-SEATSOCC.WRITE: / WA_SFLIGHT-CARRID, WA_SFLIGHT-CONNID,WA_SFLIGHT-FLDATE, SEATSFREE.NoteIf you specify more than one table in the FROM clause and the INTO clause contains an internal table or work area instead of a field list, the fields are placed into the target area from left to right in the order in which they occur in the tables in the FROM clause. Gaps may occur between the table work areas for the sake of alignment. For this reason, you should define the target work area by referring to the types of database tables instead of simply listing the fields. For an example, refer to the documentation of the FROM clause.Variant 2SELECT [SINGLE [FOR UPDATE] | DISTINCT] s1 ... snEffectThe columns of the result table will have the same format as the column references s1 ... sn.If si stands for a field f, MAX( f ), MIN( f ), or SUM( f ), the corresponding column in the result set will have the same ABAP Dictionary format as f. For COUNT( f ) orCOUNT( * ) the column has the type INT4. For AVG( f ) it has the type FLTP.If you use aggregate functions with one or more database fields in the SELECT clause, you must include all of the database fields that are not used in the aggregate function in the GROUP BY clause. The result of the selection in this case is a table.If the SELECT clause only contains aggregate functions, the result of the selection will be a single entry. In this case, SELECT does not have a corresponding ENDSELECT statement.Notes1. You can only use this variant for pool and cluster tables if the SELECT clause doesnot contain any aggregate functions.2. As a rule, aggregate functions used together with the FOR ALL ENTRIES addition donot return the desired values. The result is only correct if the fields in the WHEREcondition that are linked with AND and tested for equality with the aggregated fieldscan identify the table line uniquely.3. If you use a database field with type LCHAR or LRAW in the SELECT clause, you mustspecify the corresponding length field immediately before it in the SELECT clause. NotesPerformance:1. When you use aggregate functions, the system bypasses the SAP buffer.2. Since not all database systems can store the number of lines in a table in theircatalog, and therefore retrieving them is time-consuming, the COUNT( * ) functionis not suitable for testing whether a table contains any entries at all. Instead, youshould use SELECT SINGLE f ... for any table field f.3. If you only want to select certain columns of a database table, use a field list in theSELECT clause or a view.ExamplesExample to display all destinations served by Lufthansa from Frankfurt:TABLES SPFLI.DATA TARGET LIKE SPFLI-CITYTO.SELECT DISTINCT CITYTOINTO TARGET FROM SPFLIWHERECARRID = 'LH ' ANDCITYFROM = 'FRANKFURT'.WRITE: / TARGET.ENDSELECT.Example to display the number of airlines that fly to New York:TABLES SPFLI.DATA COUNT TYPE I.SELECT COUNT( DISTINCT CARRID )INTO COUNTFROM SPFLIWHERECITYTO = 'NEW YORK'.WRITE: / COUNT.Example to find the number of passengers, the total luggage weight, and the average weight of the luggage for all Lufthansa flights on 02.28.1995:TABLES SBOOK.DATA: COUNT TYPE I, SUM TYPE P DECIMALS 2, AVG TYPE F.DATA: CONNID LIKE SBOOK-CONNID.SELECT CONNID COUNT( * ) SUM( LUGGWEIGHT ) AVG( LUGGWEIGHT ) INTO (CONNID, COUNT, SUM, AVG)FROM SBOOKWHERECARRID = 'LH ' ANDFLDATE = '19950228'GROUP BY CONNID.WRITE: / CONNID, COUNT, SUM, AVG.ENDSELECT.Variant 3SELECT [SINGLE [FOR UPDATE] | DISTINCT] (itab)EffectWorks like SELECT [SINGLE [FOR UPDATE] | DISTINCT] s1 ... sn, if the internal table itab contains the list s1 ... sn as ABAP source code, and works like SELECT [SINGLE [FOR UPDATE] | DISTINCT] *, if itab is empty. The internal table itab may only contain one field, which must have type C and not be longer than 72 characters. Youmust specify itab in parentheses. Do not include spaces between the parentheses and the table name.NoteThe same restrictions apply to this variant as to SELECT [SINGLE [FOR UPDATE] | DISTINCT] s1 ... sn.ExampleExample to display all Lufthansa routes:DATA WA_SPFLI TYPE SPFLI,WA_FTAB(72) TYPE C, FTAB LIKE TABLE OF WA_FTAB.CLEAR FTAB. FTAB = 'CITYFROM'. APPEND WA_FTAB TO FTAB. FTAB = 'CITYTO'. APPEND WA_FTAB TO FTAB. SELECT DISTINCT (FTAB) INTO CORRESPONDING FIELDS OF WA_SPFLIFROM SPFLIWHERECARRID = 'LH'. WRITE: / WA_SPFLI-CITYFROM, WA_SPFLI-CITYTO. ENDSELECT.。
韩国语语法系统讲解:(2)收音的连音化
语音变化是指语流中的语音变化现象,在各种语言中都普遍存在的语音变化。
韩国语中的语音变化现象也有很多。
今天我们就接着上一讲具体来看一看韩国语中的连音化现象。
一、单收音的连音化
带单收音的音节与以元音为首的助词,词尾或词缀相连时,其收音后移,作为后一个音节的辅音来发音。
例如:
돈(钱):돈이—도니봄(春):봄이다—보미다
옅다(浅):옅어서—여터서낯(脸):낯이—나치
깎다(折):깎아—까까있다(有):있어—이써
连音化也可以出现在一个词的内部。
例如:
국어(国语)—구거법원(法院)—버붠
직위(地位)—지귀
二、双收音的连音化
双收音则根据双收音的发音规则连音。
双收音与以原音为头音的助词、词尾或词缀相连时,右边的辅音移到后边元音的初生位置上。
例如:
읽다(读):읽어라—일거라앉다(坐):앉아서—안자서
젊다(年轻):젊어—절머훑다(捋):훑어—훌터
三、其他
带收音的音节(ㅎ除外),后边接以”ㅏ,ㅓ,ㅗ,ㅜ,ㅟ”为头音的实质词素时,要先把收音转换成代表音之后,再将其移到后面实质词素的声母位置上。
但是这些词必须是固有词。
例如:
밭아래(地下面)—받아래—바다래옷뒤(衣服后面)—옫위—오뒤
맛없다(不好吃)—맏업다—마덥따
注:
粗体为实际发音。
词素是语言中具有意义的最小单位。
实质词素是表示具体对象或状态、动作的词素。
这部分会在后面具体讲解。
七年级英语上册Unit 2语法讲解一、语法* there be句型“There is/ are + 某物/某时”结构表示“某地或某时存在某物或某人”。
这种结构中的there 没有实际意义,There is 后面加可数名词单数或不可数名词, There are后面加可数名词复数。
注意:1.切记there be句型有临近原则,即be动词同离其近的主语保持一致。
2.因句中有be动词,故变否定句式在is/are后加not;变一般疑问句时将is/are提前3.Is/Are there 开头的一般疑问句其肯定回答为Yes, there is/are.否定回答为No, there isn’t/aren’t.4.就数量提问时常用“how many + 可数名词复数”或“How much + 不可数名词”开头5.there be句型过去式形式只需将is变为was;are变为were即可。
Eg: There is a pen on the desk.“桌子上有一支钢笔。
”There is some water in the bottle.“瓶子里面有一些水。
”There are some books in the bag.“包里面有一些书。
”There is a book and some pencils on the desk.“桌子上有一本书和一些铅笔。
”There are some pencils and a book on the desk.“桌子上有一些铅笔和一本书。
”There isn’t a book and any pencils on the desk.“桌子上没有一本书和一些铅笔。
”Is there a book and any pencils on the desk?“桌子上有一本书和一些铅笔吗?”Yes, there is./ No, there isn’t.How many students are there in your class?你们班有多少学生?How much water is there in the pool?池塘里有多少水?二、音标/ i: / 发音要领:嘴唇微微张开,舌尖抵下齿,舌前部尽力向上抬起,嘴角向两边张开,流露出微笑的表情,与字母e发音相同。
语法精讲② 简单句、并列句和复合句1.简单句:只含有一个主谓结构。
简单句有五种基本句型。
(1)主语+不及物动词(主谓)❶He swims.他游泳。
❷The girl is drinking.女孩在喝水。
(2)主语+及物动词+宾语(主谓宾)❸Children often sing this song.孩子们经常唱这首歌。
(3)主语+连系动词+表语(主系表)❹The bike is new.这辆自行车是新的。
❺The map is on the wall.地图在墙上。
(4)主语+及物动词+间接宾语(人)+直接宾语(物)(主谓双宾)❻She showed her friends all her pictures.她向她的朋友们展示了她所有的照片。
(5)主语+及物动词+宾语+宾语补足语(主谓复宾)❼We keep our classroom clean.我们保持我们的教室干净。
[特别注意] 简单句只有一个主谓结构。
简单句可以有两个或更多的主语,也可以有两个或更多的谓语,但是句子中的主谓结构只有一个。
Computers mean a lot to human beings and are paid more and more attention to by people.计算机对人类意义重大,并越来越受到人们的关注。
(两个谓语,一个主语)2.并列句:由并列连词把两个或两个以上的简单句连在一起的句子,叫并列句。
常见的连词(1)表示并列关系:and,not only...but also...,neither...nor...等。
(2)表示转折或对比关系:but,yet, while, whereas(然而,反之)等。
(3)表示因果关系:for,so等。
(4)表示选择关系:or,either...or...等。
❶I'm going to write good jokes and become a good comedian.我要创作出好的笑话并且成为一个优秀的喜剧演员。
Being用法和判别Being用法和判别一、现在分词being用法Ⅰ.being用于现在进行时被动态和过去进行时被动态中。
being之前有助动词be的相应变化形式,后有过去分词。
1.In the sun, matter is being changed to energy.物质在太阳中不断地变为能量。
2.When we came into the factory, our water pump was being repaired by an old worker.当我们进入工厂时,我们的水泵正由一个老工人在修理。
Ⅱ.being用于作定语中,一般和过去分词连用,放在被说明名词后,表示进行时被动意义:1.The instrument being made by the workers is a newtype of measuring instrument.工人们正在制造的这台仪器是一台新型的测量仪。
2.The house being built will be our new laboratory.正在盖的那所房子将是我们的新实验室。
3.Be sure that you have cleaned the surfaces of boththe object being measured and the level.要确信,你已经把所测物体的表面和水平仪的表面清理好了。
Ⅲ. being用于状语,一般有逗号,翻译时常加表示状语的词汇,如“由于……”、“……时”等:1.Being very small, atoms cannot be seen by ordinary methods.由于原子太小,用普通方法就不能见到原子。
2.(Being)Cooled in the air, this kind of steel becomes harder and harder.由于太冷,这种钢在冷空气中会变得越来越硬。
高中英语语法讲解二、代词人称代词、物主代词、反身代词人称单复数主格宾格形容词性物主代词名词性物主代词反身代词第一人称单数I me my mine myself 复数we us our ours ourselves第二人称单数you you your yours yourself 复数you you your yours yourselves第三人称单数he him his his himselfshe her her hers herselfit it its无itself复数they them their theirs themselves指示代词this /these 这个,这些You should always keepthis(these) in mind.that/ those 那个,那些That is what I want to tell younow.such指“这样的”人或事,在句中作主语若遇到no,one,two,another,several,some, many, all等,放其后;若遇a/an,放其前Such was Einstein, a simple man of great achievement.Tom is such a nice person.All such problems have been solved already.There is no such car here.so在believe,think, expect,suppose, imagine, guess等后,代前文提到的观点,肯定否定句都可以用;用于肯定的hope以及I’m afraid后,代替前文提出的观点;在肯定句中,表上下文相同的情况。
--Will Tom come this evening?--I think so./ I don’t think so./I think not.--Is it going to rain tomorrow?--I hope so/ I hope not(不用I don’t hope so)He likes English, and so do I.不定代词单词词性数量意义和用法all pron.指三个或三个以上的人或物(1)作主语,指所有人,谓用复数,指所有事,谓用单数。
必修三unit2语法讲解情态动词用法(二)一、ought to的用法1.ought to“应该”。
与should相比较ought to语气重,偏重“责任、义务、道德、法律”等方面,意为“应该”。
①We ought to stop polluting nature. 我们应该停止污染大自然。
2.ought to 表示较大的可能性。
②Mary ought to be here soon. 玛丽应该很快就来了。
[点津] 用ought to表示推断时,语气较肯定,通常指的是一种合乎逻辑的可能性(与should表推断时相似),有时可译为“很可能;准是”(语气比must要弱)。
3.ought to的否定形式为ought not to 或oughtn't to, 其一般疑问句形式是将ought置于主语前。
③We ought not to start so late. 我们不该这么晚动身。
4.在反意疑问句中,常省掉to用oughtn't或shouldn't。
④He ought to take back what he has said, oughtn't/shouldn't he?他应该收回他说的话,是吗?1-1.写出下面句中黑体部分的意义①To keep fit, we ought to learn more about our body._______②You ought not to do such a thing._______③It ought to be a close game._________1-2.用ought完成句子④你不该责备他。
You ____________(scold )him.⑤我明天该动身吗?—______________(_leave )tomorrow?是的,你应该。
—Yes, you_ought_to.⑥我们现在应该走,是吗?We ought to go now, ____________?二、have to, don't have to与mustn't的用法1.have to(口语中常用have got to)表示客观需要做的事情,意为“必须;不得不”。
高考英语复习语法知识专题讲解专题二冠词一、不定冠词微专题易错点1.不定冠词 a/an 表示人或事物的某一类(泛指)①用于辅音音素发音开头的词前, 如:a book;a②用于元音音素发音开头的词前,如 an ant , an interesting storyan注意:以元音字母开头,发音却以辅音音素开头的单词,如: a European, a university, a usual job, 以辅音字母开头,发音却以元音音素开头的单词,如: an hour,an honest boy, an unusual job 注意字母发音,a “u” ;an “a/e/i/o/f/h/l/m/n/r/s/x”2.相当于one Give me a glass of water. 给我一杯水。
3.相当于 any, every, per A square has four sides. 正方形有4条边。
4. a/an+物质名词/专有名词/抽象名词:"a/an+物质名词”表示“一阵一场,一杯”等a heavy rain 一场大雨 ; a coffee 译本:一杯咖啡"a/an+专有名词”表示"某一个不认识的人”a Mr. WangA Mr.Smith has called to see you. 有位史密斯先生打电话要见你。
"a/an+抽象名词”表示"一个具体的人或物”a success 一个成功的人/一件成功的事;a failure一个失败的人/一件失败的事5.表示一种,一场或某次动作的一次,一番 It was a just war. 那是一场正义之战。
6.表示引起某种情绪的事 It's a pleasure to talk with you. 很高兴与你交谈。
7.表示性质特征等“相同” They are of a height.他们一样高。
8.a/an+序数词/形容词最高级+单数可数名词:"a/an+序数词” 表示“又一,再一” give me a second chance"a/an+形容词最高级+单数可数名词”表示"非常的.." a most interesting book9.含有不定冠词的固定搭配as a result/consequence结果 keep an eye on照看take a rest/break休息一下 in a word简言之in a hurry匆忙地 in a way/sense在某种意义上make a living谋生 as a matter of fact 事实上pay a visit to 参观;拜访 go on a diet节食at a loss不知所措 give sb. a hand / do sb. a favor 帮助某人have a cold感冒 all of a sudden 突然have a fever/temperature 发烧 give sb.a lift 让某人搭便车have a gift for... 在……方面有天赋 have a word with 与……谈话a waste of... 浪费…… once in a while 偶尔二、定冠词the微专题易错点1.特指某人某事①这些人或事往往是第二次提到的John bought a TV set and a radio, but he returned the radio the next day.约翰买了一台电视和一个收音机,但次日他就把收音机退了回去。
Component 7: Verb Usage, Articles, and Prepositions
Part A):
Eli believed that camping was a crucial form of education, but Audrey lacked the outdoor experience and the right camping gear. Before leaving, they gathered the necessities: food, water bottles, the comic books Sarah had given Eli, and sleeping bags to keep them warm. Audrey insisted they pack maps for when they inevitably lost path, but Eli had bought a new compass with a greater precision from the adventure store by his house. Of course, new gadgets often end in disappointment, and Eli had to throw the compass away and rely on the maps.
Part B):
1)Shakira and her sister are/is always fighting about everything.
2)Her sister, Rihanna, acts like Shakira’s closet full of dresses and purses is/are always open to her.
3)Whenever Shakira borrows Rihanna’s car, either the paint or dashboard is/are always scratched.
4)The family tries/try to intervene.
5)However, every fight ends/end in one of them storming out.
Part C):
I enjoyed a trip with my best friend, Amy, on September 18th last year. I remembered the date clearly because it was her birthday. We met at 9 a.m. that morning at the airport. And the plane was taking off at 11:15 a.m. We
went to New York for one day. We started from the Central Park which was a famous tourist attraction. We also visited the Times Square, the place in which a lot of movies and TV programs were shot here. After taking lots of pictures together, we went shopping from stores to stores. I bought a detective story for Amy as her birthday gift and she really liked it. After buying some clothes and books, we came to the Chinatown for dinner. Although tastes of some foods there were really different from what we ate in China, they were delicious, too. At about 10 p.m., we went back to the hotel. Lying on the bed, we chatted about the goods we bought, our friends, our further plans and finally we both fell into sleep unconsciously. When we woke up the next morning, it was already about 10 a.m.. But our back flight was 10:45. We hurried to pack up our bags and went to the airport by taxi. Fortunately, we caught the flight at last.
(end of Component 7)。