-> FROM citizen -> WHERE income/dependents > 10000 AND age > 30; 

•Full support for SQL GROUP BY  and ORDER BY  clauses. Support for group functions ( COUNT() , AVG() , STD() , SUM() , MAX() , MIN() , and GROUP_CONCAT() ). 

•Support for LEFT OUTER JOIN  and RIGHT OUTER JOIN  with both standard SQL and ODBC syntax. 

•Support for aliases on tables and columns as required by standard SQL. 

•Support for DELETE , INSERT , REPLACE , and UPDATE  to return the number of rows that were changed (affected), or to return the number of rows matched instead by setting a flag when connecting to the server. 

•Support for MySQL-specific SHOW  statements that retrieve information about databases, storage engines, tables, and indexes. Support for the INFORMATION_SCHEMA  database, implemented according to standard SQL. 

•An EXPLAIN  statement to show how the optimizer resolves a query. 

•Independence of function names from table or column names. For example, ABS  is a valid column name. The only restriction is that for a function call, no spaces are permitted between the function name and the “ ( ”  that follows it. See Section 9.3, “Keywords and Reserved Words” . 

## Security 

•You can refer to tables from different databases in the same statement. 

•A privilege and password system that is very flexible and secure, and that enables host-based verification. 

•Password security by encryption of all password traffic when you connect to a server. 

## Scalability and Limits 

•Support for large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 200,000 tables and about 5,000,000,000 rows. 

•Support for up to 64 indexes per table. Each index may consist of 1 to 16 columns or parts of columns. The maximum index width for InnoDB  tables is either 767 bytes or 3072 bytes. See Section 15.22, “InnoDB Limits” . The maximum index width for MyISAM  tables is 1000 bytes. See Section 16.2, “The MyISAM Storage Engine” . An index may use a prefix of a column for CHAR , VARCHAR , BLOB , or TEXT column types. 

## Connectivity 

•Clients can connect to MySQL Server using several protocols: 

•Clients can connect using TCP/IP sockets on any platform. 

•On Windows systems, clients can connect using named pipes if the server is started with the named_pipe  system variable enabled. Windows servers also support shared-memory connections if started with the shared_memory  system variable enabled. Clients can connect through shared memory by using the --protocol=memory  option. 

•On Unix systems, clients can connect using Unix domain socket files. 

•MySQL client programs can be written in many languages. A client library written in C is available for clients written in C or C++, or for any language that provides C bindings. 

