我的mysql笔记

杂乱的mysql笔记

查看表 show (表名)
Insert:增 给表中增加数据 Delite:删 删除一行 selete:查
建表:

MYSQL三大列类型,

整形
Tinyint
占据空间 1 字节,存储范围,-128–127,0-255
Smallint
占据空间 2 字节,存储范围,-215–215-1
Mediumint
占据空间 3 字节
Int
占据空间 4 字节
Bigint
占据空间 5 字节
声明字符型:unsigned(使其为无符号类型 默认为符
号,0-255)
Zerofill 补0,默认unsigned类型;
(M) :与zerofill一起使用才有意义 例:alter table class add age1 tinyint<2> zerofill not null default 0;
Insert into class <sname,age> value<’彭祖’,2>
显示age那一列的彭祖这一行的age数据为02,这一列都为00类型;
浮点型float:能存10^38
(M,D) M‘精度’代表总位数,D是标度,代表小数点右边的位 数;
默认范围(-999999–999999)
Bonus 范围(0-99999)
Decimal:比float精度高,将M和D 分开存储,做账建议这
个;
字符型:char,varchar,text,blob;
Char(N)定长类型,不够N个长度,用空格在尾部补够N度,
取出时再把右侧空格删掉(意味着如果本身尾部有空格就会丢
失),会浪费尾部;定长的速度快一点。
Varcahr(M)M代表宽度,0<=M<=65535不定长,不会不够,
但是会在每列数据前面加1-2字节来存储标志列长度。
注意:char(M),varchar(M)限制的是字符,不是字节,
即char(2)charste utf8,能存两个utf8字符,比如中国。
Text(M)最大长度为65535(2^16-1)字符的text列,可以
给出可选长度M。则mysql将列创建为最小的但足以容纳M长
的值得text类型。声明text列时,不加默认值。
Blob是二进制类型,用来存储图像,音频等二进制信息。
意义:2进制,0-255都有可能出现。
Blob在于防止因为字符集的问题,导致信息丢失,比如一张图
中有0xff字节,这个在asdi字符集认为非法,在入库的时候被
过滤了,下次再取这个照片时照片就损坏了。
随记:一个中文字符等于3个字节,一个超大字符集换算4个
字节,timestamp是提取当前时间戳自动填充,与datetime格
式相同。

日期时间列:date(存储空间需求3字节),time(3字节),
datetime(8字节),timestamp(4字节),year(1字节);
Date:YYYY-MM-DD,范围1000-01-01到9999-12-31;
Time:HH-MM-SS,范围是-838:59:59和838:59:59;
Datetime:YYYY-MM-DD HH:MM:SS,1000-01-01 00:00:00到
9999-12-31 23:59:59;
Year:存256钟变化范围是1901-2155年,还有一种变化是
0000,可以简写成两位,但不推荐,容易混乱。
建表:建表就是一个声明列的过程
Create table 表名(
列1 声明 列1参数,
列2声明 列2参数,

列n声明 列n参数
)engine myisam/innodb/bdb(*引擎) charset
utf8/gbk/latin1(字符集)…
修改表
增加列
Alter table 表名 add 列名称 列类型 列参数。【加
的列在表的最后】
例:alter table m1 add birth date not null default
‘0000-00-00’.
Alter table 表名 add 列名称 列类型 列参数 after
某列 [把新列加在某列后]
例:alter table m1 add gender char(1) not null default
‘’ after usename.
Alter table 表名 add 列名称 列类型 列参数 first
[把新列加在最前面]
例:alter table m1 add pid int not null default 0 first;
删除列
Alter table 表名 drop 列名;
修改列类型
Alter table 表名 modify 列名 新类型 新参数;
例:alter table m1 modify gender char(4) not null
default ‘’.
修改列名及列类型
Alter table 表名 change 旧列名 新列名 新类型 参
数;
例:alter table m1 change id uid int unsigned;
Select 5种子句之where常用运算符
比较运算符:< <= = in(在某集合内) !=或<> >= > between(在某范围内)
In和between的区别是一个是点集合in(3,5)一个是区间between(2,5);
逻辑运算符:not或! or或|| and或&&
Select 5种子句之匹配
like:模糊匹配,like ‘诺基亚%’,%可以匹配任意字符。
随记:and优先级大于or,where是对表中的数据发挥作用,对于结果中的数据不发生作用,要在结果中筛选就要用having;列是变量,where条件是表达式,在哪一行上表达式为真哪一行就取出来。
Select 5种子句之group与统计函数
max:求最大;min:求最小; sum:求总和;avg:求平均;
count:求总行数;
Select count(
) from 表名,查询的就是绝对的行数,哪怕某一行所有字段全为NULL,也计算在内;
而select count(列名) from 表名,查询的是该列不为NULL的所有行的行数。
Select * from goods group by cat_id; #这条语句语义不对,但是在mysql中可以使用。*查出来的数据与cat_id分组的语义不对,比如一个班的平均身高,*就代表所有人,cat_id就代表这些人的班级,不可能用一个人去代表一个班级的平均身高,只能用,cat_id班级来代表一个班级的平均身高;
Group:分组;
Having:筛选,对结果筛选;
Order by:当最终结果集出来后,可以进行排序。
排序的语法:order by 结果集中的列名 desc/asc
Limit 在语句的最后,起到限制条目的作用
Limit[offset] N
Offset 偏移量
N取出条目
Offset,如果不写,则相当于 limit 0,N
子查询
where子查询:
from子查询:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值