关系型数据库需要使用设计范式:
第一范式:遵从原子性,属性不可再分,数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。
例如:需要创建一张地址表,存储地址信息。将地址信息划分成多列,省,市,区/县,镇,村
第二范式(2NF):遵从唯一性,非主键字段需完全依赖主键,在第一范式的基础上建立的,满足第二范式必须先满足第一范式。
第三范式(3NF):非主键字段不能相互依赖,在第二范式的基础上建立起来的,数据表中每一列数据都和主键直接相关,不能间接相关。
员工表: 员工编号(主键), 姓名,手机号,性别,年龄,岗位(普通员工,经理,主管,董事长,秘书,部门经理) 工资
以上定义的数据库表除掉主键外,岗位和工资之间有依赖关系,所以员工表不满足第三范式
NBF范式,第四范式,第五范式
表和表之间的关系:
一对一关系,例如班级表与班长表之间为一对一的关系
一对多的关系:
多对多的关系:一定会产生第三张表作为结果表,用于保存两张表产生的结果。将两张表的主键放置第三张表中共同作为第三张表的主键。
查询语句的详细使用:
#查询所有图书的出版社,去除掉重复的数据 SELECT DISTINCT bookaddress FROM tb_book;
#查询所有图书的出版社,
# DISTINCT:用于去除掉重复的数据
SELECT DISTINCT bookaddress FROM tb_book;
#查询图书编号为3的书籍信息
SELECT * FROM tb_book WHERE bookid=3;
#查询图书编号大于3的书籍信息
SELECT * FROM tb_book WHERE bookid>3;
#查询书籍价格小等于50元的书籍信息
SELECT * FROM tb_book WHERE price<=50;
#查询书籍编号不等于3的书籍信息
SELECT * FROM tb_book WHERE bookid<>3;
#查询书籍编号大于等于3小于等于5的书籍信息
SELECT *
FROM tb_book
WHERE bookid BETWEEN 3 AND 5;
#以上用法等价于<= >=
SELECT *
FROM tb_book
WHERE bookid>=3 AND bookid<=5;
#查询书籍编号不在[3,5]之间的书籍信息
SELECT *
FROM tb_book
WHERE bookid NOT BETWEEN 3 AND 5;
#以上用法等价于
SELECT *
FROM tb_book
WHERE bookid<3 OR bookid>5;
#模糊查询(关键字查询) like关键字
#通配符:
#_(下划线,代表一个任意字符)
#%(百分号,代表0个或者多个任意字符)
#查询姓马的作者写的书籍信息
SELECT *
FROM tb_book
WHERE author LIKE '马_';
SELECT *
FROM tb_book
WHERE author LIKE '马%';
#查询书籍名称中“程序”两个字的书籍信息
SELECT * FROM tb_book
WHERE bookname LIKE '%程序%';
#查询书籍名称中不包含“程序”两个字的书籍信息
SELECT * FROM tb_book
WHERE bookname NOT LIKE '%程序%';
#查询出版社为人民邮电,价格大于50元的图书信息
SELECT * FROM tb_book
WHERE bookaddress='人民邮电出版社'
AND price>50;