PDA

Ver Verso Completa : [PHP] Aula 03 - MySQL – o BD FREE



CCV_HEALbra
25-06-2008, 05:10 PM
MySQL o BD FREE

Vamos comear uma aula agora nova...e diferente do HTML ou programao...o uso de Banco de Dados...

Umas das ferramentas mais importantes para mim, pois sem bd o site fica simplesmente improgramvel...

Pense voc fazendo um site...vai ter notcias?
Tem BD... vai ter mural de recados? Tem BD...vai ter calendrio? Tem BD...

Voc quer um site sem BD? No vai ter praticamente nada...(exagero!!..hahaha)

Existe vrios BDs... access, paradox, oracle, MySQL, SQL server entre outros...o mais usando com o php eh o MySQL...inclusive eu nunca tive interesse em tentar usar com outro..:(

Vamos instalao...baixe o arquivo:

http://mysql.mirrors.hoobly.com/Downloads/MySQL-5.0/mysql-5.0.51a-win32.zip

no vou instal-lo aqui...pois tenho ele no linux..e nao curto sujar meu pc...:D:D

mas vou passar um passo a passo com imagens e tudo..caso no entendam postem ai!!

http://www.tanguay.info/wamp/images/workshops/installPhp5/mysqlInstallFirstScreen.png

Siga a seta!!
Ahhaha

http://www.tanguay.info/wamp/images/workshops/installPhp5/mysqlTypicalNext.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/mysqlInstallButton.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/waitForMysqlInstall.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/mysqlInstallSkipSignup.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/mysqlConfigureWindow.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/firstScreenConfigMysql.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/chooseDetailedConfiguration.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/chooseDeveloperMachine.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/chooseMultifunctionalDatabase.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/InnoDBOption.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/decisionSupport.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/enableTcpIp.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/chooseMultilinguism.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/installAWindowsService.png

CCV_HEALbra
25-06-2008, 05:10 PM
nico lugar que vou colocar uma observao ..nao precisa ser mysql41...pode ser s mysql ok??

xD

http://www.tanguay.info/wamp/images/workshops/installPhp5/modifySecuritySettings.png

Aqui vc vai colocar a senha do root...

http://www.tanguay.info/wamp/images/workshops/installPhp5/clickExecute.png

http://www.tanguay.info/wamp/images/workshops/installPhp5/clickFinishMysql.png

Algumas partes do tuto pode mudar..por causa da verso..mas a base isso..caso vc queria seguir com explicao e tudo mais vc pode ir no seguinte site:

http://www.tanguay.info/wamp/installPhp5.php5?step=13

eu creio que s pelas imagens voc consiga instalar!!

Bom..com isso seu MySQL est instalado..vamos agora brincar com ele via DOS!!

Abra o prompt de comando...(iniciar>>executar>>digite cmd e aperte enter!)

Navegue at a pasta do MySQL


CD c:\arquivos de programa\MySQL\MySQL Server 4.1\bin


Digite: mysql –u root –p

Ele vai pedir a senha root... aquela l em cima q eu mencionei!!

Digite...ai vai aparecer assim no CMD:


Mysql>

Bom...pra quem no sabe tem algumas estruturas em banco de dados!!

Tem o Programa banco de dados (no nosso caso o mysql), depois vem o banco de dados (vc pode ter infinitos banco de dados..ou seja..um exemplo claro...se vc fosse um servidor...seria um bd para cada site), dentro dos BD’s (ou DB’s = Banco de dados) tem as tabelas....e dentro dela os Registros (ou Rows)..

:D

Temos o primeiro...o programa..agora vamos criar nosso primeiro BD!


CREATE DATABASE demo;

Digita isso ai!!

Voc acabou de criar a BD chamado demo..
Para acess-lo colocamos o seguinte cdigo:


use demo;

Agora vamos criar uma tabela para cadastrar os nossos clientes...

Nela vai ter nome e sobrenome!!


CREATE TABLE clientes (nome varchar[50], sobrenome varchar[50]));

Bom, tem uma coisa legal de se falar..que assim..o MySQL no trabalha e ao mesmo tempo trabalha com case sensitive...mas como assim?

Bom...o CREATE TABLE, CREATE DATABASE....e assim vai...nao precisa ser maisculo..mas eu sempre gosto de colocar para quem tenha uma linha de raciocnio e organizao a seguir!

