类型
用途
int
整型,相当于java 的int
bigint
整型,相当于java 的 long
flfloat
浮点型
double
浮点型
datetime
日期类型
timestamp
日期类型(可存储时间戳)
char
定长字符
varchar
不定长字符
text
大文本,用于存储很长的字符内容
blob
字节数据类型,存储图片、音频等文件
MySQL 案例实战教程
MySQL的数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
备注: char 和varchar 一定要指定长度,flfloat 会自动提升为double,timestamp 是时间的混合类型,理
论上可以存储 时间格式和时间戳。
建表操作
语法
在 SQL 中,我们有如下约束:
-- 删除表
DROP TABLE IF EXISTS 表名;
-- 新建表
create table 表名(
字段名 类型 约束(主键,非空,唯一,默认值),
字段名 类型 约束(主键,非空,唯一,默认值),
)编码,存储引擎;NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助
于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
插入、删除、更新
插入语句
删除语句
更新语句
案例5:基本 select 查询语句
初始化数据
DROP TABLE IF EXISTS websites;
CREATE TABLE websites (
id int(11) NOT NULL AUTO_INCREMENT,
name char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
url varchar(255) NOT NULL DEFAULT '',
alexa int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
sal double COMMENT '广告收入',
country char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO websites(name, url,alexa,sal,country ) VALUES ('腾讯', 'www.qq.com',
18, 1000,'CN' ) ;
delete from websites where id = 5;
update websites set sal = null where id = 3
DROP TABLE IF EXISTS websites;
CREATE TABLE websites (
id int(11) NOT NULL AUTO_INCREMENT,
name char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
url varchar(255) NOT NULL DEFAULT '',
alexa int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
sal double COMMENT '广告收入',查询语句
分页查询
mysql 的分页是最优雅
案例7. distinct 关键字
DISTINCT 关键词用于返回唯一不同的值。
country char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO websites VALUES
(1, 'Google', 'www.google.cm/', '1', 2000,'USA'),
(2, '淘宝', 'www.taobao.com/', '13',2050, 'CN'),
(3, '菜鸟教程', 'www.runoob.com/', '4689',0.0001, 'CN'),
(4, '微博', 'weibo.com/', '20',50, 'CN'),
(5, 'Facebook', 'www.facebook.com/', '3', 500,'USA');
CREATE TABLE IF NOT EXISTS access_log (
aid int(11) NOT NULL AUTO_INCREMENT,
site_id int(11) NOT NULL DEFAULT '0' COMMENT '网站id',
count int(11) NOT NULL DEFAULT '0' COMMENT '访问次数',
date date NOT NULL,
PRIMARY KEY (aid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO access_log (aid, site_id, count, date) VALUES
(1, 1, 45, '2016-05-10'),
(2, 3, 100, '2016-05-13'),
(3, 1, 230, '2016-05-14'),
(4, 2, 10, '2016-05-14'),
(5, 5, 205, '2016-05-14'),
(6, 4, 13, '2016-05-15'),
(7, 3, 220, '2016-05-15'),
(8, 5, 545, '2016-05-16'),
(9, 3, 201, '2016-05-17'),
(10, 88, 9999, '2016-09-09');
select * from websites
select id, name, url, alexa, sal, country from websites (推荐使用的方式)
select * from websites limit 2,3 ; --从第2条(下标从0开始)开始查,查3条数据
select * from websites limit 3 ; --从第0条(下标从0开始)开始查,查3条数据
select distinct country from websites案例8. where 语句
作为条件筛选, 运算符: > < >= <= <> != =
is null is not null
like in