好文档 - 专业文书写作范文服务资料分享网站

数据库学习入门数据库基础入门 

天下 分享 时间: 加入收藏 我要投稿 点赞

select a.name,a.age,b.name,b.address from student as a, school as b where a.daih=b.id; 外键约束( foreign key) 如何创建外键

foreign key:定义子中的列为外键 references:标记外键所要参考的父表和列

on delete cascade:允许在删除父表的列的同时,删除子表的列 //在InnoDB中支持

create datebase fordb; use fordb; 创建父表

create table school(id int not null auto_increment,name varchar(20),primary key(id))engine=innodb; insert into school(name) values('紫琅学院'); 创建 子表

create table student(id int not null auto_increment,name varchar(20),schoolid int,primary key(id),foreign key(schoolid) references school(id) on delete cascade);

insert into student(name,schoolid) values('张三',1); E-R模型

概述:设计数据库时,通常采用\实体关系模型“--E-R模型 软件开发流程:

需求调研(设计功能,收集数据) 与最终用户进行确定 数据库的设计 控制多余数据

那么在最后,数据库设计者确定表、不同表之间的关系以及每个表之间的关系,通常使用”E-R模型“,它将整个系统看作彼此相关的实体组成

实体:通常用于表示 能够被清晰识别的人、地点、事物、对象、事件

实体关系图:如果需要 基于‘E-R’模型建立数据库模型,需要标识实体,实体的属性、以及实体之间的关系。那么通常用‘E-R’图来表示 实体之间的三种类型:1:1 1:N 或N :1 M:N

数据库设计员确定的实体被转换为表,而其属性则成为相应 表中的字段(列)

如何控制冗余数据:

一般来说通过数据库的范式理论 设计数据库的范式来 控制冗余 共有五个范式,一般达到第三范式即可

第一范式:对于表中的每一行,必须且仅仅有唯一的行值,在一行中的每一列仅有唯一的值并且具有原子性

第二范式 :要求 非主键列是主键的子集,非 主键列活动必须完全依赖整个主键。主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一旦创建 ,主键 无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系。 第三范式:要求非主键列互不依赖

第四范式:禁止主键列和非主键列一对多关系不受 约束 第五 范式 :将表分割成尽可能 小的块,为了排除在表中所有的冗余

MYSQL的聚合函数 1、最大值 找出EQ最高的学生

select name ,eq from student where eq=(select max(EQ)from student);

SELECT MAX(article) AS article FROM shop; 2、最小值 找出EQ最低的学生

select name,min(EQ)from student; count()//统计 查询出的记录总数 3、查询出学生的总条数

select count(name)from student; avg()//求平均值 4、查询学生EQ的平均值

select avg(EQ) from student; sum()//求和 5、查询学生EQ的总和 select sum(EQ) from stu; 修改字段类型

alter table student modify sex char(5); 增加列

alter table student add address varchar(50); 删除列

alter table student drop address; 修改列的名称

alter table student change name names varchar(20); 修改表的名字

rename table student to stu; MYSQL 之表连接

内链接(inner join):又为等值连接,因为他将两个表中的公共字段有相等的值(记录)连接起来,这是最常用的连接。一个表引用还被称为 查询显示:订单编号,顾客姓名,物品名称

select cases.id,user.name,goods.name from cases,user,goods where cases.user_id=user.id and cases.goods_id=goods.id;或 select cases.id,user.name,goods.name from cases inner join(user,goods) on(user.id=cases.user_id and goods.id=cases.goods_id);或

select cases.id,user.name,goods.name from (cases inner join user on cases.user_id=user.id) inner join goods on cases.goods_id=goods.id;或

select cases.id,user.name,goods.name from user inner join(cases inner join goods on cases.goods_id=goods.id) on user.id=cases.user_id);

左连接:显示sql语句中left join 左边表中的所有记录,即使在left join 右边的表中没有满足连接条件的数据也被显示。当满足连接条件时,left join 右边的表中的相应的记录与left join左边表中的相应记录结合显示。

查询出:学生的编号,学生姓名 ,学生学校

select student.name,student.id,school.name from student left join school on student.school_id=school.id;

右连接:与左连接相对应,他显示sql语句中right join 右边表中的记录,即使在right join 左边没有的记录也被显示。当满足条件时。right join左边表中相应记录将与right join右边的表中相应记录进行结合显示。通常左连接和右连接显示的内容是一样的。

select student.name,student.id,school.name from student right join school on student.school_id=school.id; left join 以左边的表查询为主 right join 以右边的表查询为主 示例:

student left join school

那么student就为左表。school就为由表 MYSQL之视图

视图:它可以访问一个或多个表中的数据,是从一个或多个表中派生出的数据对象(虚表) 视图的特点:

1、将复杂的查询简单化

2、提供安全机制,它保证用户只可以看得到的数据,系统中真实的表是不可被存取的(现都支持更改数据) 创建视图:

create view case_view as select cases.id as '订单编号',user.name as '顾客姓名',goods.name as '物品名称' from user inner join(cases inner join goods on cases.goods_id=goods.id) on user.id=cases.user_id; 注意点:

视图属于数据库,在默认情况下,将在当前数据库创建新视图。要想在给定数据库中明确创建视图。创建时,应将名称指定为 db_name.view_name

mysql>create view test.v as select *from t; 视图必须具有唯一的列名,不得有重复,就像基表那样。 修改视图:alter view viewname as SQL; 删除视图:drop view viewname;

alter view case_view as select cases.id as '编号',user.name as '姓名',goods.name as '名称' from user inner join(cases inner join goods on cases.goods_id=goods.id) on user.id=cases.user_id; 数据字典

数据库的数据字典---实际上是一个数据库 它记录着数据库管理系统中的其他数据库的操作

数据库学习入门数据库基础入门 

selecta.name,a.age,b.name,b.addressfromstudentasa,schoolasbwherea.daih=b.id;外键约束(foreignkey)如何创建外键foreignkey:定义子中的列为外键references:标记外键所要参考的父表和列ondel
推荐度:
点击下载文档文档为doc格式
4k30299deg0ne2d1fb34
领取福利

微信扫码领取福利

微信扫码分享