数据库 表之间的联系
来源:互联网 发布:短信验证码软件 编辑:程序博客网 时间:2024/05/18 09:03
- 通过外键进行关联,外键中的元素必须全部来自对应的主键,且如果删除主键,那么必须先删除相应的外键,这样的设计使数据保证了一致性。但性能下降了很多,当性能比安全性更重要的时候,不要用外键,自己做好相关的权衡。
CREATE TABLE Orders(Id_O int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY (Id_O),FOREIGN KEY (Id_P) REFERENCES Persons(Id_P))
- 一对多体现在JAVA中利用数组。
- domian的JavaBean有时也称为实体类,对应相应的表结构。
- 多对多的关系通过第三方的表来体现,通过两个外键互相约束。
create table TEACHERS(ID int primary key,NAME varchar(100),SALARY float(10,2));create table STUDENTS(ID int primary key,NAME varchar(100),GRADE char(1));create table TEACHERS_STUDENTS(T_ID int,S_ID int,primary key(T_ID,S_ID),constraint T_ID_FK foreign key (T_ID) references TEACHERS(id),constraint S_ID_FK foreign key (S_ID) references STUDENTS(id));
5 . 交叉连接:
两个表的笛卡尔积。
select * from CUSTOMER,ORDERS;select c.ID,c.NAME,o.NUM,O.NUMBER from CUSTOMER c, ORDDERS o;
- 内连接:
在交叉连接的情况下筛选出来满足的某个条件。
隐式:select * from CUSTOMER c,ORDERS o where c.ID=o.CUSTOMER_id;显示:select * from CUSTOMER c inner join ORDERS o on c.ID=o.CUSTOMER_id;
7 . 外连接:
左外:返回左表中的所有记录和满足连接的所有记录。select * from CUSTOMER c left outer join ORDERS o on c.ID=o.CUSTOMER_ID;右外:返回满足连接条件的记录,同时返回右表中的所有记录。select * from CUSTOMER c right outer join ORDERS o on c.ID=o.CUSTOMER_ID;
8 . 子查询:
嵌套查询,利用查询的返回值当做一个条件。
select * from CUSTOMER where ID in (select CUSTOMER_ID from ORDERS ehere PRICE>100);
9 . MySQL常用函数:
SUM():求和
select sum(*) from STUDENT;
COUNT():计数
select count(*) from STUDENT where MATH>=90;
AVG():求平均,字段为NULL,不算值。
select avg(*) from STUDENT where MATH>=90;
MAX():求最大
MIN():求最小
还有一些关于时间和数学的函数。
10 . 分组查询:
按照PRODUCT分组,输出每组的名称和 和。
having用于分组后过滤,可以使用函数,where不可以。
select PRODUCT,sum(PRICE) from PRODUCTS group by PRODUCT having sum(PRICE)>100;
1 0
- 数据库 表之间的联系
- 控件,App.config文件,数据库,之间的联系
- 变换之间的联系
- 数据库表间的联系
- 数据库的联系
- 视图与基本表之间的联系与区别
- 视图和表之间的区别和联系
- 视图和表之间的区别和联系
- MyBatis之多表之间的联系与缓存
- MyBatis之多表之间的联系与缓存
- 数据库之间表之间数据的传送
- 数据库表之间的联接
- beryl,compiz,xgl之间的区别联系
- 文件系统和设备之间的联系
- Struts2与ServletAPI之间的联系
- com,atl,wtl之间的联系
- HashMap HashSet hashCode() 之间的联系
- TCP /IP UDP socket 之间的联系
- 2-1 最近邻规则分类(K-Nearest Neighbor)KNN算法
- 利用位图(Bit Map)和二分查找实现快速查找算法
- 文本文件与二进制文件区别
- OpenCV3.0 或OpenCV3.1 与cuda编译出现LINK: warning LNK4044: 无法识别的选项/LC:/Program Files/XXXXXXXX/lib/x64
- ViewPager、PagerTabStrip、FragmentPagerStateAdapter实现状态栏切换界面
- 数据库 表之间的联系
- 2-2 Python实现最邻近规则KNN分类应用
- 3-1 支持向量机SVM
- malloc,ralloc,calloc
- 如何将csv导入mysql和mysql导出csv
- 3-2 Python实现支持向量机SVM应用
- 树莓派连接隐藏SSID的WIFI
- Android之:了解MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST)
- 搭建基于CentOS+MySQL的EA服务器环境