1.数据库三范式(规划表的原则) NF:normal form
阐明: 严厉意义上,有5NF; 1NF,2NF,3NF,4NF,5NF;BCNF;
榜首范式(1NF)
1NF的界说为:符合1NF的联系中的每个特点都不行再分
1NF是一切联系型数据库的最根本要求,你在联系型数据库办理系统(RDBMS),例如SQL Server,Oracle,MySQL中创立数据表的时分,假如数据表的规划不符合这个最根本的要求,那么操作一定是不能成功的。
A8站源码交易平台
学号 班级 姓名 系名 系主任 课程 语文 高数 英语
只满足1NF会有问题:数据冗余过大,刺进反常,删去反常,修正反常;
冗余: 相同数据重复出现
刺进问题: 3月份新开一个系,但是没有学生和班级; 怎么刺进数据?
删去问题: 某个班级不存在了,学生和系信息怎么办?
修正问题: 假如李四转到英语系,涉及到多条数据更改
第二范式(2NF)
2NF的界说为: 主键依靠,该表里边的其他字段,必须和主键相关;
即一张表格只描述一个对象(主键),其它列名(副键)与对象之间相互彻底依靠。
生产一批香蕉,需要给香蕉进行记载,以便追寻去了哪里;首先给每把香蕉进行编号,然后描述他的色彩,成熟度,香味等;
第三范式(3NF)
3NF的界说为: 主键以外的字段,不能有相互依靠的联系;
比方,你想要对香蕉进行【编号】、【色彩】、【香味】、【香味得分】、【香味评级】这种列名,那么你要另开一张专门描述香味的表格。
比方,你想要做【学号】、【姓名】、【性别】、【班级】、【班主任】这种列名,由于【班主任】受【班级】影响,那么你要另开一张专门描述班级的表格。
2.DQL句子 ; 肯定不会影响我们数据库的存储
语法:SELECT列名FROM表名【WHERE–>GROUP BY–>HAVING–>ORDER BY–>LIMIT】
组合运用,必须依照这个次序来;
SELECT selection_list/要查询的列名称/
FROM table_list/要查询的表名称/
WHERE condition/行条件
GROUP BY grouping_columns/对成果分组/
HAVING condition/分组后的行条件
ORDER BY sorting_columns/对成果排/序
LIMIT offset_start, row_count/成果限制/
2.1 根本查询
select * from test
select 字段1,字段2 from test
select distinct 字段 from test – 字段去重查询,非分组
给字段取别号
select 字段1 别号1, 字段2 别号2 from test
select 字段1 as 别号1 , 字段2 as 别号2 from test
2.2 条件查询; 带上 where,给定条件查询; 条件是可以组合的; where用在 update delete
比较运算符
= != > < >= <= ;
between A and B;
in(值1,值2,值3);
is null;
is not null;
联系运算符
and or not;
判别时,可用算数运算符;
/ %; ifnull(x,0); 假如x是null,用0替换;
2.3 含糊查询
通配符
_ : 代表一个字符
% : 代表任意字符
2.4 排序
order by 字段 asc/desc
order by 字段1 asc, 字段2 desc
2.5 聚合函数
count(); 计算不为null的行数
max(); 求字段的最大值
min(); 求字段的最小值
sum(); 求字段和
avg(); 求字段的平均值
#当时日期 curdate();
#当时时间 curTime();
#当时日期和时间 NOW();
2.6 分组查询
group by 字段; 根据字段来分组;
2.7 分页查询
limit 纪录开始位置,纪录条数;
2.8 衔接查询(联系)
内衔接: inner join
select * from A,B
select * from A inner join B on A.b = B.b – SQL规范语法
外衔接: 左右外衔接
select * from A left join B on A.b = B.b
select * from A right join B on A.b = B.b
案例:
teacher/class/ teacher_class 三表的衔接查询; 查看某某教师负责哪些班级授课
2.9 子查询;
查询里边有查询;
3: 数据库导入导出(sqlyog)
备份:
mysqldump -u root -p lhp>d:lhp.sql
密码过后输入
mysqldump -u root -proot lhp>d:lhp.sql
恢复:
前提:必须先创立数据库
需先登录mySQL,进入指定数据库后执行SQL
Source d:lhp.sql
还有一种方式
Mysql -uroot -proot lhp<d:lhp.sql
A8站源码交易平台