Mas j os campos, como nome e sobrenome, tem casesensitive..se vc colocar Nome..chamar de Nome! (ixa..agora bateu a dvida..mas eu acho q isso mesmo!!)

:D

Bom..eu simplesmente joguei o cdigo..mas vamos a explicao
Nome e Sobrenome so os nomes dos campos a serem usados..

O varchar eh o tipo do campo..

Tem vrios tipos..

Uma tabela bsica (para mim) assim:

CREATE TABLE cliente (id int(3) unsigned zerofill NOT NULL auto_increment, data timestamp NULL default NULL, razao_social text, tipo text NOT NULL, cnpj text, nome_fantasia text, ramo_negocio text, site text, email text,endereco text, bairro text,cep text, cidade text,estado text, pais text, telefone text, celular text, fax text, pessoa_contato text, senha text NOT NULL, habilitado text NOT NULL, PRIMARY KEY(id));


Bom..e ser tabelas desse jeito que vamos construir para podermos programar em php..

:D

Observe que agora usei um campo chamado id, no caso ele eh int (inteiro) e s pode ter 3 carcteres... e ele no pode ser nulo e ele se auto incrementa..ou seja..eu no coloco valor para ele!!

Depois disso vem data...devemos sempre marcar a data de registro do nosso cliente..e a data ela tratada com o campo timestamp!!

Ele sempre vai mostrar a data de um jeito universal..ou seja d-m-Y...mais pra frente..quando fizermos uma consulta veremos que podemos chamar ele mascarando no prprio SQL...algo como:


SELECT date_format(data, ‘%d/%m/%Y’) as data2 FROM cliente

Com essa mascara..ele mostrar do jeito brasileiro: d/m/Y!!1
:D

Bom..geralmente tem-se um critrio de colocar campos numricos como int e talz...mas como eu sou muito ruim com banco de dados..sempre d erro por falta de caracteres ou algo do tipo..ento eu taco td text..q meio q um campo ‘universal’...aceita tudo!!

Mas creio ser meio errado isso..devia ser CNPJ, cep, telefone, celular, fax td int!!
:D

No final tem assim:


PRIMARY KEY (`id`)

Isso vai dizer que a nossa tabela tem uma marcao...ou seja..o row nosso vai ser marcado sempre pelo campo id...

Vamos supor q eu inseri o cliente CCV!!

O id vai pegar o n 1 sozinho..e esse n 1 vai marcar o CCV na minha table!

Se eu adicionar mais um..ele vai pegar n2..marcando o prximo como 2!
xD

caso vc faa no prompt:


INSERT INTO clientes values ('Ket','GAY');

Ou ento:


INSERT INTO clientes values ('DS','Bixona declarada do ccv!');

Ele ir inserir no seu bd, mais especificamente na sua tabela clientes..o seu registro...com os valores citados l!!

Faa Tb:


SELECT * FROM clientes;

Vai mostrar todos os registros!!
xD

caso queria somente o campo nome:


SELECT nome FROM clientes;

Bom..creio que isso pode te dar uma pequena base para chegar no nosso principal intuito..o PHP!!

Com isso vc fica livre pra pesquisar o resto a vontade!!

Tem o site do prprio MySQL q tem uma giga consulta pra ti virar nerd!!

http://dev.mysql.com/doc/refman/4.1/pt/index.html

Eu particulamente nunca consegui usar!!

Hahaha

Agora um bom site:
HTTP://forum.imasters.com.br

No vou abordar phpmyadmin agora pq preciso do PHP e do Apache e esqueci desse detalhe..
Mas eu queria ver uma pedir a seguinte tarefa no DOS:

http://www.macoratti.net/frmforn.gif

Queria que vocs montassem um bd chamado site com uma tabela chamada fornecedores com os campos acima.. (da imagem) e coloque tres registros!!

Quero a SS do cmd mostrando os registros aqiu!!
xD

Sobre as IDE's usadas....tem duas que o povo gosta:

http://www.navicat.com/ -> The best one!
http://www.sqlmanager.net/products/mysql/manager -> boa tambm..mas nao gosto muito!!

bom...so fceis e simples de mexer...nao queria q vcs baixassem...por isso nem vou explicar..pois quero q vcs mexam no DOS primeiro...ai depois de pronto vcs me cobram o tuto do navicat q eu fao questo de colocar!!

