查询所有表信息

select * from information_schema.tables where table_schema='mvcphp'

        information_schema 是一张数据表,里面存储了服务器上所有数据库的信息。上述sql语句 释义: 

        通过 条件table_schem=‘mvcphp’(你想要查询的数据库名)  在数据表 information_schema 进行查询。


        简单列举下返回的结果集中的键名含义:

TABLE_NAME    ----    数据表的表名
ENGINE        ----    数据表的引擎

MyISAM       InnoDB     MEMORY    Archive    各有优劣

TABLE_ROWS    ----    数据表的数据条数



AVG_ROW_LENGTH  ----  平均每行的长度
DATA_LENGTH   ----    数据表的大小长度
DATA_FREE     ----    表碎片      (在做数据库优化可能会用到 -- 针对 varchar/text等可变长度类型的值被删除时)


    sql = "select table_name,engine,table_rows,data_length+index_length length,DATA_FREE from information_schema.tables

where TABLE_SCHEMA='mvcphp'"  可以查看某个表的大小以及表碎片大小
AUTO_INCREMENT   ----     自增的最大数值
CREATE_TIME      ----     创建时间
TABLE_COLLATION  ----      数据表编码格式

  


    一些比较有用的SQL语句

              获取数据表结构:

                        SELECT CREATE  TABLE  `TABLENAME`

删去字段

            ALTER TABLE tbl DROP COLUMN filed1, DROP COLUMN field2;

        修改列的类型 (需要列出两次列名)

             ALTER TABLE tbl CHANGE filed1 filed1 BIGINT NOT NULL;

        删除数据库

             DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;

        删除表

             DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE];

        删除多个表

             DROP TABLE IF EXISTS my_tbl1, my_tbl2;

        向表中插入数据语法

             INSERT INTO tbl_name (f1, f2, f3) VALUES(val1, val2, val3);

        创建表

              CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [

              create_definition1,create_definition2,...)

              ][table_options] [select_statement]

        查询表结构

             desc [tableName];

        修改字段名

              alert table [tableName] change [fieldName] [newfieldName] [type(这里必须加上类型)] ;

        删除字段

             alert table tableName drop column fieldName

            创建数据库

                            create database [dbName];

            增、删、改、查语句

                               insert into [tableName] ( fields,.... ) value ('value,....');

                                            例:insert into `arti` (title,content) value ('标题','内容');

                                delete from [tableName] where [field]='[value]' ; 删除一般使用 id字段。

                                            例: delete from `arti` where id=1; 在 【arti】表中删除 id = 1 的那条数据;

                                update [tableName] set [field]='[value]' where [field] = '[value]';

                                            例:update arti set title='修改标题' where id=5;

                                  select [fields] from [tableName];

                                              例:select title,content from arti;    select * from arti;  尽量不适用 * 查询整张表。



               关于SQL语句优化

                            1,不使用子查询

                            2,避免使用索引

                            3,用in来代替or 查询

                            4,like百分号无法使用到索引

分组统计可以禁止排序

避免随机取记录

禁止不必要的order by 

插入数据时批量插入

                             ......