前往顾页
以后地位: 主页 > 收集编程 > Jsp实例教程 >

数据库体系工程师学习条记汇总

时候:2011-03-26 00:25来源:知行网www.zhixing123.cn 编辑:麦田守望者

软考--数据库体系工程(数据库部分)学习条记.因事情上利用的是MySQL,学习就没无益用课本上的SQL SERVER。当然SQL语法是差不多了。
起首建三张表:
CREATE TABLE `c` (
`CNO` int(11) NOT NULL default '0',
`CNAME` varchar(20) default NULL,
`TNAME` varchar(12) default NULL,
PRIMARY KEY (`CNO`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=REDUNDANT;
CREATE TABLE `s` (
`SNO` int(11) NOT NULL default '0',
`SNAME` varchar(20) default NULL,
`AGE` int(11) default NULL,
`SEX` smallint(6) default NULL,
PRIMARY KEY (`SNO`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=REDUNDANT;
CREATE TABLE `sc` (
`SNO` int(11) NOT NULL default '0',
`CNO` int(11) NOT NULL default '0',
`SCORE` decimal(3,2) default NULL,
PRIMARY KEY (`SNO`,`CNO`),
KEY `fk_c` (`CNO`),
CONSTRAINT `fk_c` FOREIGN KEY (`CNO`) REFERENCES `c` (`CNO`),
CONSTRAINT `fk_s` FOREIGN KEY (`SNO`) REFERENCES `s` (`SNO`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=REDUNDANT;

OK,下面放一些记录出来:
INSERT INTO `s` VALUES (1,'jarwang',26,NULL);
INSERT INTO `s` VALUES (2,'IH',20,NULL);
INSERT INTO `s` VALUES (3,'josin',2,NULL);
INSERT INTO `c` VALUES (1,'os','liu');
INSERT INTO `c` VALUES (2,'db','xiao');
INSERT INTO `c` VALUES (3,'mis','test');
INSERT INTO `sc` VALUES (1,1,9.99);
INSERT INTO `sc` VALUES (1,2,5);
INSERT INTO `sc` VALUES (1,3,2);
INSERT INTO `sc` VALUES (2,1,9.99);
INSERT INTO `sc` VALUES (2,2,9.99);
INSERT INTO `sc` VALUES (3,3,2);

好了,详细的SQL操纵语句开端:
1、计数count
计较行数:select count(*) form s
计较不反复的行数:select count(distinct sno) from s
2、In()函数
查询学习了os的门生号:
2.1 利用连接查询:
select sno from sc inner join c on sc.cno=c.Cno where cname="os"
2.2 利用嵌套查询:
select sno from sc where cno in(select cno from c where cname='os')
3、some()、unique()
调集成员算术比较,mysql没有供应此关头字。只用利用in了
4、exists()
谓词,也就是元组关系运算
select sno from sc where exists (select * from c where cname='os')
与2.1的成果是一样的。
5、交集
标准的SQL语句:
select sno from s intersect select sno from sc
但mysql 没有intersect这个关头字。要取交集可经由过程in或exists来实现
例:取sc与s表中的sno的交集
select sno from s where sno in(select sno from sc)
当然这类求法,没有甚么实际意义!因为交集可以由差集来得,而差集又可由in来实现,所以很多数据库都没供应intersect、except.
6、导出表与临时视图
导出表:
select sno from sc,
(select cno from c where cname='os') as result(t)
where cno in result.t
临时视图:
with result(test) as select cno from sc
select * from c where c.cno=result.cno
可惜mysql5还不支撑这两种写法。
7、domain
建立同必然义的列属性
create domain test varchar(20);
可惜mysql也不支撑这个写法。提及也是,mysql这么首要服从竟然也支撑,反而 支撑enum,set调集类别。真是怪事。
 

软考--数据库体系工程(数据库部分)学习条记.上一篇讲的得SQL的标准语法,这是第二篇首要讲嵌入式SQL.
1、起首下载tc2.0(这个80年代的东东,现在还不好找,可以鄙人面这个网站找看烤纶为甚么要用这么原始的东西,主如果为了更好了解SQL与编程说话的接口。
tc2.0解压后设置一下目次便可利用.

测试一下,可否一般运行tc2.0
test.c
#include <stdio.h>
void main(){
printf("welcom c program");
}
2、加载mysql.h包,这个在装置MYSQL5时,挑选装置include c,便可在mysql的装置目次找到mysql.h这个文件。复制到tc的INCLUDE目次下。

------分开线----------------------------
标签(Tag):学习条记 数据库体系工程师
------分开线----------------------------
保举内容
猜你感兴趣