**mysql
中字段的常见类型: **
二进制位 bit(长度)
tinyint[(长度)] [有无符号unsigned] [位数低于长度时候是否填充零zerofill]
有符号表示范围-128 ~ 127
, 无负号表示范围 0 ~ 255
; 可用tinyint(1)
来模拟boolean
类型; *整型中的长度不做限制用, 仅仅做显示用, 即长度大于位数时候是否选择用零填充显示 *
int[(长度)] [unsigned] [zerofill]
bigint[(长度)] [unsigned] [zerofill]
decimal[(数字总个数 [, 小数点个数])] [unsigned] [zerofill]
该类型会以字符串类型存储在mysql
, 以此来表示准确的浮点型
float[(数字总个数, 小数个数)] [unsigned] [zerofill]
double[(数字总个数, 小数个数)] [unsigned] [zerofill]
char(长度)
用固定长度存储字符类型, 这里的长度表示所有字符所占长度, 最长为255
个字符
varchar(长度)
变长类型存储字符类型, 这里的长度表示人为定制的最大长度, 查询速度不如char
定长类型
text
变长类型存储大字符串, 最多2**16 − 1
个字符
mediumtext
最多2**24 − 1
个字符
longtext
最多2**32 − 1
个字符
enum(v1 [,v2, v3])
枚举类型, v1
表示可选的值
set(v1 [, v2, v3])
集合类型, v1
表示可选的不重复的值
date
以yyyy-mm-dd
形式存储
time
以hh:mm:ss
新式存储
year
以yyyy
新式存储
datetime
以yyyy-MM-dd hh:mm:ss
形式存储
** 表中数据的操作 **
增加内容 insert into 表 (列名01,列名02...) values (值,值,值...) [,(值,值,值...)]
可以一次增加多条数据
删除具体数据 delete from 表 where 条件'
修改表中具体数据 update 表 set 列名= 值 where 条件
查询具体内容 select 列名01 as 别名 , 列名02 from 表 where 条件
常见条件: 且关系and
; 区间关系between 开始位置 and 结束位置
; 在其中的关系in (v1, v2, v3)
; 不在其中的关系not in (v1, v2, v3)
; 在某种条件下in (select语句)
mysql
中的两种通配符: %
匹配任意零个字符或者任意多个字符; _
匹配任意一个
mysql
中的限制条件: limit number
表前number
行以内; limit start, number
表示从start
行起始的number
行以内; limit number offset start
表示从第start'
开始的number
行以内
mysql
中排序显示: order by 列1 desc,列2 asc
表示先以列1
递减排序, 若列1
相同时候则以列2
递增排序
分组: select count(列名),sum(列名),max(列名),min(列名) from 表 where 条件 group by 列名01,列名02 order by 列名
这里的group by
需要放在where
与order
之间, where
和order
可以不存在
连表查询结果
select A.xx B.oo from A, B where A.x=B.o
没有A.x=B.o
对应的数据则不显示任何结果
select A.xx B.oo from A inner join B where A.x=B.o
A
和B
具有对等位置, 没有A.x=B.o
对应的数据则不显示任何结果
select A.xx B.oo from A left join B where A.x=B.o
A
表显示所有, 对于B
表若无符合A.x=B.o
的数据则其值为null
来显示
select A.xx B.oo from B right join A where A.x=B.o
A
表显示所有, 对于B
表若无符合A.x=B.o
的数据则其值为null
来显示
组合不去重复显示所有查询结果 select 列名 from 表 union all select 列名 from 表
组合去重显示 select 列名 from 表 union select 列名 from 表
**在mysql
中的视图概念, 它并不是一个真实存在的表,而是根据自己写的sql
语句执行所得的结果集, 方便查询过程和结果比较复杂时候暂存结果以便它用. 使用视图时候, 直接将它作为表来使用即可 **