这是第二个教训的数据库,你职位。 几乎是相同的。 在第一类,张贴已经有一些3或4个班级在大学,基本上都与同样的事情。 综述有点这里的一切。 理解如果你第一次的教训,所以你没有这个麻烦。 什么我将在这里仅仅几年,给一些提示为每个。 若你没有看到或不了解头等舱,只是来看看在这里再次。

我不知道我是否说,但在大学,不幸的是,使用的M $ SQL Server的所有教训,我认为一个巨大的不负责任和不尊重。 不负责任的,因为我认为高校应教与自由软件,特别是公共大学。 因此,你可以摆脱一个免费微软软件免费月底时,他们毕业的学生,他们将不得不付出代价,如果他们希望利用它在其公司或类似。 不尊重,因为在M $总是有一个狂热不遵守标准和让事情完全不同于所有其他人(可能阻碍移民和维持其垄断地位) ,并没有结束,并建立学生的能力有限,使用其他软件。 若你想教使用的SQL Server确定,但至少应该有技巧教他们如何做事情在其他银行,如MySQL的作为,我一个人谁相信自由和自由软件的研究,并尽一切使用工具自由的。 对于现在的几件事情我必须改变我研究银行在MySQL ,但我知道,该学院将花费高达触发和其它东西,将复杂的时间来考虑使用其他软件比的M $ 。 在这种情况下我会尽量正确地执行这些东西在MySQL和提供了一种方法后这里的一切的博客(或者只是停下来的经验教训后的银行) 。 现在我想说的教训,银行在这里博客时将使用MySQL的。 哦,我把图片海豚,因为海豚是象征的MySQL 
我还是停止,并开始谈论同一个教训!
首先,我们开放的MySQL如果该服务没有启动只需键入一个终端:
须藤/等等/ init.d /数据库启动
在MySQL的,我们将创建一个所谓的银行类。
创建数据库类;
现在我们将选中它:
使用类;
创建表
现在,让我们创建表,用它做练习。 这些课程教或不打算建立详细的表格,因此我将不谈论任何关于他们,只要到“配方的蛋糕”这里不是浪费时间在创建表,我们就可以专注于演习。
创建表客户(
cli_codigo整数非空主键,
cli_nome varchar ( 40 )没有空,
cli_cpf varchar ( 12 )不空唯一) ;
创建表厂商(
ved_codigo整数非空主键AUTO_INCREMENT ,
ved_nome varchar ( 40 )没有空,
ved_cpf varchar ( 12 )零独一无二的没有) ;
创建表要求(
ped_numero整数非空主键AUTO_INCREMENT ,
ped_data不空日期时间,
cli_codigo整数不空,
ved_codigo整数不空,
外键( cli_codigo )凡客户( cli_codigo )
外键( ved_codigo )凡卖方( ved_codigo ) ) ;
创建表产品(
prd_codigo整数非空主键AUTO_INCREMENT ,
prd_descricao varchar ( 50 )没有空,
prd_valor小数点( 7.2 ) ,
prd_qtd整数) ;
创建表itens_pedidos (
ped_numero整数不空,
prd_codigo整数不空,
itp_qtd整数不空,
itp_valor小数点( 7.2 )不空,
主键( ped_numero , prd_codigo )
外键( ped_numero )凡申请( ped_numero )
外键( prd_codigo )凡产品( prd_codigo ) ) ;
进入资料表
插入到客户价值( 1 , '超人' , 100 ) , ( 2 , '哎呀洛卡' , 200 ) , ( 3 , ' Batiman ' , 300 ) ;
插入到卖家的价值观( 1 , '超级滴灌' , 10 ) , ( 2 , '超级鹿' , 20 ) , ( 3 , '超级酒' , 30 ) ;
插入到产品的价值( 1 , '半岛' , 3.2 , 1.5 ) , ( 2 , '分' , 0.75 , 50 ) , ( 3 , '光盘' , 1.15 , 100 ) ;
插入到应用的价值( 1 , “ 2007/11/08 10:00:00 ” , 1,1 ) , ( 2 , “ 2007/12/08十一点00分00秒” , 2,2 ) ;
插入itens_pedidos值( 1 , 1 , 20 , 1.2 ) , ( 1 , 2 , 10 , 30 ) , ( 1 , 3 , 15 , 0.78 ) , ( 1 , 4 , 20 , 3.5 ) , ( 1 , 5 , 10 , 0.6 ) , ( 1 , 6 , 20 , 1.0 ) , ( 2 , 2 , 30 , 2.0 ) , ( 3 , 3 , 5 , 1.99 ) ;
不要修复的名称和产品使用这里。 我使用的是通过在课堂上。 我有更多的好幽默的时间挑选的名字客户,供应商,产品,等等(可能使用的名字儿童的女佣,砖,足球运动员...名称Bucetildes等等Robisvaldieldson初中) 。
练习
现在一切就绪,让我们开始做一些工作。 这些前,理由很简单。 几乎是同样的事情是通过一流。 只有加入磋商(交界) 。
- 查看所有申请
- 阅读的名字客户端的请求第2
- 征求客户的姓名和名称的卖方要求1 。
- 阅读的名字所有的产品和销售数量的申请2 。
决议演习
选择*从应用;
选择c.cli_nome , p.ped_numero
从客户ç ,磷的要求
在c.cli_codigo = p.cli_codigo与p.ped_numero = 2 ;
选择c.cli_nome , v.ved_nome
从客户ç电压供应商,应用p
在c.cli_codigo = p.cli_codigo与v.ved_codigo = p.ved_codigo与p.ped_numero = 1 ;
选择p.prd_descricao , i.itp_qtd
从产品磷,字母i itens_pedidos
在p.prd_codigo = i.prd_codigo与i.ped_numero = 2 ;
在你的后续...
在今后几年将需要使用SUM计数,因此,试图解释一下这些职能在这里您遵循。
杨森
此函数返回的总和体现。 您还必须使用专家组当您使用款项。 他的作品如下:难道我们问到,然后结合我们选择栏目与工作组的。
例如:如果我们有一个列名为这个数字使任命返回1 ,第1和第2 ,利用专家组在此栏中,数字分组和反复的查询将返回1 , 2 。 随着数字一再团体,杨森除了我们要问的话, somou栏被组合在一起。
计数
帐户的行数或价值线。 这取决于你。 只要与jeitinho问 
例如,如果我们有表hinnies (是的,只是想象的领域: jum_codigo , jum_nome , jum_cor )和4本表中hinnies注册,通过查询使用计数( * )作为如下:
选择计数( * )由hinnies ;
将有一个帐户有多少hinnies登记的总额。 显然, 4号返回。
现在想象一下,我们有2个hinnies不同,但相同的名称。 我们可以做我们的咨询更具体的组使用:
选择计数( * )
从hinnies
jum_nome的群体;
因此,如果我们hinnies 4 , Virgulino电话,另一个电话穆拉和2个战士应邀Calvacanti塞韦里诺,查询将返回第3行,显示第1 ,第1和第2 ,就是表明,我们有两个hinnies名字平等的。
集团的
我认为,没有必要谈论很多有关专家组,因为我们使用上面的两个例子。 他汇集了集会,造成数据的一个或多个列。
更多演习
现在,我们已经看到总而言之,计数和GROUP BY我们可以转移到未来几年在这些职能使用。
- 征询总价值的应用
- 阅读一些销售每个产品
- 阅读法案(全部售出)的每个产品
解决这些演习
选择i.ped_numero ,总结( i.itp_qtd * i.itp_valor )
从P的应用,我itens_pedidos
在p.ped_numero = i.prd_codigo
i.ped_numero的群体;
p.prd_codigo选中,伯爵( * )
从产品磷,字母i itens_pedidos
在p.prd_codigo = i.prd_codigo
i.prd_codigo的群体;
选择p.prd_codigo , p.prd_descricao ,总结( i.itp_qtd * i.itp_valor )结算
由产品磷,字母i itens_pedidos
在p.prd_codigo = i.prd_codigo
组p.prd_codigo , p.prd_descricao ;
小约的ORDER BY并
ORDER BY子句(如名称的理解)服务进行排序的记录,升序或降序进行排序(您选择) 。 由默认值显示在升序排列。 我们可以利用描述后,说我们的命令在我们的协商排序降序排列。
例如:我们有自己的时间表hinnies做同样的查询,已被证明,但这个时候,我们要排序的名称骡子。 通常情况下,将字母顺序进行排序,也就是说,如果使用jum_nome的ORDER BY的famosíssima穆拉战士出现在我们的婴儿驴塞韦里诺卡瓦尔康蒂,作为M的信收到这封信由 但是,如果我们这样做塞韦里诺第一次出现,这是一个查询这样的:
选择计数( * )
从hinnies
组jum_nome
命令jum_nome递减;
在已经服务时,你需要做一些测试合乎逻辑的,我们不能用在哪里。 例如,在同一表hinnies ,我们用例子来计数( * )和组jum_nome以驴看到了相同的名称作为另一项。 假如我们想要做的测试显示在协商hinnies我们有多少相同的名称出现两次或两次以上的例子中,我们使用听取了作为如下:
选择计数( * )
从hinnies
group by jum_nome
having count(*) >= 2;
Devemos lembrar que o HAVING é aplicado em cima do agrupamento (GROUP BY). O HAVING é como se fosse um WHERE do agrupamento. Por isso não podemos usar HAVING sem GROUP BY (a menos que estejamos querendo um erro na consulta, e acho que ninguém quer isso :P).
Últimos exercícios desta aula (prometo)
- Consultar a quantidade vendida de cada produto, apresentando em ordem decrescente
- Consultar os produtos que foram vendidos em 2 ou mais pedidos
- Consultar a quantidade de pedidos de cada cliente
Resolução dos últimos exercícios
select p.prd_codigo, p.prd_descricao, sum(i.itp_qtd) qtd_vendidas
from produtos p, itens_pedidos i
where i.prd_codigo = p.prd_codigo
group by p.prd_codigo, p.prd_descricao
order by qtd_vendidas desc;
select p.prd_codigo, p.prd_descricao, count(*) vendas
from produtos p, itens_pedidos i
where i.prd_codigo = p.prd_codigo
group by p.prd_codigo, p.prd_descricao
having count(*) >= 2
order by vendas desc;
select c.cli_codigo, c.cli_nome, count(*) qtd_pedido
from pedidos p, clientes c
where c.cli_codigo = p.cli_codigo
group by c.cli_codigo, c.cli_nome;
Bom galera, por enquanto é só! Podem recolher os materiais e irem para o recreio
Até a próxima aula!
Update : Para o xarope do Danilo que comentou aqui, vou criar um link para o site do professor Sérgio da onde tem provavelmente as mesmas tabelas… O xarope vem comentar besteira aqui no blog e falar que fiz ctrl-c e ctrl-v do site do professor, mas na verdade ele apenas está mostrando ser semi-analfabeto com seu comentário, pois foi incapaz de ler o que disse que usei as tabelas e nomes que foram passados na aula pelo mesmo professor do site que me dá aula também e na época eu nem lembrava o endereço do site dele ou sabia que estaria no site essa mesma tabela. Danilo querido, larga de ser xarope e não reclama, pois eu disse que foi a tabela passada na aula. Aprenda a ler com calma antes de sair escrevendo besteira.
Ah, o site do professor Sérgio é esse: http://www.ensinalegal.com.br
Prontinho Danilo… Ficou feliz?
Technorati Tags: SQL , Banco de Dados , MySQL , database , banco , aula , segunda , segunda aula , join , junção , agrupamento , group by , cláusula , jumento , severino cavalcanti , mula guerreira , cedral , cedrar , vô kiko , sum , order by , Devemos lembrar que o HAVING é aplicado em cima do agrupamento (GROUP BY). O HAVING é como se fosse um WHERE do agrupamento. Por isso não podemos usar HAVING sem GROUP BY (a menos que estejamos querendo um erro na consulta, e acho que ninguém quer isso :P).
Últimos exercícios desta aula (prometo)
- Consultar a quantidade vendida de cada produto, apresentando em ordem decrescente
- Consultar os produtos que foram vendidos em 2 ou mais pedidos
- Consultar a quantidade de pedidos de cada cliente
Resolução dos últimos exercícios
select p.prd_codigo, p.prd_descricao, sum(i.itp_qtd) qtd_vendidas
from produtos p, itens_pedidos i
where i.prd_codigo = p.prd_codigo
group by p.prd_codigo, p.prd_descricao
order by qtd_vendidas desc;
select p.prd_codigo, p.prd_descricao, count(*) vendas
from produtos p, itens_pedidos i
where i.prd_codigo = p.prd_codigo
group by p.prd_codigo, p.prd_descricao
having count(*) >= 2
order by vendas desc;
select c.cli_codigo, c.cli_nome, count(*) qtd_pedido
from pedidos p, clientes c
where c.cli_codigo = p.cli_codigo
group by c.cli_codigo, c.cli_nome;
Bom galera, por enquanto é só! Podem recolher os materiais e irem para o recreio
Até a próxima aula!
Update : Para o xarope do Danilo que comentou aqui, vou criar um link para o site do professor Sérgio da onde tem provavelmente as mesmas tabelas… O xarope vem comentar besteira aqui no blog e falar que fiz ctrl-c e ctrl-v do site do professor, mas na verdade ele apenas está mostrando ser semi-analfabeto com seu comentário, pois foi incapaz de ler o que disse que usei as tabelas e nomes que foram passados na aula pelo mesmo professor do site que me dá aula também e na época eu nem lembrava o endereço do site dele ou sabia que estaria no site essa mesma tabela. Danilo querido, larga de ser xarope e não reclama, pois eu disse que foi a tabela passada na aula. Aprenda a ler com calma antes de sair escrevendo besteira.
Ah, o site do professor Sérgio é esse: http://www.ensinalegal.com.br
Prontinho Danilo… Ficou feliz?
Technorati Tags: SQL , Banco de Dados , MySQL , database , banco , aula , segunda , segunda aula , join , junção , agrupamento , group by , cláusula , jumento , severino cavalcanti , mula guerreira , cedral , cedrar , vô kiko , sum , order by , having , order , where , insert , consulta , jumentos , mula , código , codigo , id , cod , exercícios , exercício , golfinho , dolphin , faculdade , escola , estudos , post , Software Livre , liberdade , blog , M$ , SQL Server , $QL $erver , inserir , tabelas , table
Powered by ScribeFire .
Como havia dito, tive um pequeno acidente de carro que não está sendo tão pequeno assim para o bolso. Esse acidente está me atrapalhando PRINCIPALMENTE a arrumar tempo para escrever no blog. Quanto antes eu conseguir pagar, antes consigo voltar a escrever. Se você é leitor do blog, gosta dos artigos e quer que eu volte logo a postar frequentemente, doações por paypal serão bem vindas :D Tags: Aulas by Terramel
9 Comments »