apesar q vamos usar s o php myadmin!!
xD

at a prxima!

CCV_iStiu
25-06-2008, 10:46 PM
***** mermo, j encalhei :D

aqui da erro o.O

CREATE TABLE clientes (nome varchar[50], sobrenome varchar[50]));

http://img70.imageshack.us/img70/7895/imagemhi8.jpg

CCV_Pinto
25-06-2008, 11:00 PM
still, usa parenteses ao invs de colchetes, ou seja, faa assim:

create table clientes (nome varchar(50), sobrenome varchar(50));

soh explicando q os diferentes gerenciadores de banco de dados podem diferir um pouco em relao aos comandos SQL...

apesar do SQL ter a sua especificao padro, um ou outro pode interpretar alguma coisa de modo diferente...

abraos

CCV_HEALbra
26-06-2008, 08:10 AM
aehuaehhaeu

vc tirou o easy still??

CCV_iStiu
26-06-2008, 11:20 AM
tirei n, aquela porquera l
asghsglkasgasg

mano, essa paradinha do DOS MUITO CHATA de usar -.-
quando tu passa pra linha de baixo no volta pra mais de cima, ai se tiver escrito errado, JA ELVIZ!
no tem como copiar e colar.
mo merda =D

ontem a noite eu fazedo ali a parte das tabela


CREATE TABLE IF NOT EXISTS `cliente` (
`id` int(3) unsigned zerofill NOT NULL auto_increment,
`data` timestamp NULL default NULL,
`razao_social` text,
`tipo` text NOT NULL,
`cnpj` text,
`nome_fantasia` text,
`ramo_negocio` text,
`site` text,
`email` text,
`endereco` text,
`bairro` text,
`cep` text,
`cidade` text,
`estado` text,
`pais` text,
`telefone` text,
`celular` text,
`fax` text,
`pessoa_contato` text,
`senha` text NOT NULL,
`habilitado` text NOT NULL,
PRIMARY KEY (`id`)
)


fiz duas vezes, as duas deu erro, eu tinha escrito uma besterinha errada, faltando um a letra, ai ia ter que digitar TUUDO de novo, ai eu fiquei puto e fui dormir :D

agora fui fazer de novo aqui, e deu erro de novo -.-

http://img240.imageshack.us/img240/5917/imagemkt0.jpg

CCV_HEALbra
26-06-2008, 03:39 PM
tem como colar..vai com o boto direito.:D
aehehueha

manezo!!
:D:D:D

vou ver e te falo aqui edito!!


CREATE TABLE cliente (id int(3) unsigned zerofill NOT NULL auto_increment, data timestamp NULL default NULL, razao_social text, tipo text NOT NULL, cnpj text, nome_fantasia text, ramo_negocio text, site text, email text,endereco text, bairro text,cep text, cidade text,estado text, pais text, telefone text, celular text, fax text, pessoa_contato text, senha text NOT NULL, habilitado text NOT NULL, PRIMARY KEY(id));

deu diferena no DOS para IDE's...
:/

mas ai deu certo comigo!!
testado!
xD
no linux n!!
^^

lembrando q pode dar tabela duplicada pq vc fez a outra cliente l em cima...
ai:


DROP TABLE cliente;

mas ai pra fazer o exemplo q eu citei de rows abaixo usa a primeira tabela..nao a segunda...a segunda eu fiz pra dar exemplo!!
^^

CCV_iStiu
26-06-2008, 04:08 PM
tendi nada o__o'
DROP TABLE pra apagar a tabela ? :s

e porque o meu tava dando erro ? :B

CCV_HEALbra
26-06-2008, 04:21 PM
por causa das aspas!!
sim...drop eh pra apagar!!

eu criei duas tabelas clientes no exemplo..num foi??
se vc for criar a outra depois de criada uma vai dar tabela existente..sacou??

Ket
26-06-2008, 04:54 PM
AEEEEEEE, Still...
aprende com quem sabe o/
http://img370.imageshack.us/img370/5578/tabelaln9.jpg

CCV_iStiu
26-06-2008, 05:07 PM
AGHSKSLKS
ahhh tu j pegou tudo mastigado tambm n :D

