Simon, Thanks for the detailed response!
Can I say: Create INDEX c on myTable(c); Vance on Mar 07, 2013, Simon Slavin <slav...@bigfraud.org> wrote: > > >On 7 Mar 2013, at 2:51pm, ven...@intouchmi.com wrote: > >> I haven't dealt with indexes in SQLite in the past, so a couple of follow up >> questions: >> To index a column (a non primary key), I assume I have to create another >> column >using the Create index with a new column name. > >There is no need to create a new column. You can have a table which has >existed for >years with columns a, b, c, d. Years after that table was originally created >you >can create a new index on existing columns of it: > >CREATE INDEX myTable_b_c ON myTable (b, c) > >The table is untouched and has exactly the same content as before. SQL just >has a >new faster way of searching it which may be useful for some statements. There >are >no additional columns anywhere. This is true for all SQL engines, and it not >an >answer especially about SQLite. > >> When a query is made to the table do I need to reference the index column >> name or >can I reference the original column and still invoke the index? > >It is SQL's job to know what indexes are available and to guess the fastest >way to >do whatever command or query you are executing. If a programmer ever needs to >specify >which index SQL should use to do something, something is wrong. The >intelligence >it takes to have SQL figure out which indexes to use and how to use them, >without >any input from the programmer, is one of the things that makes SQL so good. > >> In MySQL it seems that I can simple declare a column as an index and and use >> that >column's name in querys. > >You may be confused. In SQL you can use any column name in queries whether it >is >indexed or not. Having a convenient index may make a command faster, but it >doesn't >magically let you do anything that wasn't possible without it [1]. Again, >this is >true of all SQL engines, not just SQLite. > >> No need to worry about an additional column name. > >SQLite needs no additional columns. I'm not sure where you have read about >additional >columns being needed for any SQL engine, but the idea is not one that SQL >users use. > You may have read some very weird books or tutorials, or you may be trying to > use >some knowledge you have about some other DBMS when working with SQL, where it >doesn't >apply. > >[1] certain exceptions for some obscure advanced features (e.g. foreign keys >in SQLite) >but you don't care about that > >Simon. >_______________________________________________ >sqlite-users mailing list >sqlite-users@sqlite.org >http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users