22
Fábio Borges de Oliveira Fábio Borges de Oliveira MySQL MySQL

MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Fábio Borges de OliveiraFábio Borges de Oliveira

MySQLMySQL

Page 2: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Incremento automáticoIncremento automáticoCREATE TABLE alunos

( registro MEDIUMINT NOT NULL AUTO_INCREMENT, nome CHAR(30) NOT NULL, PRIMARY KEY (registro) );

INSERT INTO alunos (nome) VALUES ("Fábio"),("Ana"),("Michele"), ("Thais"),("Débora"),("Rachel")

Page 3: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

ADMADMShell> mysql -u root mysql

UPDATE user SETPassword=PASSWORD('nova_senha') WHERE user='root';

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON databases.*TO fulano@'192.58.197.0/255.255.255.0';

SHOW FULL PROCESSLIST;

Page 4: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Incluindo usuáriosIncluindo usuáriosUSE mysqlINSERT INTO user VALUES('localhost','fulano',

PASSWORD('senha'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON db.* TO fulano@'server.domain' IDENTIFIED BY 'senha';

Page 5: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Apagando usuáriosApagando usuáriosDROP USER nome_usuário

DELETE FROM mysql.user WHERE user=' nome_usuário' and host='hostname';

FLUSH PRIVILEGES;

Page 6: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Outras permissõesOutras permissõesGRANT ...

WITH MAX_QUERIES_PER_HOUR N1 MAX_UPDATES_PER_HOUR N2 MAX_CONNECTIONS_PER_HOUR N3;

Page 7: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

StringsStrings\0 Um caractere ASCII 0 (NUL). \' Um caractere de aspas simples (').\" Um caractere de aspas duplas ("). \b Um caractere de backspace. \n Um caractere de nova linha. \r Um caractere de retorno de carro. \t Um caractere de tabulação. \z ASCII(26) (Control-Z). \\ O caractere de barra invertida. \% Um caractere "%" . \_ Um caractere '_'.

Page 8: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Comentários Comentários select 1+1; # comentário até o fim da linha

select 1+1; -- comentário até o fim da linha

select 1 /* Este é um comentário de linha */ + 1;

select 1+ /* Este é um comentário de múltiplas linhas */ 1;

Page 9: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Tipo de campos Tipo de campos TINYINT[(M)] [UNSIGNED] [ZEROFILL]

Um inteiro muito pequeno. A faixa deste inteiro com sinal é de -128 até 127. A faixa sem sinal é de 0 até 255.

BITBOOLBOOLEAN

Estes são sinônimos para TINYINT(1).

Page 10: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Interios Interios SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

Um inteiro pequeno. A faixa do inteiro com sinal é de -32768 até 32767. A faixa sem sinal é de 0 a 65535.

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]Um inteiro de tamanho médio. A faixa com sinal é de -

8388608 a 8388607. A faixa sem sinal é de 0 to 16777215.

INT[(M)] [UNSIGNED] [ZEROFILL]Um inteiro de tamanho normal. A faixa com sinal é de -

2147483648 a 2147483647. A faixa sem sinal é de 0 a 4294967295.

INTEGER[(M)] [UNSIGNED] [ZEROFILL]Este é um sinônimo para INT.

Page 11: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Inteiro grande Inteiro grande BIGINT[(M)] [UNSIGNED] [ZEROFILL]

A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal é de 0 a 18446744073709551615. Todas as operações aritméticas são feitas usando valores BIGINT ou DOUBLE com sinal, não devemos utilizar inteiros sem sinal maiores que 9223372036854775807 (63 bits). Quando usar operadores (+, -, *, etc.) onde ambos os operadores são inteiros. Você pode armazenar valores inteiro exatos em um campo BIGINT armazenando-os como string, como ocorre nestes casos não haverá nenhuma representação intermediaria dupla.

Page 12: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Flutuantes Flutuantes FLOAT(precisão) [UNSIGNED] [ZEROFILL]

Um número de ponto flutuante. Não pode ser sem sinal. precisão pode ser <=24 para um número de ponto flutuante de precisão simples e entre 25 e 53 para um número de ponto flutuante de dupla-precisão. Estes tipos são como os tipos FLOAT e DOUBLEdescritos logo abaixo. FLOAT(X) tem o mesma faixa que os tipos correspondentes FLOAT e DOUBLE, mas o tamanho do display e número de casas decimais é indefinido. FLOAT(precisão) sempre tem 2 casas decimais.