Ket
26-06-2008, 05:09 PM
qq se quis dizer com tudo mastigado ??!!
eu fui seguindo o tuto completo =/ ...
li tudim e uma duvida ou otra eu tirava com o heal cacete =D

CCV_HEALbra
26-06-2008, 05:13 PM
heal cacete??

mudei de nome agora??
hahahaa

vero...o still nao para no msn mais!!
xD

mas o ketmechupa pegou mais rpido q a table!!
hahaha

CCV_iStiu
26-06-2008, 05:17 PM
o meu tava dando errado porque o do heal viado tava errado, ai depois que ele arrumou ficou mole do boKet :D

off: s entro no msn em casa, aqui no trampo minha me charopa

EDIT:
mano, no sei por onde eu comeo aqui -.-
tipo criei o DATABASE site;
ai pra fazer as tabela voc usou 2 jeitos no exemplo o.o

esse que s usou o "varchar" que no sei pra que serve XD

CREATE TABLE clientes (nome varchar(50), sobrenome varchar(50));

e o outro, que cria um monte de campo com outras funes o.o

CREATE TABLE cliente (id int(3) unsigned zerofill NOT NULL auto_increment, data timestamp NULL default NULL, razao_social text, tipo text NOT NULL, cnpj text, nome_fantasia text, ramo_negocio text, site text, email text,endereco text, bairro text,cep text, cidade text,estado text, pais text, telefone text, celular text, fax text, pessoa_contato text, senha text NOT NULL, habilitado text NOT NULL, PRIMARY KEY(id));

como eu vou fazer aquele l ? .__.

vou sair s tacando "text" em todos :D
ASGHKLGASAGSK

CCV_HEALbra
26-06-2008, 05:51 PM
CREATE TABLE fornecedores (id int(3) unsigned zerofill NOT NULL auto_increment, nome, text, cgc int(3), ...., PRIMARY KEY(id));

id, nome, cgc, endereo, cep, uf, ddd, fone, ramal, fax, contato e produto. (os campos)

Ket
26-06-2008, 07:35 PM
igual eu heal...
eu me perdi nessa parte ai parei lembra ?!?!
deu erro, e eu nao sabia como fazer tipo...
se em todos eu colocava text ou ia tentando os q colocavam numero int(3)...
ai deu erro e ai desisti T_T

CCV_HEALbra
26-06-2008, 08:12 PM
faz no bloco de notas e cola no cmd pow!!!

CCV_Pinto
26-06-2008, 08:29 PM
se vc errar, vc pode apertar para cima (a seta para cima do teclado) q ele mostra os ultimos comandos...dae vc soh altera onde errou e aperta enter

eh bom fazer algumas tabelas na mo para conhecer.... mas nao quebrem muito a cabea... pq com phpMyAdmin ou DBVisualizer ou outros clientes como pgadmin para POstgresql e o cliente do Oracle ( q eu sempre eskeo o nome) fica bem mais facil executar as coisas.....


nao sei se isso foi uma duvida do still, mas a vai:

varchar(50) o tipo de dado, significa "character varying" - que sinifica um conjunto de caracteres de tamanho varivel, sendo q o nmero q vc especifica o tamanho mximo.... no caso

nome varchar(50)
significa q o nome pode ter at 50 letras

abraos

Ket
26-06-2008, 08:37 PM
rapaiz...
heal, a duvida eh a seguinte...
nao vai adiantar fazer no bloco ou no DOS...
a duvida eh na ordem de como fazer e oq utilizar...
tipo pra telefone eu sei q eh int(10) mas o rsto eh text ou oq !?
confuso mode on =/

CCV_HEALbra
26-06-2008, 08:43 PM
text para textos, fotos ou algo do tipo...oui at mesmo algo q vc nao saiba o q !!

por exemplo...cgc int...nome eh text..

e assim vai...e data usa-se sempre timestamp!!!

bom..em vez de text vc pode usar varchar tb..tanto faz!!!

acho q essa parte ficou muito mal explicada...mas o pinto deu uma pincelada ai q pode ajudar em algo..
:D

a ordem....nao tem...saca??

pode ser a ordem q eu postei:

id, nome, cgc, endereo, cep, uf, ddd, fone, ramal, fax, contato e produto.

CCV_iStiu
26-06-2008, 09:32 PM
ento... a tabela j foi criada bonitinha (y)
problema agora adicionar os dados :]

