252:. An index may be declared as UNIQUE, which creates an implicit constraint on the underlying table. Database systems usually implicitly create an index on a set of columns declared PRIMARY KEY, and some are capable of using an already-existing index to police this constraint. Many database systems require that both referencing and referenced sets of columns in a FOREIGN KEY constraint are indexed, thus improving performance of inserts, updates and deletes to the tables participating in the constraint.
693:
1604:
313:(not to be confused with clustered index described previously). The records for the tables sharing the value of a cluster key shall be stored together in the same or nearby data blocks. This may improve the joins of these tables on the cluster key, since the matching records are stored together and less I/O is required to locate them. The cluster configuration defines the data layout in the tables that are parts of the cluster. A cluster can be keyed with a
579:, are most efficient if the values they index do not repeat or repeat a small number of times. In contrast, the bitmap index is designed for cases where the values of a variable repeat very frequently. For example, the sex field in a customer database usually contains at most three distinct values: male, female or unknown (not recorded). For such variables, the bitmap index can have a significant performance advantage over the commonly used trees.
1614:
36:
1624:
444:. This query would yield an email address for every customer whose email address ends with "@wikipedia.org", but even if the email_address column has been indexed the database must perform a full index scan. This is because the index is built with the assumption that words go from left to right. With a
333:
For example, in a phone book organized by city first, then by last name, and then by first name, in a particular city, one can easily extract the list of all phone numbers. However, it would be very tedious to find all the phone numbers for a particular last name. One would have to look within each
273:
is specified by the index. The data rows may be spread throughout the table regardless of the value of the indexed column or expression. The non-clustered index tree contains the index keys in sorted order, with the leaf level of the index containing the pointer to the record (page and the row number
296:
Clustering alters the data block into a certain distinct order to match the index, resulting in the row data being stored in order. Therefore, only one clustered index can be created on a given database table. Clustered indices can greatly increase overall speed of retrieval, but usually only where
854:
A covering index can dramatically speed up data retrieval but may itself be large due to the additional keys, which slow down data insertion and update. To reduce such index size, some systems allow including non-key fields in the index. Non-key fields are not themselves part of the index ordering
255:
Some database systems support an EXCLUSION constraint that ensures that, for a newly inserted or updated record, a certain predicate holds for no other record. This can be used to implement a UNIQUE constraint (with equality predicate) or more complex constraints, like ensuring that no overlapping
156:
An index is a copy of selected columns of data, from a table, that is designed to enable very efficient search. An index normally includes a "key" or direct link to the original row of data from which it was copied, to allow the complete row to be retrieved efficiently. Some databases extend the
300:
Since the physical records are in this sort order on disk, the next row item in the sequence is immediately before or after the last one, and so fewer data block reads are required. The primary feature of a clustered index is therefore the ordering of the physical data rows in accordance with the
676:
It is used to index fields that are neither ordering fields nor key fields (there is no assurance that the file is organized on key field or primary key field). One index entry for every tuple in the data file (dense index) contains the value of the indexed attribute and pointer to the block or
329:
The order that the index definition defines the columns in is important. It is possible to retrieve a set of row identifiers using only the first indexed column. However, it is not possible or efficient (on most databases) to retrieve the set of row identifiers using only the second or greater
208:
Suppose a database contains N data items and one must be retrieved based on the value of one of the fields. A simple implementation retrieves and examines each item according to the test. If there is only one matching item, this can stop when it finds that single item, but if there are multiple
645:
A reverse-key index reverses the key value before entering it in the index. E.g., the value 24538 becomes 83542 in the index. Reversing the key value is particularly useful for indexing data such as sequence numbers, where new key values monotonically increase.
144:
at the cost of additional writes and storage space to maintain the index data structure. Indexes are used to quickly locate data without having to search every row in a database table every time said table is accessed. Indexes can be created using one or more
905:
No standard defines how to create indexes, because the ISO SQL Standard does not cover physical aspects. Indexes are one of the physical parts of database conception among others like storage (tablespace or filegroups). RDBMS vendors all give a
781:. While in principle indexes can utilize the common database concurrency control methods, specialized concurrency control methods for indexes exist, which are applied in conjunction with the common methods for a substantial performance gain.
762:
of the clustered index corresponds to the actual data, not simply a pointer to data that resides elsewhere, as is the case with a non-clustered index. Each relation can have a single clustered index and many unclustered indices.
847:
To find the Name for ID 13, an index on (ID) is useful, but the record must still be read to get the Name. However, an index on (ID, Name) contains the required data field and eliminates the need to look up the record.
789:
In most cases, an index is used to quickly locate the data records from which the required data is read. In other words, the index is only used to locate data records in the table and not to return data.
668:
The primary index contains the key fields of the table and a pointer to the non-key fields of the table. The primary index is created automatically when the table is created in the database.
256:
time ranges or no intersecting geometry objects would be stored in the table. An index supporting fast searching for records satisfying the predicate is required to police such a constraint.
301:
index blocks that point to them. Some databases separate the data and index blocks into separate files, others put two completely different data blocks within the same physical file(s).
851:
Covering indexes are each for a specific table. Queries which JOIN/ access across multiple tables, may potentially consider covering indexes on more than one of these tables.
224:
used for this purpose. There are complex design trade-offs involving lookup performance, index size, and index-update performance. Many index designs exhibit logarithmic (
685:
A hash index in database is most commonly used index in data management. It is created on a column that contains unique values, such as a primary key or email address.
544:
173:, where index entries are created only for those records that satisfy some conditional expression. A further aspect of flexibility is to permit indexing on
1214:
448:
at the beginning of the search-term, the database software is unable to use the underlying index data structure (in other words, the WHERE-clause is
1197:
403:. To process this statement without an index the database software must look at the last_name column on every row in the table (this is known as a
1209:
1127:
217:. Since databases may contain many objects, and since lookup is a common operation, it is often desirable to improve performance.
793:
A covering index is a special case where the index itself contains the required data fields and can answer the required data.
1017:
297:
the data is accessed sequentially in the same or reverse order of the clustered index, or when a range of items is selected.
100:
1648:
1607:
72:
1280:
1169:
345:), if we search by giving exact values for all the three fields, search time is minimal—but if we provide the values for
1658:
969:
79:
119:
157:
power of indexing by letting developers create indexes on column values that have been transformed by functions or
334:
city's section for the entries with that last name. Some databases can do this, others just won't use the index.
1627:
1333:
1071:
Daren
Bieniek; Randy Dess; Mike Hotek; Javier Loria; Adam Machanic; Antonio Soto; Adolfo Wiernik (January 2006).
1003:
53:
86:
1584:
1231:
596:
57:
1523:
411:) until the Smith entry has been found; this is much less computationally expensive than a full table scan.
361:. So, to improve the performance, one must ensure that the index is created on the order of search columns.
515:, the index available on this field is not used. Rather only a sequential search is performed, which takes
68:
1518:
660:
An inverted index maps a content word to the document containing it, thereby allowing full-text searches.
1549:
1268:
777:
An index is typically being accessed concurrently by several transactions and processes, and thus needs
1472:
1462:
1238:
338:
17:
1559:
1292:
703:
600:
1039:
284:
The indexed columns are typically non-primary key columns used in JOIN, WHERE, and ORDER BY clauses.
1101:
1089:
221:
158:
209:
matches, it must test everything. This means that the number of operations in the average case is
1508:
1162:
958:
855:
but only included at the leaf level, allowing for a covering index with less overall index size.
220:
An index is any data structure that improves the performance of lookup. There are many different
46:
369:
Indexes are useful for many applications but come with some limitations. Consider the following
1589:
1544:
1221:
938:
321:. The data block where the table record is stored is defined by the value of the cluster key.
1564:
1318:
174:
93:
1617:
1554:
1436:
1406:
1275:
1226:
982:
755:
627:
in the sorted data file. In clustered indices with duplicate keys, the sparse index points
620:
241:
607:
in the sorted data file. In clustered indices with duplicate keys, the dense index points
520:
8:
1574:
1467:
1452:
1379:
1204:
1053:
778:
357:
field to retrieve all matched records. Then a sequential lookup checks the matching with
739:
Indices can be implemented using a variety of data structures. Popular indices include
1653:
1569:
1513:
1482:
1431:
1323:
1263:
1155:
1027:
445:
228:(log(N))) lookup performance and in some applications it is possible to achieve flat (
1389:
1243:
1013:
572:
146:
603:
in the data file. Every key in this file is associated with a particular pointer to
407:). With an index the database simply follows the index data structure (typically a
1579:
1426:
1416:
1384:
1072:
274:
in the data page in page-organized engines; row offset in file-organized engines).
141:
1487:
1457:
1411:
1192:
623:
in the data file. Every key in this file is associated with a particular pointer
567:
A bitmap index is a special kind of indexing that stores the bulk of its data as
404:
195:
915:
syntax with some specific options that depend on their software's capabilities.
619:
A sparse index in databases is a file with pairs of keys and pointers for every
1539:
1477:
1394:
1287:
1248:
990:
986:
932:
728:
655:
455:). This problem can be solved through the addition of another index created on
229:
225:
210:
137:
1147:
1642:
1358:
1343:
1070:
927:
772:
740:
640:
592:
202:
170:
562:
511:
When the wildcard characters are used on both sides of the search word as
177:, as well as expressions formed from an assortment of built-in functions.
1348:
1328:
249:
214:
692:
1492:
1401:
1363:
1338:
1009:
748:
318:
309:
When multiple databases and multiple tables are joined, it is called a
245:
759:
568:
169:
field in the index. Another option sometimes supported is the use of
288:
There can be more than one non-clustered index on a database table.
35:
1353:
1308:
1178:
744:
588:
576:
504:. This puts the wild-card at the right-most part of the query (now
451:
191:
281:
The physical order of the rows is not the same as the index order.
1258:
408:
314:
198:
150:
1083:
1253:
1313:
575:
on these bitmaps. The most commonly used indexes, such as
508:), which the index on reverse(email_address) can satisfy.
259:
140:
that improves the speed of data retrieval operations on a
370:
165:, which would only store the upper-case versions of the
796:
Consider the following table (other fields omitted):
523:
235:
1128:"Create indexes with included columns - SQL Server"
1005:
Chapter 8: Building Fast-Performing
Database Models
194:software includes indexing technology that enables
60:. Unsourced material may be challenged and removed.
727:Another type of index used in database systems is
538:
27:Data structure for query optimization in databases
571:(bitmaps) and answers most queries by performing
1640:
269:The data is present in arbitrary order, but the
1177:
952:
364:
972:Oracle® Database Concepts 10g Release 1 (10.1)
963:
1163:
1102:"11.9. Index-Only Scans and Covering Indexes"
1077:SQL Server 2005 Implementation and Management
1058:SQL Server 2005 Books Online (September 2007)
1001:
959:PostgreSQL 9.1.2 Documentation: CREATE TABLE
766:
161:. For example, an index could be created on
149:, providing the basis for both rapid random
1170:
1156:
185:
153:and efficient access of ordered records.
120:Learn how and when to remove this message
734:
1125:
1090:Covering Indexes for Query Optimization
260:Index architecture and indexing methods
14:
1641:
1151:
981:Database Systems: The Complete Book.
687:
205:is inefficient for large databases.
58:adding citations to reliable sources
29:
1623:
551:
24:
941: – Method for data management
900:
671:
25:
1670:
784:
722:
649:
337:In the phone book example with a
236:Policing the database constraints
1622:
1612:
1603:
1602:
691:
663:
634:
264:
34:
1613:
907:
859:
614:
556:
460:
456:
415:
374:
353:only, the search uses only the
324:
45:needs additional citations for
1119:
1094:
1064:
1046:
995:
975:
935: – Type of database index
582:
533:
527:
13:
1:
1073:"Chapter 4: Creating Indices"
945:
858:This can be done in SQL with
680:
414:Consider this SQL statement:
244:, such as UNIQUE, EXCLUSION,
1054:"Clustered Index Structures"
365:Applications and limitations
291:
7:
1649:Database management systems
1179:Database management systems
921:
459:and a SQL query like this:
343:city, last_name, first_name
240:Indexes are used to police
201:to improve performance, as
147:columns of a database table
10:
1675:
1585:Object–relational database
770:
653:
638:
573:bitwise logical operations
560:
304:
277:In a non-clustered index,
1659:Database index techniques
1598:
1560:Federated database system
1532:
1501:
1445:
1372:
1301:
1293:Blockchain-based database
1185:
767:Index concurrency control
498:'%@wikipedia.org'
438:'%@wikipedia.org'
1106:PostgreSQL Documentation
629:to the lowest search key
341:created on the columns (
180:
595:with pairs of keys and
186:Support for fast lookup
1590:Transaction processing
1545:Database normalization
1488:Query rewriting system
939:Search engine indexing
700:This section is empty.
540:
457:reverse(email_address)
175:user-defined functions
1565:Referential integrity
1002:Gavin Powell (2006).
735:Index implementations
541:
1555:Distributed database
983:Hector Garcia-Molina
970:Overview of Clusters
756:Microsoft SQL Server
539:{\displaystyle O(N)}
521:
242:database constraints
54:improve this article
1575:Relational calculus
1453:Concurrency control
1132:learn.microsoft.com
779:concurrency control
609:to the first record
1570:Relational algebra
1514:Query optimization
1319:Armstrong's axioms
1079:. Microsoft Press.
536:
232:(1)) performance.
1636:
1635:
1244:Wide-column store
1239:Document-oriented
1060:. 4 October 2012.
1019:978-0-7645-7490-0
991:Jennifer D. Widom
987:Jeffrey D. Ullman
845:
844:
720:
719:
587:A dense index in
130:
129:
122:
104:
16:(Redirected from
1666:
1626:
1625:
1616:
1615:
1606:
1605:
1580:Relational model
1550:Database storage
1427:Stored procedure
1172:
1165:
1158:
1149:
1148:
1142:
1141:
1139:
1138:
1123:
1117:
1116:
1114:
1113:
1098:
1092:
1087:
1081:
1080:
1068:
1062:
1061:
1050:
1044:
1043:
1037:
1033:
1031:
1023:
999:
993:
979:
973:
967:
961:
956:
914:
913:
910:
896:
895:
892:
889:
886:
883:
880:
877:
874:
871:
868:
865:
862:
799:
798:
715:
712:
702:You can help by
695:
688:
552:Types of indexes
547:
545:
543:
542:
537:
507:
503:
502:
499:
496:
493:
490:
487:
484:
481:
478:
475:
472:
469:
466:
463:
458:
443:
442:
439:
436:
433:
430:
427:
424:
421:
418:
402:
401:
398:
395:
392:
389:
386:
383:
380:
377:
360:
356:
352:
348:
344:
330:indexed column.
271:logical ordering
168:
164:
163:upper(last_name)
125:
118:
114:
111:
105:
103:
69:"Database index"
62:
38:
30:
21:
1674:
1673:
1669:
1668:
1667:
1665:
1664:
1663:
1639:
1638:
1637:
1632:
1594:
1540:Database models
1528:
1497:
1483:Query optimizer
1458:Data dictionary
1441:
1412:Transaction log
1368:
1324:Codd's 12 rules
1297:
1227:Column-oriented
1193:Object-oriented
1181:
1176:
1146:
1145:
1136:
1134:
1124:
1120:
1111:
1109:
1100:
1099:
1095:
1088:
1084:
1069:
1065:
1052:
1051:
1047:
1035:
1034:
1025:
1024:
1020:
1010:Wrox Publishing
1000:
996:
980:
976:
968:
964:
957:
953:
948:
924:
918:
911:
908:
903:
901:Standardization
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
787:
775:
769:
737:
725:
716:
710:
707:
683:
674:
672:Secondary index
666:
658:
652:
643:
637:
631:in each block.
617:
611:with that key.
585:
565:
559:
554:
522:
519:
518:
516:
513:%wikipedia.org%
506:gro.aidepikiw@%
505:
500:
497:
494:
491:
488:
485:
482:
479:
476:
473:
470:
467:
464:
461:
440:
437:
434:
431:
428:
425:
422:
419:
416:
405:full table scan
399:
397:'Smith'
396:
393:
390:
387:
384:
381:
378:
375:
367:
358:
354:
350:
346:
342:
339:composite index
327:
307:
294:
267:
262:
238:
222:data structures
196:sub-linear time
188:
183:
166:
162:
126:
115:
109:
106:
63:
61:
51:
39:
28:
23:
22:
15:
12:
11:
5:
1672:
1662:
1661:
1656:
1651:
1634:
1633:
1631:
1630:
1620:
1610:
1599:
1596:
1595:
1593:
1592:
1587:
1582:
1577:
1572:
1567:
1562:
1557:
1552:
1547:
1542:
1536:
1534:
1533:Related topics
1530:
1529:
1527:
1526:
1521:
1516:
1511:
1509:Administration
1505:
1503:
1499:
1498:
1496:
1495:
1490:
1485:
1480:
1478:Query language
1475:
1470:
1465:
1460:
1455:
1449:
1447:
1443:
1442:
1440:
1439:
1434:
1429:
1424:
1419:
1414:
1409:
1404:
1399:
1398:
1397:
1392:
1387:
1376:
1374:
1370:
1369:
1367:
1366:
1361:
1356:
1351:
1346:
1341:
1336:
1331:
1326:
1321:
1316:
1311:
1305:
1303:
1299:
1298:
1296:
1295:
1290:
1285:
1284:
1283:
1273:
1272:
1271:
1261:
1256:
1251:
1246:
1241:
1236:
1235:
1234:
1224:
1219:
1218:
1217:
1212:
1202:
1201:
1200:
1189:
1187:
1183:
1182:
1175:
1174:
1167:
1160:
1152:
1144:
1143:
1118:
1093:
1082:
1063:
1045:
1018:
994:
974:
962:
950:
949:
947:
944:
943:
942:
936:
933:Inverted index
930:
923:
920:
902:
899:
843:
842:
839:
836:
832:
831:
828:
825:
821:
820:
817:
814:
810:
809:
806:
803:
786:
785:Covering index
783:
771:Main article:
768:
765:
741:balanced trees
736:
733:
729:linear hashing
724:
723:Linear hashing
721:
718:
717:
698:
696:
682:
679:
673:
670:
665:
662:
656:Inverted index
654:Main article:
651:
650:Inverted index
648:
639:Main article:
636:
633:
616:
613:
584:
581:
561:Main article:
558:
555:
553:
550:
535:
532:
529:
526:
366:
363:
326:
323:
306:
303:
293:
290:
286:
285:
282:
266:
263:
261:
258:
237:
234:
187:
184:
182:
179:
142:database table
138:data structure
134:database index
128:
127:
42:
40:
33:
26:
9:
6:
4:
3:
2:
1671:
1660:
1657:
1655:
1652:
1650:
1647:
1646:
1644:
1629:
1621:
1619:
1611:
1609:
1601:
1600:
1597:
1591:
1588:
1586:
1583:
1581:
1578:
1576:
1573:
1571:
1568:
1566:
1563:
1561:
1558:
1556:
1553:
1551:
1548:
1546:
1543:
1541:
1538:
1537:
1535:
1531:
1525:
1522:
1520:
1517:
1515:
1512:
1510:
1507:
1506:
1504:
1500:
1494:
1491:
1489:
1486:
1484:
1481:
1479:
1476:
1474:
1471:
1469:
1466:
1464:
1461:
1459:
1456:
1454:
1451:
1450:
1448:
1444:
1438:
1435:
1433:
1430:
1428:
1425:
1423:
1420:
1418:
1415:
1413:
1410:
1408:
1405:
1403:
1400:
1396:
1393:
1391:
1388:
1386:
1383:
1382:
1381:
1378:
1377:
1375:
1371:
1365:
1362:
1360:
1359:Surrogate key
1357:
1355:
1352:
1350:
1347:
1345:
1344:Candidate key
1342:
1340:
1337:
1335:
1332:
1330:
1327:
1325:
1322:
1320:
1317:
1315:
1312:
1310:
1307:
1306:
1304:
1300:
1294:
1291:
1289:
1286:
1282:
1279:
1278:
1277:
1274:
1270:
1267:
1266:
1265:
1262:
1260:
1257:
1255:
1252:
1250:
1247:
1245:
1242:
1240:
1237:
1233:
1230:
1229:
1228:
1225:
1223:
1220:
1216:
1213:
1211:
1208:
1207:
1206:
1203:
1199:
1196:
1195:
1194:
1191:
1190:
1188:
1184:
1180:
1173:
1168:
1166:
1161:
1159:
1154:
1153:
1150:
1133:
1129:
1126:MikeRayMSFT.
1122:
1107:
1103:
1097:
1091:
1086:
1078:
1074:
1067:
1059:
1055:
1049:
1041:
1029:
1021:
1015:
1011:
1007:
1006:
998:
992:
988:
984:
978:
971:
966:
960:
955:
951:
940:
937:
934:
931:
929:
928:Index locking
926:
925:
919:
916:
898:
856:
852:
849:
840:
837:
834:
833:
829:
826:
823:
822:
818:
815:
812:
811:
808:Other Fields
807:
804:
801:
800:
797:
794:
791:
782:
780:
774:
773:Index locking
764:
761:
757:
752:
750:
746:
742:
732:
730:
714:
705:
701:
697:
694:
690:
689:
686:
678:
669:
664:Primary index
661:
657:
647:
642:
641:Reverse index
635:Reverse index
632:
630:
626:
622:
612:
610:
606:
602:
598:
594:
590:
580:
578:
574:
570:
564:
549:
530:
524:
514:
509:
483:email_address
465:email_address
454:
453:
447:
432:email_address
420:email_address
412:
410:
406:
372:
362:
340:
335:
331:
322:
320:
316:
312:
302:
298:
289:
283:
280:
279:
278:
275:
272:
265:Non-clustered
257:
253:
251:
247:
243:
233:
231:
227:
223:
218:
216:
212:
206:
204:
203:linear search
200:
197:
193:
178:
176:
172:
171:partial index
160:
154:
152:
148:
143:
139:
135:
124:
121:
113:
102:
99:
95:
92:
88:
85:
81:
78:
74:
71: –
70:
66:
65:Find sources:
59:
55:
49:
48:
43:This article
41:
37:
32:
31:
19:
1421:
1135:. Retrieved
1131:
1121:
1110:. Retrieved
1108:. 2023-02-09
1105:
1096:
1085:
1076:
1066:
1057:
1048:
1004:
997:
977:
965:
954:
917:
904:
857:
853:
850:
846:
795:
792:
788:
776:
753:
738:
726:
708:
704:adding to it
699:
684:
675:
667:
659:
644:
628:
625:to the block
624:
618:
615:Sparse index
608:
604:
586:
566:
563:Bitmap index
557:Bitmap index
512:
510:
449:
413:
368:
336:
332:
328:
325:Column order
310:
308:
299:
295:
287:
276:
270:
268:
254:
239:
219:
207:
189:
155:
133:
131:
116:
107:
97:
90:
83:
76:
64:
52:Please help
47:verification
44:
1628:WikiProject
1519:Replication
1407:Transaction
1349:Foreign key
1329:CAP theorem
1276:Multi-model
1036:|work=
583:Dense index
373:statement:
317:index or a
250:FOREIGN KEY
246:PRIMARY KEY
215:linear time
159:expressions
1643:Categories
1493:Query plan
1446:Components
1364:Unique key
1281:comparison
1215:comparison
1205:Relational
1198:comparison
1137:2023-04-08
1112:2023-04-08
946:References
711:April 2023
681:Hash index
599:for every
569:bit arrays
379:first_name
359:first_name
351:first_name
319:hash table
80:newspapers
18:Index file
1654:Databases
1502:Functions
1437:Partition
1264:In-memory
1222:Key–value
1038:ignored (
1028:cite book
760:leaf node
589:databases
471:customers
426:customers
391:last_name
292:Clustered
167:last_name
1608:Category
1524:Sharding
1380:Relation
1354:Superkey
1309:Database
1302:Concepts
922:See also
873:my_table
867:my_index
745:B+ trees
677:record.
605:a record
597:pointers
577:B+ trees
452:sargable
446:wildcard
192:database
110:May 2024
1618:Outline
1417:Trigger
1373:Objects
885:INCLUDE
546:
517:
492:reverse
477:reverse
311:cluster
305:Cluster
213:(N) or
151:lookups
94:scholar
1432:Cursor
1390:column
1259:NewSQL
1016:
909:CREATE
861:CREATE
758:, the
749:hashes
601:record
548:time.
462:SELECT
417:SELECT
409:B-tree
385:people
376:SELECT
315:B-Tree
199:lookup
96:
89:
82:
75:
67:
1422:Index
1385:table
1288:Cloud
1254:NoSQL
1249:Graph
1186:Types
912:INDEX
864:INDEX
838:Fuse
827:Lamp
816:Plug
805:Name
621:block
591:is a
474:WHERE
429:WHERE
388:WHERE
349:and
190:Most
181:Usage
136:is a
101:JSTOR
87:books
1473:ODBC
1463:JDBC
1402:View
1339:Null
1334:CRUD
1314:ACID
1269:list
1232:list
1210:list
1040:help
1014:ISBN
891:name
841:...
830:...
819:...
747:and
593:file
489:LIKE
468:FROM
450:not
435:LIKE
423:FROM
382:FROM
355:city
347:city
248:and
73:news
1468:XQJ
1395:row
835:14
824:13
813:12
802:ID
754:In
706:.
371:SQL
56:by
1645::
1130:.
1104:.
1075:.
1056:.
1032::
1030:}}
1026:{{
1012:.
1008:.
989:,
985:,
897:.
894:);
879:id
870:ON
751:.
743:,
731:.
501:);
132:A
1171:e
1164:t
1157:v
1140:.
1115:.
1042:)
1022:.
888:(
882:)
876:(
713:)
709:(
534:)
531:N
528:(
525:O
495:(
486:)
480:(
441:;
400:;
394:=
230:O
226:O
211:O
123:)
117:(
112:)
108:(
98:·
91:·
84:·
77:·
50:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.