Mysql学习笔记

数据类型

mysql提供了整数类型,浮点数类型,定点数类型,日期和时间类型,字符串类型。
- ** 浮点类型**float占用4个字节,double类型占用8个字节,当小数点要精确到小数点10位数以后,就需要选择double类型。
- 日期和时间类型主要有DATEDATETIME.
- 字符串类型 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 结尾的所有记录

like查询

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提供了连接查询的替代操作–子查询操作

关系数据操作

  1. 并(union)
  2. 笛卡儿积
  3. 连接(join)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值