MySQL 语法
来源:互联网 发布:java面试 csdn 编辑:程序博客网 时间:2024/06/15 18:41
1. 创建新表
1.1. 创建一张数据表的基本格式CREATE TABLE `trade` ( `id` char(20) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, `userid` int(1) NOT NULL DEFAULT '0', `type` int(1) NOT NULL DEFAULT '0' COMMENT '1:订货 2:消费', `orderid` char(32) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, `psam` char(20) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, `card` char(40) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `amount` int(1) unsigned NOT NULL DEFAULT '0', `itime0` int(1) NOT NULL DEFAULT '0' COMMENT '下单时间', `itime1` int(1) NOT NULL DEFAULT '0' COMMENT '交易发起时间', `itime2` int(1) NOT NULL DEFAULT '0' COMMENT '完成时间', `pay_type` int(1) NOT NULL DEFAULT '0' COMMENT '付款类型', `state` char(2) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL, `tradeNo` int(1) NOT NULL DEFAULT '0', `flag` int(1) NOT NULL DEFAULT '0' COMMENT '0未处理 1:已处理', `service_time` datetime DEFAULT NULL, `service_result` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), KEY `IDX_PA_IT_PS` (`pay_type`,`itime2`,`psam`), KEY `IDX_ORDERID` (`orderid`), KEY `IDX_USERID_ID` (`userid`,`id`)) ENGINE=MyISAM DEFAULT CHARSET=gbk; 注: (1) <strong><span style="color:#008080;"># 若表中有自动增长的字段,若要设置primary key,只能为该字段</span></strong> (2) 关于 CHARACTER SET xxx COLLATE xxx (上表中,char类型的字段都有该项)<p> 首先是MySQL里面关于<a target=_blank href="http://dev.mysql.com/doc/refman/5.0/en/charset.html" target="_blank">character set(字符集)和collation(整理?我认为翻译成比较规则可能更贴切)的概念</a>。</p><p> Character set顾名思义,<span style="font-family:Arial;">就是字符、以及字符对应的编码的集合。<span style="font-family:Arial;">例如简体中文字符集gb2312就包括简体中文中的所有规定汉字,以及每个汉字对应的代码。</span></span></p><p>Collation,是指比较字符的规则的集合。有了比较规则,才能够将一组数据排序——例如按照英文字母顺序排序、汉字按照拼音顺序排序等等。显然,针对同样一组字符集</p><p>可以有不同的排序标准、规则。例如汉字可以按照拼音排序,也可以按照笔画多少排序。尤其是Unicode的字符集,由于其可以包含不同种类的语言,所以可以按照各种语言</p><p>的排序方法排序。此外,完全按照字符在字符集里的编码进行比较的方式称为binary比较。到了这里我们就容易理解了。举例来说,MySQL支持的gb2312字符集中,有gb2312_bin和gb2312_general_ci两种collation。很显然前者是binary比较规则,后者是一般的中</p><p>文字符比较规则。每种字符集都有其默认的collation。对于utf8字符集来说,其默认collation是utf8_general_ci。要获得MySQL里面支持的字符集和默认collation列表,可以使用<a target=_blank href="http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html" target="_blank">SHOW CHARACTER SET</a>语句:</p> (3)KEY用于建立索引
2.
2.1 查询问题1
table user_dict:
table trade:
查询语句:
SELECTtr.orderid, tr.pay_type,ud.type,ud.dict_valueFROMuser_dict ud,trade trWHERE ud.type = tr.pay_typeAND tr.orderid = 'BM231001591588346045271'结果:
出现大量交叉(查询据结果并没有错)
2.2 连表查询
SELECTorderid,bi.`name`,ud.dict_valueFROM(SELECTorderid, pay_typeFROMmpos.tradeWHEREitime2 > UNIX_TIMESTAMP(DATE_SUB('2016-03-24 00:00:00',INTERVAL 1 DAY))AND itime2 < UNIX_TIMESTAMP(DATE_ADD('2016-03-24 23:59:59',INTERVAL 1 DAY))AND FIND_IN_SET(LEFT (pay_type, 2),'2,4,21,22,23,24')AND state = '00') tr left JOIN business_info bi on bi. CODE = LEFT (tr.orderid, 2) LEFT JOIN user_dict ud on ud.dict_key = LEFT(tr.pay_type , 2) and ud.type = 3先查trade 表3天的数据,在从business_info中得到business_info.name、从user_dict中得到user_dict.dict_value
3. 判断空
select * from table where id is null or id=''
区分is null 和‘’
4. select * from table LIMIT 5
LIMIT 5指取前5条即可,取到5条即终止query
0 0
- MYSQL语法
- MYSQL语法
- mysql 语法
- mysql 语法
- MySql语法
- Mysql语法
- MYSQL--语法
- mysql语法
- mysql语法
- mysql 语法
- mysql语法
- MySQL 语法
- Mysql 语法
- mysql语法
- MySQL语法
- MySQL语法
- mysql语法
- mysql语法
- 关于android中alarm的使用
- pageContext对象
- Android 视图组件的自定义
- GET,POST,PUT,DELETE的区别和联系
- makefile文件详解
- MySQL 语法
- 2.Activity异常情况下的生命周期分析学习笔记
- Spark: sortBy和sortByKey函数详解
- iOS-MD5加密32位扩展类
- 15. 3Sum
- Socket通讯原理
- 解决SSH自动断线,无响应的问题
- MATLAB中imfilter函数用Opencv 实现遇到的若干问题
- ButterKnife源码分析