一些好用的sql 语句

查询所有表信息

        语句 :sql=“select * from information_schema.tables where table_schema='mvcphp'

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

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


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

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

                 4种表引擎        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百分号无法使用到索引

                            5,分组统计可以禁止排序

                            6,避免随机取记录

                            7,禁止不必要的order by 

                            8,避免插入数据时批量插入

                             ......





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值