Funções MySQL, tipos de dados
1. Link para o banco de dados
O link para o banco de dados geralmente requer um nome de usuário e senha MySQL. Se o servidor estiver sendo executado em uma máquina diferente do servidor de login, você também precisará especificar o nome do host.
shell> mysql -h host -u usuário -pDigite a senha: ********
2. Exibir a estrutura da tabela
DESCRIBE t_name;
3. Configure o alias de consulta
SELECT nome nome, idade FROM t_name;
4. Resumo dos tipos de dados
smallint inteiro de 16 bits
Interger inteiro de 32 bits
Decimal (p, s) p refere-se ao valor do tamanho de todos os números e s refere-se ao número de dígitos após a vírgula decimal.
número real flutuante de 32 bits
número real duplo de 64 bits
char (n) uma string de n comprimento, n não é maior que 254
varchar (n) Uma string de comprimento n, n não é maior que 4000
Graphic (n) é o mesmo que char, mas a unidade é dois caracteres de bytes duplos e n não excede 127. Esta forma é para oferecer suporte a fontes de dois caracteres, como o chinês.
vargrarhic (n) Uma sequência de caracteres duplos de comprimento variável e valor máximo n, n não pode exceder 2.000.
A data contém o ano, mês e data.
o tempo contém horas, minutos e segundos.
timestamp contém ano, mês, dia, hora, minuto, segundo e milésimo de segundo.
5. Consulta de grupo
SELECT * FROM t_name GROUP BY assunto; GROUP BY refere-se a consultas de agrupamento de acordo com uma determinada coluna.
Mencione ter, ter e GROUP BY devem ser usados juntos, por que usar ter em vez de onde é porque só ter pode determinar a coluna de dados calculada pela função, como soma ('dinheiro'). Aqui, você não pode escrever onde dinheiro> xxxx ; Você só pode usar tendo> xxx;
6. Operador
(....) Use parênteses para especificar a ordem das operações SELECT (12 + 3) * 3;
Precedência de operador, a mesma linha tem a mesma precedência
|| , ou, xor
&&,e
não
ENTRE, CASO, QUANDO, ENTÃO, OUTRO
=, <=,> =, <=>, <,>, <>,! =, é, como, regexp, em
|
E
<, >>
-, +
*, /, div,%, mod
^
!
binário, agrupar
7. Funções de string
ASCII (str) O valor de retorno é o caractere mais à esquerda da string str. Se for uma string vazia, o valor de retorno é 0. Se str for nulo, o valor de retorno é nulo.BIN (n) retorna a representação de string binária de n.
LCASE ("string") / UCASE ("string") #Converter para minúsculas / maiúsculas, que tem o mesmo efeito que LOWER (str) / UPPER (str)
length ("Return string length")
8. Funções matemáticas
ABS (x) retorna o valor absoluto de x
ACOS (x) retorna o arco cosseno de x
ASIN (x) retorna o arco seno de x
ATAN (x) retorna o arco tangente de x, ou seja, a tangente é o valor de x
ATAN (Y, X), ATAN2 (Y, X) retorna o arco-tangente de duas variáveis x e y.
CEILING (X) CEIL (X) retorna o menor valor inteiro não menor que x.
COS (X) retorna o cosseno de x
COT (X) retorna a cotangente de x.
CRC32 (expr) Calcula o valor de verificação do código de redundância cíclica e retorna um valor de símbolo de 32 bits
Vá para o Baidu para ver o que você precisa, porque são muitos.
9. Função de data
A função de data ainda é frequentemente necessária
O intervalo de valores de retorno na descrição da função a seguir solicitará a data completa. Se uma data tiver um valor "zero" ou uma data incompleta, como '2001-11-00', a função que extrai parte do valor da data pode retornar 0. Por exemplo, DAYOFMONTH ('2001-11-00') retornará 0.
ADDDATE (data, INTERVAL tipo expr) ADDDATE (expr, dias)
DAYOFWEEK (data)
retorna a data data data é o dia da semana (1 = domingo, 2 = segunda-feira, ... 7 = sábado, padrão ODBC)
WEEKDAY (data)
retorna a data data é o dia da semana (0 = segunda-feira, 1 = terça-feira, ... 6 = domingo).
DAYOFMONTH (data)
retorna o dia do mês em que a data é (no intervalo de 1 a 31)
DAYOFYEAR (data)
retorna o dia do ano em que a data é (no intervalo de 1 a 366)
MONTH (data)
retorna o valor do mês na data
DAYNAME (data) data de
retorno é o dia da semana (retornado pelo nome em inglês)
MONTHNAME (data)
retorna o mês da data (retornado pelo nome em inglês)
QUARTER (data)
retorna em qual trimestre do ano a data é
WEEK (data, primeiro)
retorna as primeiras semanas do ano para a data (o valor padrão da primeira é 0, o primeiro valor de 1 significa que segunda-feira é o início da semana e 0 começa no domingo)
YEAR (data)
retorna o ano da data (intervalo de 1000 a 9999)
HOUR (hora)
retorna as horas de tempo (o intervalo é de 0 a 23)
MINUTE (hora)
retorna o número de minutos de tempo (o intervalo é de 0 a 59)
SECOND (hora)
retorna o número de segundos de tempo (o intervalo é de 0 a 59)
PERIOD_ADD (P, N)
adiciona N meses ao período P e retorna (formato P AAMM ou AAAAMM)
PERIOD_DIFF (P1, P2)
retorna o número de meses entre os períodos P1 e P2 (formato P1 e P2 AAMM ou AAAAMM)
DATE_ADD (data, tipo de expr de INTERVAL)
DATE_SUB (data, tipo de expr de INTERVAL)
ADDDATE (data, tipo de expr de INTERVAL)
SUBDATE (data, tipo de expr de INTERVAL)
Adicione e subtraia a data e hora, data: a hora a ser calculada, o tipo de valor exper indica como a expressão expr deve ser interpretada
CURDATE ()
CURRENT_DATE ()
retorna o valor da data atual no formato ' AAAA -MM-DD' ou AAAAMMDD (de acordo com o contexto do valor de retorno, é uma string ou um número)
CURTIME ()
CURRENT_TIME ()
retorna o valor da hora atual no formato de ' HH : MM: SS' ou HHMMSS (de acordo com o contexto do valor de retorno, é uma string ou um número)
UNIX_TIMESTAMP ()
UNIX_TIMESTAMP (data)
retorna um carimbo de data / hora Unix (o número de segundos desde '1970-01-01 00:00:00' GMT, data padrão para a hora atual)
SEC_TO_TIME (segundos)
retorna o valor TIME convertido de segundos no formato de 'HH: MM: SS' ou HHMMSS (de acordo com o contexto do valor de retorno, é uma string ou um número)
TIME_TO_SEC (tempo)
retorna o número de segundos no valor de tempo
10. função de transmissão
Cast (o tipo de nome de campo como conversão), onde o tipo pode ser: CHAR [(N)]
tipo de caractere DATE tipo de
data DATETIME tipo de data e hora
DECIMAL tipo flutuante
ASSINADO int
TIME tipo de hora
2. Enciclopédia de gramática básica de banco de dados
1. Crie um novo usuário:
> CRIAR nome de usuário IDENTIFICADO POR 'ssapdrow';
2. Altere a senha:
> DEFINIR SENHA PARA nome = SENHA ('fdddfd');
3. Gerenciamento de autoridade
> SHOW GRANTS FOR name; // Exibir as permissões do usuário de nome
> GRANT SELECT ON db_name. * TO name; // Dê todas as permissões ao banco de dados de nome de usuário db_name
> REVOKE SELECT ON db_name. * TO name; // Operação reversa de GRANT, remove permissões;
1. Operação do banco de dados:
1. Visualize o banco de dados:
> MOSTRAR BASES DE DADOS;
2. Crie um banco de dados:
> CREATE DATABASE db_name; // db_name é o nome do banco de dados
3. Use o banco de dados:
> USE db_name;
4. Exclua o banco de dados:
> DROP DATABASE db_name;
Dois, crie uma mesa:
1. Crie uma tabela:
> CRIAR TABELA nome_tabela (
> id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, // valor de id, não assinado, não vazio, unicidade de incremento, pode ser usado como chave primária.
> nome VARCHAR (60) NOT NULL
> score TINYINT UNSIGNED NOT NULL DEFAULT 0, // Define o valor da coluna padrão
> CHAVE PRIMÁRIA (id)
>) ENGINE = InnoDB // Definir o mecanismo de armazenamento da tabela, geralmente InnoDB e MyISAM são comumente usados; InnoDB é confiável e suporta transações; MyISAM é eficiente e não suporta recuperação de texto completo
> DEFAULT charset = utf8; // Definir a codificação padrão para evitar caracteres truncados chineses no banco de dados
Se você pode criar uma tabela de dados condicionalmente, você também pode usar> CREATE TABLE IF NOT EXISTS tb_name (........
2. Copie a tabela:
Copiar estrutura da tabela
> CRIAR TABELA t_2 LIKE t_1
Copie o conteúdo da tabela (a estrutura da tabela deve ser exatamente a mesma)
> INSERT INTO t_2 SELECT * FROM t_1
Sugestão (copie a coluna especificada)
> INSERT INTO t_2 (nome) SELECIONE o nome DE t_1
Copie toda a tabela
> CRIAR TABELA nome_tb2 SELECT * FROM nome_tb;
Ou cópia parcial:
> CREATE TABLE nome_tab2 SELECT id, nome FROM nome_tb;
3. Crie uma tabela temporária:
> CRIAR TABELA TEMPORÁRIA nome_tb (aqui é o mesmo que criar uma tabela normal);
4. Visualize as tabelas disponíveis no banco de dados:
> MOSTRAR TABELAS;
5. Visualize a estrutura da tabela:
> DESCREVER nome_tb;
Você também pode usar:
> MOSTRAR COLUNAS em nome_tb; // também funciona
6. Exclua a tabela:
> DROP [TEMPORARY] TABLE [IF EXISTS] tb_name [, tb_name2 .......];
Exemplos:
> DROP TABLE IF EXISTS tb_name;
7. Renomeie a tabela:
> RENAME TABLE name_old TO name_new;
Você também pode usar:
> ALTER TABLE name_old RENAME name_new;
Três, modifique a tabela:
1. Altere a estrutura da tabela:
> ALTER TABLE tb_name ADD [CHANGE, RENAME, DROP] ... o que alterar ...
Exemplos:
> ALTER TABLE nome_tb ADD COLUMN endereço varchar (80) NOT NULL;
> ALTER TABLE nome_tb endereço DROP;
> ALTER TABLE tb_name CHANGE score score SMALLINT (4) NOT NULL;
Quatro, insira os dados:
1. Insira os dados:
> INSERT INTO tb_name (id, nome, pontuação) VALORES (NULL, 'Zhang três', 140), (NULL, 'Zhang quatro', 178), (NULL, 'Zhang cinco', 134);
Insira vários pedaços de dados aqui, adicione uma vírgula diretamente depois deles e escreva os dados inseridos diretamente; o ID da chave primária é uma coluna incrementada automaticamente, então você não precisa escrevê-lo
2. Insira os dados recuperados:
> INSERT INTO tb_name (nome, pontuação) SELECT nome, pontuação FROM tb_name2;
5. Atualizar dados:
1. Especifique os dados de atualização:
> UPDATE tb_name SET score = 189 WHERE id = 2;
> ATUALIZAR nome da tabela SET columnName = NewValue [condição WHERE]
6. Exclua os dados:
1. Exclua os dados:
> DELETE FROM tb_name WHERE id = 3;
7. Controle de condição:
1. Declaração WHERE:
> SELECT * FROM nome_tb WHERE id = 3;
2. TENDO declaração:
> SELECT * FROM nome_tab GROUP BY pontuação TENDO contagem (*)> 2
3. Caracteres de controle de condição relevantes:
= 、> 、 <、 <> 、 IN (1,2,3 ......) 、 ENTRE a E b 、 NÃO
E 、 OU
No uso de Linke (),% significa corresponder a qualquer, _ corresponder a um caractere (podem ser caracteres chineses)
IS NULL detecção de valor nulo
Oito, expressões regulares do MySQL:
1. Mysql suporta expressões regulares REGEXP:
> SELECT * FROM nome_tb WHERE nome REGEXP '^ [AD]' // Encontre o nome começando com AD
2. Caracteres especiais precisam ser escapados.
Nove, algumas funções do MySQL:
1. String link-CONCAT ()
> SELECIONE CONCAT (nome, '=>', pontuação) DE nome_tb
2. Funções matemáticas:
AVG 、 SUM 、 MAX 、 MIN 、 COUNT ;
3. Função de processamento de texto:
TRIM 、 LOCALIZAR 、 SUPERIOR 、 INFERIOR 、 SUBSTRING
4. Operador:
+ 、 - 、 * 、 \
5. Função de tempo:
DATA () 、 HORA () 、 DIA () 、 ANO () 、 AGORA () .....
10. Consulta de grupo:
1. A consulta de agrupamento pode ser agrupada de acordo com a coluna especificada:
> SELECT COUNT (*) FROM tb_name GROUP BY pontuação HAVING COUNT (*)> 1;
2. Ter Uso Condicional;
3. ORDENAR POR classificação:
ORDER BY DESC | ASC => Classificar dados em ordem decrescente e crescente
11. Regras UNION - duas instruções podem ser executadas (linhas duplicadas podem ser removidas)
12. Pesquisa de texto completo - CORRESPONDÊNCIA e CONTRA
1 、 SELECT MATCH (note_text) AGAINST ('PICASO') FROM tb_name;
2. O motor InnoDB não suporta pesquisa de texto completo, o MyISAM pode;
13. Ver
1. Crie uma vista
> CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;
2. A função especial da vista:
a, simplifique a conexão entre as tabelas (escreva a conexão em select);
b. Reformatar e enviar os dados recuperados (funções como TRIM, CONCAT, etc.);
c. Filtre dados indesejados (selecione a parte)
d. Use a visualização para calcular os valores dos campos, como resumir esses valores.
Quatorze, o uso de procedimentos armazenados:
Pessoalmente, um procedimento armazenado é uma função personalizada com parâmetros variáveis locais, parâmetros podem ser passados e valores podem ser retornados, mas esta sintaxe é enfadonha o suficiente ~~~
1. Crie um procedimento armazenado:
> CRIAR PROCEDIMENTO pro (
> IN num INT, OUT total INT)
> BEGIN
> SELECT SUM (pontuação) INTO total FROM tb_name WHERE id = num;
> END;
*** Aqui IN (passa um valor para o procedimento armazenado), OUT (passa um valor do procedimento armazenado), INOUT (passa para dentro e para fora do procedimento armazenado), INTO (salva variáveis)
2. Chame o procedimento armazenado:
> CALL pro (13, @ total) // Existem duas variáveis no procedimento armazenado, uma é IN e a outra é OUT. O OUT aqui também precisa ser escrito. Se você não escrevê-lo, receberá um erro
> SELECT @total // Você pode ver o resultado aqui;
3. Outras operações do procedimento armazenado:
> MOSTRAR STATUS DO PROCEDIMENTO; // Exibir o procedimento armazenado atual
> DROP PROCEDURE pro; // Excluir o procedimento armazenado especificado
15. Use cursores:
Eu não entendo muito bem, por favor, me dê alguns conselhos de meus amigos ~~~
1. A operação do cursor
> CRIAR PROCEDIMENTO pro ()
> BEGIN
> DECLARAR CURSOR DE UM OU DE NOME DE
> SELECT order_num FROM pedidos;
> END;
> OPEN ordername; // Abra o cursor
> CLOSE ordername; // Fecha o cursor
A instância
autoescrita cria PROCEDURE t_cur ()
BEGIN
declara notf int DEFAULT 0; - A condição de loop é 1 para interromper o loop
declara um int; - A variável de cursor é usada para receber a
declaração de idade n VARCHAR (45) em t_test ; - As variáveis do cursor são usadas para receber o nome em t_test
declarar o cursor atual para selecionar o nome, idade de t_test; - Declarar o valor atribuído pelo cursor para t_test
DECLARAR CONTINUAR MANIPULADOR PARA NÃO ENCONTRADO CONJUNTO notf = 1; - Reatribuir valor se os próximos dados não podem ser percorridos Is 1
open cur; - abra o cursor
FETCH cur INTO n, a; - escreva a primeira linha de dados na variável, o cursor aponta para a primeira linha do registro
WHILE notf! = 1 DO - juiz
inserir em t_ceshi (nome, idade) VALORES (n, a); - inserir dados ciclicamente
FETCH cur INTO n, a; -
fim desconhecido WHILE;
fechar cur; - fechar cursor para liberar espaço
END;
16. Gatilho:
O gatilho refere-se a disparar a operação especificada no gatilho quando uma operação especificada é executada;
1. As instruções que suportam gatilhos são DELETE, INSERT, UPDATE e outras não são suportadas
2. Crie um gatilho:
> CREATE TRIGGER trig AFTER INSERT ON ORDERS PARA CADA LINHA SELECT NEW.orser_name;
> Instrução INSERT, instrução de gatilho, retorna um valor
3. Exclua o gatilho
> DROP TRIGGER trig;
Dezessete, comparação gramatical:
1, ALTER TABLE (modificar a tabela)
ALTER TABLE nome_tabela
(ADICIONE tipo de dados da coluna [NULL | NOT NULL] [CONSTRAINTS]
CHANGE coluna tipo de dados COLUMNS [NULL | NÃO NULO] [RESTRIÇÕES]
Coluna DROP ,
。。。。
)
2. COMMIT (assuntos de processamento)
> COMPROMETE;
3. CREATE INDEX (crie um índice em uma ou mais colunas)
CREATE INDEX index_name ON tb_name (coluna [ASC | DESC], .......);
4. CRIAR PROCEDIMENTO (criar um procedimento armazenado)
CRIAR PROCEDIMENTO pro ([parâmetros])
COMEÇAR
........
FIM
5. CRIAR TABELA (criar tabela)
CRIAR TABELA nome_tb (
nome_da_coluna tipo de dados [NULL | NÃO NULO] [condtraints],
nome_da_coluna tipo de dados [NULL | NÃO NULO] [condtraints],
.......
PRIMARY KEY (column_name)
) ENGINE = [InnoDB | MyiSAM] CHARSET PADRÃO = utf8 AUTO_INCREMENT = 1;
6, CRIAR USUÁRIO (criar usuário)
CRIAR USUÁRIO user_name [@hostname] [IDENTIFICADO POR [PASSWORD] 'pass_word'];
7, CRIAR VISUALIZAÇÃO (criar uma visualização em uma ou mais tabelas)
CRIAR [OU SUBSTITUIR] VER view_name AS SELECT 。。。。。。
8. DELETE (exclua uma ou mais linhas da tabela)
EXCLUIR DE nome_tabela [ONDE ......]
9. DROP (excluir permanentemente bancos de dados e objetos, como visualizações, índices, etc.)
DROP DATEBASE | INDEX | PROCEDIMENTO | TABELA | TRIGGER | USUÁRIO | VER nome
10. INSERT (adicionar linhas à tabela)
INSERT INTO nome_tab [(colunas, ......)] VALORES (valor1, ............);
Insira usando o valor SELECT:
INSERT INTO tb_name [(colunas, ......)]
SELECT colunas, ....... FROM tb_name [WHERE ......];
11. ROLLBACK (revogar um bloco de transação)
ROLLBACK [TO savapointname];
12. SAVEPOINT (definir ponto reservado para ROLLBACK)
SAVEPOINT sp1;
13, SELECIONE (recuperar dados, exibir informações)
SELECIONE nome_da_coluna, ..... DE nome_tab [ONDE] [UNIÃO] [RROUP BY] [TENDO] [ORDER BY]
14, START TRANSACTION (o início de um novo bloco de processamento de transação)
INICIAR TRANSAÇÃO
15, UPDATE (atualizar uma ou mais linhas em uma tabela)
ATUALIZAR nome_tab SET coluna = valor, ...... [onde]