数据类型
mysql提供了整数类型,浮点数类型,定点数类型,日期和时间类型,字符串类型。
- ** 浮点类型**float占用4个字节,double类型占用8个字节,当小数点要精确到小数点10位数以后,就需要选择double类型。
- 日期和时间类型主要有DATE和DATETIME.
- 字符串类型 char(4)表示的数据类型是char,其最大长度是4个字节,char(M)为0-255,而varchar为0-655535,如果经常变化,选择varchar类型。如果需要存储大量字符串,比如文章的纯文本内容,可以选择TEXT系列的字符串类型。BINARY系列字符串类型可以存储少量二进制数据,比如音乐,图片或者视频文件。如果需要存储大量的二进制数据,可以选择BLOG系列字符串类型。
操作表的约束
所谓完整性是指数据的准确性和一致性,而完整性检查就是检查数据的准确性和一致性。Mysql提供了一套机制来检查数据表中的数据是否满足规定的条件,以保证数据表中的数据的准确性和一致性,这种机制就是约束
完整性约束的几个关键字
1. default 设置字段的默认值
2. unique key(UK) 约束段的值是唯一
3. primary key (PK) 设置字段为表的主键
4. auto increment(AI) 约束字的值为自动增加
5. foreign key(FK) 约束字段为外键
设置主键约束
当想用数据库表中的某个字段来唯一标识所有记录时,则可以使用主键约束进行设置。之所以设置主键,是为了便于数据库管理系统快速得查到表中的记录,字段必须满足唯一,非空,可以是单个字段,也可以是多个字段。
设置外键约束
前面介绍的完整性约束都是在单表中进行的,这节介绍的外键约束则保证多个表(通常为两个表)之间的参照完整性,即构建两个表的两个字段之间的参照关系。
设置外键约束的两个表之间会有父子关系,即字表中的某个字段的取值范围由父表决定。例如在表示一个部门和雇员之间的关系,即每个部分有多个雇员。首先要有两个表,部门表和雇员表,然后雇员表中有一个字段表示部门编号的字段deptno,其以来于部门表的主键,这样字段deptno就是雇员表的外键,通过该字段部门表和雇员表建立了关系。
设置外键约束的字段,必须依赖于数据库库中已经存在的父表的主键,同时外键可以设置为null
单表数据查询
1.带IN关键字的查询
IN关键字可以判断某个字段的值是否在指定的集合中
mysql> SELECT * FROM employee_tbl
-> WHERE daily_typing_pages IN ( 250, 220, 170 );
2.带BETWEEN AND的范围查询
BETWEEN AND关键字可以判断某个字段的值是否在制定的范围内
SELECT * FROM user WHERE uid BETWEEN 2 AND 5
3.带LIKE的字符匹配查询
LIKE属于比较常用的比较运算符,通过它可以实现模糊查询。它有两种通配符“%”和下划线“_”。
下面的例子是从tutorials_tbl表中获取作者的名称以 jay 结尾的所有记录
4.带AND的多条件查询
AND关键字可以用来联合多个条件进行查询。
select * from tb_login where user=’mr’ and section = ‘php’
带OR的多条件查询
select * from tb_login where user=’php’ orsection = ‘程序开发’
用distinct关键字去除结果中的重复行
select distinct name from tb_login
用ORDER BY 关键字对查询结果排序
用ORDER BY可以对查询结果进行升序(ASC)或者降序(DESC)排列。
select * from tb_login order by id desc
用GROUP BY关键字分组查询
通过GROUP BY字句可以将数据划分到不同的组中,实现对记录的分组查询。
我们要分页显示打印每个人的总数。这是通过使用联聚合函数GROUP BY子句如下:
多表数据记录查询
在一开始使用关键字where子句中只涉及到一张表。在具体应用中,要实现在一个查询语句中显示多张表的数据,这就是所谓的多表数据记录连接查询,简称连接查询。
连接查询效率比较低,所以mysql提供了连接查询的替代操作–子查询操作
关系数据操作
- 并(union)
- 笛卡儿积
- 连接(join)