que de todo jeito que eu j coloquei deu erro o.O
aquela primeira l que o heal passou, e o ket conseguiu fazer, eu tambm fiz de boa, agora essa no ta indo .__.

Ket
27-06-2008, 11:04 AM
http://img229.imageshack.us/img229/9499/cmdeo2.jpg

MALLL AEEE STILL ...
EU CONSEGUIIIII o/ ...
REPUTACAO PRA MIM =P

CCV_iStiu
27-06-2008, 11:07 AM
sagllhaks
meusovosmano

tu nem fecha a janela do heal pra disfarar, ele que fez pra tu n ?
asgAGSAGHSLKASG

daqui a pouco voc que vai dar aula aqui n (Y)

Ket
27-06-2008, 11:11 AM
pede pro heal se ele fez pra mim !!! ...
nao preciso disfarcar, eu so foda =D ...
pergunta pra ele uai, ele me ajuda com uns problemas s...
mas praticamente eu quem fiz...
a parte da tabela pede pra ele, eu deduzi tudo certo...
s tava errando porque tava colocando virgula a mais =P
dps fico facil =D

CCV_iStiu
27-06-2008, 11:16 AM
hsglkgsaas
mano, ontem nem ele tava conseguindo fazer comigo -.-
todo jeito que ele falava pra eu fazer dava erro u.u

CCV_HEALbra
27-06-2008, 11:17 AM
still..no seu caso faltou setar o id s..daquele q a gente fez..ai d certinho!!
eu etstei ajudando o ket e deu certo!!
xD

o fdp ainda posta meu msn aqui!!
aehueaaeu

Ket
27-06-2008, 11:19 AM
d nada, essa rea visitada s poir quem se interessa =D ..
o forum inteiro nao vai pegar ele ,rlx =P

CCV_iStiu
27-06-2008, 11:27 AM
still..no seu caso faltou setar o id s..daquele q a gente fez..ai d certinho!!
eu etstei ajudando o ket e deu certo!!

como assim setar ? :B
como vai ficar o cdigo ?

eu j tinha criado o db aqui, se eu quiser deletar pra criar tudo de novo comofas ?
DROP o que mesmo ? :huh:

CCV_HEALbra
27-06-2008, 11:30 AM
sim..drop..mas manda seu CREATE ai q eu falo como fica o INSERT!!

Ket
27-06-2008, 11:36 AM
DROP DATABASE demo; =P ...
quer o meu still ?! suAshUa..
fico m munitim xD

CCV_iStiu
27-06-2008, 03:10 PM
sim..drop..mas manda seu CREATE ai q eu falo como fica o INSERT!!

t criado ;]

CREATE TABLE fornecedores (id int(3) unsigned zerofill NOT NULL auto_increment, nome text NOT NULL, cgc int(14), endereco text, cep int(8), uf varchar(2), ddd int(3), fone int(8), ramal int(3), fax int(8), contato text, produto text, PRIMARY KEY(id));

falta s adicionar agora :D

CCV_HEALbra
27-06-2008, 04:24 PM
INSERT INTO fornecedores (id, nome, cgc, endereco, cep, uf, ddd, fone, ramal, fax, contato, produto) VALUES ('1', 'Still', '00000000000000', 'Rua 1 Qd 2', '74000000', 'GO', '062', '32222222', '211', '322222221', 'Still', 'Gay');

se nao for assim tira as aspas..nao lembro agora..mas eh isso!!

Ket
27-06-2008, 04:32 PM
assim mesmo, com aspas ^^

CCV_iStiu
27-06-2008, 04:44 PM
ahhh, agora foi bonito :D

e eu pensando que as aspa que tava dando erro ._.'

CCV_HEALbra
27-06-2008, 05:31 PM
posta result!!
xD

CCV_iStiu
27-06-2008, 07:11 PM
t ai meu querido :D

http://img501.imageshack.us/img501/6060/imagemnb4.jpg

Qiik~
28-07-2008, 12:24 PM
avaliem minha table

http://img514.imageshack.us/img514/9497/bdfamiliadl5.8b285e74a2.jpg

uiasd, so novo aki, e to acompanhando vcs aiii, flwss

CCV_HEALbra
28-07-2008, 02:07 PM
qiik = bernardo??

sua img t errada!!

bem vindo e boa sorte com as auals!