MySQL入门(二)

一、列类型

1. 数值型

  • 整数型:tinyint、smallint、mediumint、int、bigint(显示宽度和zerofill一起使用,e.g. int_3 tinyint(3) unsigned zerofill)
  • 小数型:其中浮点型有两个float(单精度)和double(双精度),定点型为decimal

2. 时间日期类型

  • datetime:格式为YYYY-mm-dd HH:ii:ss,表示范围1000-9999年
  • date:datetime的前半部分
  • time:datetime的后半部分,可正可负
  • timestamp:格式与datetime一致,从1970年开始,纪录被更新,该字段自动更新
  • year

3. 字符串类型

  • char:定长字符串,最大长度255,浪费磁盘空间,效率高
  • varchar:变长字符串,理论最大长度65536,节省磁盘空间,效率低
  • text:通常超过255个字符就用该数据类型
  • blob:存储二进制数据
  • enum:单选
  • set:多选
MySQL中规定任何一条纪录不能超过65535个字节。

二、列属性

1. 空属性

null/not null

2. 列描述

comment

3. 默认值

default

4. 主键

primary key,一张表只能有一个主键,值不能为空。

  • 增加主键
        - 在字段后直接跟primary key

        - 复合主键,在所有字段之后primary key(字段1, 字段2, ...)

        - atler table 表名 add primary key(字段列表);

        - alter table 表名 modify [column] 字段名 数据类型 [列属性] [位置];

  • 删除主键
        alter table 表名 drop primary key;

5. 唯一键

unique/unique key,一张表可以有多个唯一键,值可以为空。

  • 增加唯一键
        - 在字段后直接跟unique/unique key

        - 复合唯一键,在所有字段之后unique key(字段1, 字段2, ...)

        - atler table 表名 add unique key(字段列表);

        - alter table 表名 modify [column] 字段名 数据类型 [列属性] [位置];

  • 删除唯一键
        alter table 表名 drop index 索引名称;

6. 自增长

auto_increment(不给值、给default、给null,本身必须是索引,必须是整数数据类型,一张表最多只能有一个自动增长属性),查看自增长变量show variables like 'auto_increment%';,删除使用modify。

三、数据高级操作

1. 主键冲突

insert into 表名[(字段1, 字段2, ...)] values(值1, 值2, ...) on duplicate key update 字段 = 新值;

replace into 表名[(字段1, 字段2, ...)] values(值1, 值2, ...);

2. 复制表结构

create table like 库名.表名;

3. 蠕虫复制

insert into 表名[(字段列表)] select 字段列表/* from 表名;

4. 高级查询

select [select选项] 字段列表[字段别名]/* from 表名 [where子句] [group by子句] [having子句] [order by子句] [limit子句];

  • select选项:all、distinct(用来去除所有字段都重复的纪录)
  • where子句:用来过滤行
  • group by子句:以便能对每个组进行聚集计算,聚集函数avg()、count()、min()、max()、sum()以及函数group_concat()
  • having子句:用来过滤组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值