sql命令笔记

一、创建表 admin_an

----day,os,uid,os_version在表中保持唯一

DROP TABLE IF EXISTS `admin_an`;
CREATE TABLE IF NOT EXISTS admin_an(
  uid int unsigned NOT NUll DEFAULT '0' COMMENT '用户id',
  os VARCHAR (20) NOT NULL  DEFAULT '' COMMENT '终端操作系统',
  os_version VARCHAR (30) NOT NULL  DEFAULT '' COMMENT '操作系统版本',
  activenum int unsigned NOT NUll DEFAULT '0' COMMENT '活跃人数',
  visitnum int unsigned NOT NUll DEFAULT '0' COMMENT '访问次数',
  newsnum int unsigned NOT NUll DEFAULT '0' COMMENT '新增人数',
  day date NOT NULL DEFAULT '0000-00-00' COMMENT '日期',
  UNIQUE KEY `unique` (day,os,uid,os_version)
  KEY day (day),
  KEY uid (uid),
  KEY os (os),
  KEY os_version (os_version)
)ENGINE=MyIsAM CHARACTER SET utf8 COMMENT '统计';

 

二、修改表结构或注释

--往新表插入数据(两张表结构相同)

rename table admin_jarspool to admin_jarspool_b; --重命名
DROP TABLE IF EXISTS `admin_jarspool`;
CREATE TABLE `admin_jarspool` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  
  day date NOT NULL DEFAULT '0000-00-00' COMMENT '日期',
   PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'jars管理';
insert into admin_jarspool  SELECT * FROM admin_jarspool_b;
DROP TABLE IF EXISTS `admin_jarspool_b`;--删除重命名的表


从一张表查询数据加入另一张表   (结构不同)
insert into admin_newskeep (uid,newsnum,day) select uid,newsnum,day from admin_dailynum;

 

新增一个字段ALTER TABLE tablename add 


ALTER TABLE admin_device add  enduid CHAR(32) NOT NULL DEFAULT '' ;


修改字段名字    将channel_id 重命名为 app_key 
ALTER TABLE admin_uapp CHANGE channel_id app_key VARCHAR (32) NOT NULL DEFAULT '' ;


修改字段长度或类型 timestamp 的长度改为13
ALTER TABLE admin_equipment change timestamp timestamp bigint(13) NOT NULL DEFAULT '0' ;


删除字段
ALTER TABLE admin_adslot DROP COLUMN specs;


修改值
UPDATE admin_zone set ads_type = 4 where adslot_type = 8;


查看表结构
describe admin_zone; 或 show create table admin_zone;

DATE_FORMAT()的用法  sql通用,
数据库的时间字段格式不是Y-m-d时,$where 条件里 可以使用DATE_FORMAT 转换成Ymd好进行比较
$where ='DATE_FORMAT(click_time,\'%Y%m%d\') >= "'.date('Ymd', $time_begin).'" and DATE_FORMAT(click_time,\'%Y%m%d\') <= "'.date('Ymd', $time_end).'"'.$where;

删除索引与添加索引
alter table admin_test drop index `unique`;
alter table admin_test add unique key `unique` (`day`,`name`);

统计一张表(admin_xuimei1)的数据在另一张表(admin_xuimei)存在数
select count(t.imei) from (select a.imei from  admin_xuimei1  as a where a.imei  in (select imei  from admin_xuimei)) t

distinct 去重

注:使用like模糊查询时,是不会使用索引的

在没有使用第三方缓存时(redis、 memcache等),要频繁写入数据的表,尽量使用MyISAM引擎,通常情况下MyISAM写入速度是InnoDB的十几倍

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值