ebook img

SQL for Microsoft Access PDF

359 Pages·2005·7.39 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview SQL for Microsoft Access

SQL for Microsoft® Access Cecelia L. Allison & Neal A. Berkowitz Wordware Publishing, Inc. LibraryofCongressCataloging-in-PublicationData Allison,Cecelia. SQLforMicrosoftaccess/byCeceliaL.AllisonandNealA.Berkowitz. p. cm. Includesindex. ISBN-13:978-1-55622-092-0 ISBN-10:1-55622-092-8(pbk.) 1. SQL(Computerprogramlanguage). 2. MicrosoftAccess. I. Berkowitz,Neal. II.Title. QA76.73.S67A442005 005.13'3--dc22 2005017158 CIP ©2005,WordwarePublishing,Inc. AllRightsReserved 2320LosRiosBoulevard Plano,Texas75074 Nopartofthisbookmaybereproducedinanyformorby anymeanswithoutpermissioninwritingfrom WordwarePublishing,Inc. PrintedintheUnitedStatesofAmerica ISBN-13:978-1-55622-092-0 ISBN-10:1-55622-092-8 10 9 8 7 6 5 4 3 2 1 0506 MicrosoftisaregisteredtrademarkofMicrosoftCorporationintheUnitedStatesand/orothercountries. Otherbrandnamesandproductnamesmentionedinthisbookaretrademarksorservicemarksoftheir respectivecompanies.Anyomissionormisuse(ofanykind)ofservicemarksortrademarksshouldnotbe regardedasintenttoinfringeonthepropertyofothers.Thepublisherrecognizesandrespectsallmarksused bycompanies,manufacturers,anddevelopersasameanstodistinguishtheirproducts. Thisbookissoldasis,withoutwarrantyofanykind,eitherexpressorimplied,respectingthecontentsof thisbookandanydisksorprogramsthatmayaccompanyit,includingbutnotlimitedtoimpliedwarrantiesfor thebook’squality,performance,merchantability,orfitnessforanyparticularpurpose.NeitherWordware Publishing,Inc.noritsdealersordistributorsshallbeliabletothepurchaseroranyotherpersonorentitywith respecttoanyliability,loss,ordamagecausedorallegedtohavebeencauseddirectlyorindirectlybythisbook. All inquiries for volume purchases of this book should be addressed to Wordware Publishing,Inc.,attheaboveaddress.Telephoneinquiriesmaybemadebycalling: (972)423-0090 Tomyparents,WillieA.ConeyandRosaD.Coney,myloving husband,JohnF.Allison,andmydaughter,KaylaDesireeAllison. Youeachplayedaspecialroleininspiringmetoreachforthe stars,stayfocused,andworkhard.Iloveyou! CeceliaL.Allison Tomywife,Deborah,whoputsupwithmyidiosyncrasiesandis alwaysthereforme.WhenwegotmarriedshepromisedthatI wouldneverbebored,andshehasdefinitelyexceededthatprom- ise.Sheistheloveofmylifeand,whileIdon’tsayitoftenenough, Ihopethatsheknowsit. NealA.Berkowitz iii This page intentionally left blank. Contents Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Chapter1 TheRelationalDatabaseStructure . . . . . . . . . . . 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 EarlyFormsofDataStorage . . . . . . . . . . . . . . . . . . . . . . . . . 3 TheRelationalDatabaseStructure . . . . . . . . . . . . . . . . . . . . . . 4 Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Keys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ThePlanningStage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 DataModeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 EntitiesandRelationships . . . . . . . . . . . . . . . . . . . . . . . 7 Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Client/ServerDatabases. . . . . . . . . . . . . . . . . . . . . . . . . . . 11 DatabaseManagementSystems. . . . . . . . . . . . . . . . . . . . . . . 11 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Chapter2 StructuredQueryLanguageandMicrosoftAccess . . . 15 StructuredQueryLanguage. . . . . . . . . . . . . . . . . . . . . . . . . 16 SQLVersions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 SQLComponents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 SQLSyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ThePowerofSQLinMicrosoftAccess . . . . . . . . . . . . . . . . . . . 18 TheQueryWizard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 TheQueryDesignToolandSQLView. . . . . . . . . . . . . . . . . . 19 OpeningMicrosoftAccessandSwitchingtoSQLView. . . . . . . . . . . 20 OpeningMicrosoftAccess . . . . . . . . . . . . . . . . . . . . . . . . 20 SwitchingtoSQLView . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Chapter3 CreatingTablesandInsertingRecords. . . . . . . . . 25 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 TheDataDefinitionLanguageComponent . . . . . . . . . . . . . . . . . 26 CREATETABLESyntax. . . . . . . . . . . . . . . . . . . . . . . . . 27 DataTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Example1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 NULL/NOTNULLConstraint . . . . . . . . . . . . . . . . . . . . . . 32 PRIMARYKEYConstraint. . . . . . . . . . . . . . . . . . . . . . . . 32 Example2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 v Contents (cid:1) FOREIGNKEYConstraint. . . . . . . . . . . . . . . . . . . . . . . . 34 UNIQUEConstraint . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 AddingConstraintstoExistingTables . . . . . . . . . . . . . . . . . . 36 Example3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Example4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ConstraintSyntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 InsertingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Example5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 InsertingDatawithoutSpecifyingColumnNames . . . . . . . . . . . 40 Example6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 InsertingNULLValues . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Example7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 CopyingRecordsfromOneTabletoanExistingTable . . . . . . . . . 42 Example8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 CopyingRecordsfromOneTabletoaNewTableSimultaneously . . . 43 Example9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 UpdatingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Example10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 DeletingRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Example11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Chapter4 RetrievingRecords . . . . . . . . . . . . . . . . . . . 49 TheSELECTStatement. . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Example1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Example2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 TheORDERBYClause . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 SortinginDescendingOrder. . . . . . . . . . . . . . . . . . . . . . . 56 Example3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 SortinginAscendingOrder. . . . . . . . . . . . . . . . . . . . . . . . 57 Example4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 SortingMultipleColumns . . . . . . . . . . . . . . . . . . . . . . . . 58 Example5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 SortingUsingNumbers. . . . . . . . . . . . . . . . . . . . . . . . . . 59 Example6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Example7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 HandlingDuplicateValues. . . . . . . . . . . . . . . . . . . . . . . . . . 61 TheDISTINCTKeyword. . . . . . . . . . . . . . . . . . . . . . . . . 61 Example8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 TheDISTINCTROWKeyword. . . . . . . . . . . . . . . . . . . . . . 63 TheTOPKeyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Example9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Example10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 TheTOPPERCENTKeywords . . . . . . . . . . . . . . . . . . . . . 66 vi (cid:2) Contents Example11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Example12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 CreatinganAlias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Example13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Example14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Chapter5 FilteringRetrievedRecords. . . . . . . . . . . . . . . 73 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 TheWHEREClause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 ComparisonOperators. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 LogicalOperators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 OperatorPrecedence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 TheAND,OR,=,and<Operators . . . . . . . . . . . . . . . . . . . 77 Example1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 TheLIKEOperator. . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Example2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Example3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Example4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Example5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Example6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Example7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Example8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Example9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 TheBETWEENOperator . . . . . . . . . . . . . . . . . . . . . . . . 84 Example10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 TheINandNOTOperators. . . . . . . . . . . . . . . . . . . . . . . . 86 Example11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 TheISNULLandISNOTNULLOperators. . . . . . . . . . . . . . . 87 Example12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Chapter6 CreatingCalculatedFields . . . . . . . . . . . . . . . 91 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 OperatorsandFunctions. . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ArithmeticOperators . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Example1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 AggregateFunctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 UsingtheAVG(),FIRST(),LAST(),SUM(),MAX(), andMIN()Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Example2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 UsingtheCOUNT()Function . . . . . . . . . . . . . . . . . . . . . . 99 Example3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 StringFunctionsandOperations. . . . . . . . . . . . . . . . . . . . . . 100 vii Contents (cid:1) Useofthe+and& . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 UsingtheLEFT(),UCASE(),LEN(),andTRIM()Functions . . . . 103 Example4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 UsingtheMID()andINSTR()Functions . . . . . . . . . . . . . . . 104 Example5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 DateandTimeFunctions. . . . . . . . . . . . . . . . . . . . . . . . . . 105 InsertingDatesintoaTable. . . . . . . . . . . . . . . . . . . . . . . 107 Example6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 UsingtheFORMAT()Function. . . . . . . . . . . . . . . . . . . . . 108 Example7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 UsingtheDATE(),TIME(),MONTH(),DAY(), andYEAR()Functions . . . . . . . . . . . . . . . . . . . . . . . . . 110 Example8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 MiscellaneousFunctions . . . . . . . . . . . . . . . . . . . . . . . . 111 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Chapter7 GroupingData . . . . . . . . . . . . . . . . . . . . 115 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 TheGROUPBYClause . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Example1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 UsingtheGROUPBYClausewiththeORDERBYClause . . . . . . 120 Example2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 TheHAVINGClause . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Example3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 UsingtheHAVINGClausewiththeWHEREClause . . . . . . . . . 123 Example4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Chapter8 CreatingTableJoinsandUnions . . . . . . . . . . . 127 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 TableJoins—AnOverview . . . . . . . . . . . . . . . . . . . . . . . . 128 Qualification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 InnerJoin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Example1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 UsingtheDISTINCTROWKeyword . . . . . . . . . . . . . . . . . . 133 Example2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 SelfJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Example3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 NestedJoin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Example4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 OuterJoins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 RightOuterJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Example5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 LeftOuterJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Example6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 viii (cid:2) Contents UNIONandUNIONALLKeywords. . . . . . . . . . . . . . . . . . . . 145 UNION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Example7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 UNIONALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Example8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Chapter9 CreatingSubqueries . . . . . . . . . . . . . . . . . 153 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Subqueries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 CorrelatedandNon-CorrelatedSubqueries . . . . . . . . . . . . . . 154 TheINSubquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Example1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 TheEXISTSSubquery . . . . . . . . . . . . . . . . . . . . . . . . . 158 Example2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 TheANYandSOMESubqueries . . . . . . . . . . . . . . . . . . . . 161 Example3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 TheALLSubquery . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Example4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 NestedSubqueries. . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Example5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Chapter10 CreatingViews . . . . . . . . . . . . . . . . . . . 169 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 CreatingaView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Example1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 CreatingaViewUsingtheCREATEVIEWKeywordsinSQL-92 . . . . 172 SettingtheSQLVersionforaCurrentDatabase. . . . . . . . . . . . 172 SettingtheSQLVersionastheDefaultSettingforNewDatabases. . 173 FilteringaRecordThroughaView. . . . . . . . . . . . . . . . . . . . . 174 Example2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Example3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 UpdatingaRecordThroughaView . . . . . . . . . . . . . . . . . . . . 175 Example4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 DeletingaView. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Example5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Chapter11 TableManagementandIndexes . . . . . . . . . . 179 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 AddingaColumntoanExistingTable . . . . . . . . . . . . . . . . . . . 180 Example1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 ChangingaColumn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Example2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 ix

Description:
SQL for Microsoft Access unlocks the power of Structured Query Language (SQL) in Microsoft Access. It guides the reader through step-by-step examples of creating a database in Microsoft Access using SQL script to create tables, add records to tables, and retrieve and manage records using simple to a
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.