Page 13: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Dupla precisãoDupla precisãoDOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

Um número de ponto flutuante de tamanho normal (dupla-precisão). Valores permitidos estão entre -1.7976931348623157E+308 e -2.2250738585072014E-308, 0 e entre 2.2250738585072014E-308 e 1.7976931348623157E+308. Se UNSIGNED for especificado, valores negativos não são permitidos. O M é a largura do display e o Dé número de casa decimais. DOUBLE sem argumento ou FLOAT(X) onde 25 <= X <= 53 são números de ponto flutuante de dupla-precisão.

Page 14: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Exemplos Exemplos salário DECIMAL(5,2)

Tipo bytes de atéTINYINT 1 -128 127 SMALLINT 2 -32768 32767 MEDIUMINT 3 -8388608 8388607 INT 4 -2147483648 2147483647 BIGINT 8 -9223372036854775808

9223372036854775807

Page 15: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Datas e horas Datas e horas Tipo de Coluna Valor ''Zero''DATETIME '0000-00-00 00:00:00'DATE '0000-00-00'TIMESTAMP 00000000000000TIME '00:00:00'YEAR 0000

Valores de ano na faixa 00-69 são convertidos para 2000-2069. Valores de anos na faixa 70-99 são convertidos para 1970-1999.TIMESTAMP 'YYYY-MM-DD HH:MM:SS'

Page 16: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Formatos Formatos Tipo da Coluna Formato do Display

TIMESTAMP(14) YYYYMMDDHHMMSSTIMESTAMP(12) YYMMDDHHMMSSTIMESTAMP(10) YYMMDDHHMMTIMESTAMP(8) YYYYMMDDTIMESTAMP(6) YYMMDDTIMESTAMP(4) YYMMTIMESTAMP(2) YY

Page 17: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Texto Texto Tipo tamanho-máximo bytesTINYTEXT ou TINYBLOB 2^8-1 255 TEXT ou BLOB 2^16-1 (64K-1) 65535 MEDIUMTEXT ou MEDIUMBLOB 2^24-1

(16M-1) 16777215 LONGBLOB 2^32-1 (4G-1) 4294967295

Page 18: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Incluindo fotosIncluindo fotos

UPDATE tabela SET blob_coluna=LOAD_FILE("/tmp/foto")

WHERE id=1;

Page 19: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Enumerados Enumerados ENUM("um", "dois", "três")

Valor IndiceNULL NULL"" 0 "um" 1 "dois" 2 "três" 3

máximo de 65535 elementos

Page 20: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

ConjuntosConjuntosSET("a","b","c","d")

SET membro valor-decimal valor-binárioa 1 0001b 2 0010c 4 0100d 8 1000

WHERE col_set = 'val1,val2';WHERE FIND_IN_SET('valor',col_set)>0;

Page 21: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Seleções Seleções SELECT 1 BETWEEN 2 AND 3; SELECT 'b' BETWEEN 'a' AND 'c'; SELECT 2 BETWEEN 2 AND '3';SELECT 2 IN (0,3,5,'Fábio'); SELECT 'Fábio' IN (0,3,5,'Fábio'); SELECT CASE var WHEN 1 THEN "um" WHEN

2 THEN "dois" ELSE "mais" END; SELECT CASE WHEN var1>var2 THEN

"verdadeiro" ELSE "falso" END;

Page 22: MySQL - lncc.brborges/php/11 - MySQL.pdf · Inteiro grande . BIGINT[(M)] [UNSIGNED] [ZEROFILL] A faixa com sinal é de -9223372036854775808 a 9223372036854775807. A faixa sem sinal

Funções de textoFunções de textoSELECT IF(STRCMP('teste','teste1'),'não','sim');SELECT IFNULL(1/0,10);SELECT NULLIF(1,1); #NULLSELECT NULLIF(1,2); #1SELECT ISNULL(1/0);SELECT CONCAT('My', 'S', 'QL'); SELECT LEFT('Fábio Borges', 5); SELECT LCASE('MYSQL');SELECT LTRIM(' Fábio');SELECT LENGTH('texto');