0% acharam este documento útil (0 voto)
18 visualizações

MySQL e SQL Server

Enviado por

fabiotakuchiha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações

MySQL e SQL Server

Enviado por

fabiotakuchiha
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 18

ETEC DE RIO GRANDE DA SERRA

CURSO DESENVOLVIMENTO DE SISTEMAS

COMPONENTE CURRICULAR: BANCO DE DADOS

NOME: Fabio Alves de Lima

MySQL e SQL Server

RIO GRANDE DA SERRA

2024

NOME: Fabio Alves de Lima


MySQL e SQL Server

Trabalho apresentado no curso de


Desenvolver de Sistemas da Etec
de rio grande da Serra

Orientador: Eder Fiori Saraiva


Chimenes

RIO GRANDE DA SERRA

2024
Comandos

MySQL e SQL Server (Microsoft SQL Server) utilizam comandos SQL


semelhantes, mas possuem diferenças em sintaxe e recursos. Alguns
comandos são:

1. Conectando ao Banco de Dados:

 MySQL:

bash
Copiar código
mysql -u nome_usuario -p

 SQL Server (usando sqlcmd):

bash
Copiar código
sqlcmd -S nome_servidor -U nome_usuario -P senha
2. Selecionando um Banco de Dados:

 MySQL:

sql
Copiar código
USE nome_banco;

 SQL Server:

sql
Copiar código
USE nome_banco;
3. Criando um Banco de Dados:

 MySQL:

sql
Copiar código
CREATE DATABASE nome_banco;

 SQL Server:

sql
Copiar código
CREATE DATABASE nome_banco;
4. Criando uma Tabela:

 MySQL:

sql
Copiar código
CREATE TABLE nome_tabela (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255),
idade INT
);

 SQL Server:

sql
Copiar código
CREATE TABLE nome_tabela (
id INT IDENTITY(1,1) PRIMARY KEY,
nome NVARCHAR(255),
idade INT
);
5. Inserindo Dados:

 MySQL:

sql
Copiar código
INSERT INTO nome_tabela (nome, idade) VALUES ('João Silva', 30);

 SQL Server:

sql
Copiar código
INSERT INTO nome_tabela (nome, idade) VALUES ('João Silva', 30);
6. Selecionando Dados:

 MySQL:

sql
Copiar código
SELECT * FROM nome_tabela;

 SQL Server:

sql
Copiar código
SELECT * FROM nome_tabela;
7. Atualizando Dados:

 MySQL:

sql
Copiar código
UPDATE nome_tabela SET idade = 31 WHERE id = 1;

 SQL Server:

sql
Copiar código
UPDATE nome_tabela SET idade = 31 WHERE id = 1;
8. Deletando Dados:

 MySQL:

sql
Copiar código
DELETE FROM nome_tabela WHERE id = 1;

 SQL Server:

sql
Copiar código
DELETE FROM nome_tabela WHERE id = 1;
9. Alterando uma Tabela:

 MySQL:

sql
Copiar código
ALTER TABLE nome_tabela ADD COLUMN email VARCHAR(255);

 SQL Server:

sql
Copiar código
ALTER TABLE nome_tabela ADD email NVARCHAR(255);
10. Excluindo uma Tabela:

 MySQL:

sql
Copiar código
DROP TABLE nome_tabela;

 SQL Server:
sql
Copiar código
DROP TABLE nome_tabela;
11. Fazendo Join entre Tabelas:

 MySQL (Inner Join):

sql
Copiar código
SELECT a.nome, b.id_pedido
FROM clientes a
INNER JOIN pedidos b ON a.id = b.id_cliente;

 SQL Server (Inner Join):

sql
Copiar código
SELECT a.nome, b.id_pedido
FROM clientes a
INNER JOIN pedidos b ON a.id = b.id_cliente;
12. Limitando o Número de Resultados:

 MySQL:

sql
Copiar código
SELECT * FROM nome_tabela LIMIT 5;

 SQL Server:

sql
Copiar código
SELECT TOP 5 * FROM nome_tabela;
13. Criando uma Stored Procedure:

 MySQL:

sql
Copiar código
DELIMITER //
CREATE PROCEDURE nome_procedimento (IN param1 INT)
BEGIN
SELECT * FROM nome_tabela WHERE id = param1;
END //
DELIMITER ;

 SQL Server:
sql
Copiar código
CREATE PROCEDURE nome_procedimento @param1 INT
AS
BEGIN
SELECT * FROM nome_tabela WHERE id = @param1;
END;
14. Transações:

 MySQL:

sql
Copiar código
START TRANSACTION;
INSERT INTO nome_tabela (nome, idade) VALUES ('Alice', 25);
COMMIT;

 SQL Server:

sql
Copiar código
BEGIN TRANSACTION;
INSERT INTO nome_tabela (nome, idade) VALUES ('Alice', 25);
COMMIT;
15. Backup e Restauração:

 MySQL (Backup):

bash
Copiar código
mysqldump -u nome_usuario -p nome_banco > backup.sql

 SQL Server (Backup):

sql
Copiar código
BACKUP DATABASE nome_banco TO DISK = 'C:\backup.bak';
16. Restaurando um Banco de Dados:

 MySQL (Restauração):

bash
Copiar código
mysql -u nome_usuario -p nome_banco < backup.sql

 SQL Server (Restauração):

sql
Copiar código
RESTORE DATABASE nome_banco FROM DISK = 'C:\backup.bak';

Linguagem SQL

O MySQL e o SQL Server utilizam a mesma linguagem base, que é o SQL


(Structured Query Language), uma linguagem padrão para gerenciar e
manipular bancos de dados relacionais. No entanto, apesar de ambos usarem
SQL, há diferenças em como cada sistema implementa certas funcionalidades,
comandos e extensões da linguagem SQL.

Por exemplo:

 O MySQL é mais popular em ambientes open-source e tem suas


próprias otimizações e funções específicas.
 O SQL Server, da Microsoft, também possui extensões proprietárias
como o T-SQL (Transact-SQL), que oferece funcionalidades adicionais,
como controle de fluxo (loops, condições) e manipulação de exceções.

Embora a sintaxe básica para operações como SELECT, INSERT, UPDATE e


DELETE seja semelhante, você pode encontrar diferenças em funções
específicas, tipos de dados, e métodos para lidar com transações, índices e
outros aspectos mais avançados.

Por isso, alguns scripts SQL que funcionam em um sistema podem precisar de
ajustes para serem executados no outro.

Aqui estão 100 comandos SQL, organizados em diferentes categorias como


consulta, manipulação de dados, criação de objetos, e outros:

Consultas de Seleção e Operações Básicas

1. `SELECT * FROM tabela;`

2. `SELECT coluna1, coluna2 FROM tabela;`

3. `SELECT DISTINCT coluna FROM tabela;`

4. `SELECT coluna FROM tabela WHERE condição;`

5. `SELECT coluna FROM tabela WHERE coluna BETWEEN valor1 AND


valor2;`

6. `SELECT coluna FROM tabela WHERE coluna IN (valor1, valor2, valor3);`

7. `SELECT coluna FROM tabela WHERE coluna LIKE 'padrão%';`


8. `SELECT coluna FROM tabela ORDER BY coluna ASC;`

9. `SELECT coluna FROM tabela ORDER BY coluna DESC;`

10. `SELECT coluna, COUNT(*) FROM tabela GROUP BY coluna;`

Funções de Agregação

11. `SELECT COUNT(*) FROM tabela;`

12. `SELECT AVG(coluna) FROM tabela;`

13. `SELECT SUM(coluna) FROM tabela;`

14. `SELECT MIN(coluna) FROM tabela;`

15. `SELECT MAX(coluna) FROM tabela;`

16. `SELECT coluna, AVG(coluna) FROM tabela GROUP BY coluna;`

17. `SELECT coluna, SUM(coluna) FROM tabela GROUP BY coluna;`

18. `SELECT coluna, MAX(coluna) FROM tabela WHERE condição;`

19. `SELECT coluna, MIN(coluna) FROM tabela HAVING SUM(coluna) >


valor;`

20. `SELECT COUNT(DISTINCT coluna) FROM tabela;`

Joins

21. `SELECT * FROM tabela1 INNER JOIN tabela2 ON tabela1.coluna =


tabela2.coluna;`

22. `SELECT * FROM tabela1 LEFT JOIN tabela2 ON tabela1.coluna =


tabela2.coluna;`

23. `SELECT * FROM tabela1 RIGHT JOIN tabela2 ON tabela1.coluna =


tabela2.coluna;`

24. `SELECT * FROM tabela1 FULL OUTER JOIN tabela2 ON tabela1.coluna =


tabela2.coluna;`

25. `SELECT * FROM tabela1 CROSS JOIN tabela2;`

26. `SELECT * FROM tabela1 JOIN tabela2 USING (coluna_comum);`


27. `SELECT * FROM tabela1 NATURAL JOIN tabela2;`

28. `SELECT * FROM tabela1 LEFT JOIN tabela2 ON condição WHERE


tabela2.coluna IS NULL;`

29. `SELECT * FROM tabela1 JOIN tabela2 ON tabela1.coluna =


tabela2.coluna AND condição;`

30. `SELECT tabela1.coluna, tabela2.coluna FROM tabela1 JOIN tabela2 ON


tabela1.coluna = tabela2.coluna;`

Manipulação de Dados (DML)

31. `INSERT INTO tabela (coluna1, coluna2) VALUES (valor1, valor2);`

32. `INSERT INTO tabela (coluna1, coluna2) SELECT coluna1, coluna2 FROM
outra_tabela;`

33. `UPDATE tabela SET coluna = valor WHERE condição;`

34. `DELETE FROM tabela WHERE condição;`

35. `INSERT INTO tabela (coluna1) VALUES (valor1), (valor2);`

36. `TRUNCATE TABLE tabela;`

37. `INSERT INTO tabela SET coluna1 = valor1, coluna2 = valor2;`

38. `UPDATE tabela SET coluna = valor WHERE coluna IN (valor1, valor2);`

39. `DELETE FROM tabela WHERE coluna LIKE 'valor%';`

40. `INSERT IGNORE INTO tabela (coluna1, coluna2) VALUES (valor1,


valor2);`

Criação e Modificação de Tabelas (DDL)

41. `CREATE TABLE tabela (coluna1 INT, coluna2 VARCHAR(100));`

42. `DROP TABLE tabela;`

43. `ALTER TABLE tabela ADD coluna_nova VARCHAR(100);`

44. `ALTER TABLE tabela DROP COLUMN coluna_antiga;`

45. `ALTER TABLE tabela MODIFY coluna INT NOT NULL;`


46. `ALTER TABLE tabela RENAME TO nova_tabela;`

47. `CREATE TEMPORARY TABLE tabela_temporaria AS SELECT * FROM


tabela;`

48. `CREATE TABLE IF NOT EXISTS tabela (coluna INT);`

49. `CREATE TABLE tabela LIKE outra_tabela;`

50. `RENAME TABLE tabela1 TO tabela2;`

Índices e Constraints

51. `CREATE INDEX idx_nome ON tabela (coluna);`

52. `CREATE UNIQUE INDEX idx_unico ON tabela (coluna);`

53. `DROP INDEX idx_nome ON tabela;`

54. `ALTER TABLE tabela ADD PRIMARY KEY (coluna);`

55. `ALTER TABLE tabela DROP PRIMARY KEY;`

56. `ALTER TABLE tabela ADD CONSTRAINT fk_nome FOREIGN KEY


(coluna) REFERENCES outra_tabela(coluna);`

57. `ALTER TABLE tabela DROP CONSTRAINT fk_nome;`

58. `CREATE INDEX idx_nome ON tabela (coluna1, coluna2);`

59. `CREATE INDEX idx_nome ON tabela (coluna) WHERE condição;`

60. `CREATE FULLTEXT INDEX idx_texto ON tabela (coluna);`

Transações

61. `START TRANSACTION;`

62. `COMMIT;`

63. `ROLLBACK;`

64. `SAVEPOINT sp_nome;`

65. `ROLLBACK TO sp_nome;`


66. `SET autocommit = 0;`

67. `COMMIT AND CHAIN;`

68. `SET TRANSACTION ISOLATION LEVEL READ COMMITTED;`

69. `LOCK TABLES tabela1 WRITE, tabela2 READ;`

70. `UNLOCK TABLES;`

### Funções de String

71. `SELECT UPPER(coluna) FROM tabela;`

72. `SELECT LOWER(coluna) FROM tabela;`

73. `SELECT LENGTH(coluna) FROM tabela;`

74. `SELECT SUBSTRING(coluna, 1, 5) FROM tabela;`

75. `SELECT TRIM(coluna) FROM tabela;`

76. `SELECT CONCAT(coluna1, ' ', coluna2) FROM tabela;`

77. `SELECT REPLACE(coluna, 'texto_antigo', 'texto_novo') FROM tabela;`

78. `SELECT INSTR(coluna, 'palavra') FROM tabela;`

79. `SELECT LEFT(coluna, 3) FROM tabela;`

80. `SELECT RIGHT(coluna, 4) FROM tabela;`

Funções de Data e Hora

81. `SELECT CURRENT_DATE();`

82. `SELECT CURRENT_TIME();`

83. `SELECT CURRENT_TIMESTAMP();`

84. `SELECT NOW();`

85. `SELECT YEAR(coluna_data) FROM tabela;`

86. `SELECT MONTH(coluna_data) FROM tabela;`


87. `SELECT DAY(coluna_data) FROM tabela;`

88. `SELECT DATE_ADD(coluna_data, INTERVAL 7 DAY) FROM tabela;`

89. `SELECT DATE_SUB(coluna_data, INTERVAL 1 MONTH) FROM tabela;`

90. `SELECT DATEDIFF(coluna_data1, coluna_data2) FROM tabela;`

Gerenciamento de Usuários e Permissões

91. `CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'senha';`

92. `DROP USER 'usuario'@'localhost';`

93. `GRANT SELECT ON tabela TO 'usuario'@'localhost';`

94. `REVOKE SELECT ON tabela FROM 'usuario'@'localhost';`

95. `SHOW GRANTS FOR 'usuario'@'localhost';`

96. `CREATE ROLE 'nome_do_papel';`

97. `GRANT 'nome_do_papel' TO 'usuario'@'localhost';`

98. `SET PASSWORD FOR 'usuario'@'localhost' = 'nova_senha';`

99. `SHOW PROCESSLIST;`

100. `FLUSH PRIVILEGES;`

Principais diferenças entre o SQL Server e o MySQL


Embora ambas sejam ferramentas de gerenciamento de banco de dados,
existem várias diferenças entre o Microsoft SQL Server e o MySQL.

Suporte a plataformas

Tanto o MySQL quanto o SQL Server oferecem suporte a plataformas


diferentes.

O SQL Server oferece suporte a muitas plataformas, mas não tanto quanto o
MySQL. O SQL Server oferece suporte principalmente ao Windows, com
opções de implantação na nuvem para Linux e macOS via Docker.
O MySQL oferece suporte a mais plataformas do que o SQL Server. Você pode
instalar o MySQL na maioria dos sistemas operacionais, incluindo Linux,
macOS, Windows, Oracle Solaris, OpenBSD e HP-UX.

Suporte a linguagens de programação

Estas são algumas linguagens de programação compatíveis com o SQL


Server: C++, Java, Python, PHP, Go, Ruby e Delphi.

O MySQL oferece suporte às linguagens compatíveis com o SQL Server e a


muitas outras, incluindo Perl, Haskel e TCL. Parte do apelo do MySQL é que
ele é compatível com muitas linguagens de programação. Isso o torna uma
opção flexível para os desenvolvedores usarem.

Recursos

Como ambos são sistemas de gerenciamento de banco de dados relacional, o


MySQL e o SQL Server oferecem muitos dos mesmos atributos. Ambos têm
alta performance e podem gerenciar projetos de tamanhos variados. Da
mesma forma, podem hospedar vários bancos de dados em um único servidor
e usar índices para classificar dados e otimizar a performance. No entanto,
existem alguns atributos existentes no MySQL que o SQL Server não tem, e o
oposto também é válido.

Por exemplo, você pode usar o SQL Server para filtrar várias tabelas sem
realizar pesquisas individuais. Você também pode interromper uma consulta
sem interromper o processo de backup.

Com o MySQL, você precisaria executar várias instruções, pois só pode filtrar
em um nível de banco de dados individual. Com o MySQL, você também deve
interromper todo o processo para cancelar a execução de uma consulta.

Escalabilidade

Quando o número de linhas aumenta no SQL Server, não há muito aumento no


tempo de resposta. É por isso que a maioria dos desenvolvedores considera o
SQL Server uma tecnologia altamente escalável. Em sua versão paga, o SQL
Server tem vários atributos que o ajudam a expandir com mais eficiência.
Esses atributos incluem compressão, particionamento avançado e tecnologia
na memória.

Quando o número de linhas de dados aumenta no MySQL, também ocorre um


aumento no tempo necessário para fazer as coisas.

Performance

O MySQL e o SQL Server são ambos sistemas de gerenciamento de banco de


dados relacional de alta performance. Você deve considerar os dois bancos de
dados como poderosos, escaláveis e confiáveis.

O SQL Server oferece otimizador de consultas e índices de armazenamento de


colunas para otimizar a performance. À medida que você aumenta as
workloads do banco de dados, o SQL Server normalmente tem uma
performance um pouco melhor que a do MySQL.

O MySQL usa grupos de conexões e caches de consultas para otimizar a


performance.

Linguagem e sintaxe de consulta

Tanto o SQL Server quanto o MySQL usam SQL para consultar o banco de
dados. Você pode usar comandos SQL e instruções SQL para interagir com
eles. Essa é a linguagem padrão para gerenciar bancos de dados relacionais.
No entanto, o MySQL e o SQL Server diferem ligeiramente na sintaxe, inclusive
nos comandos de criação, leitura, atualização e exclusão (CRUD).

O SQL Server usa INSERT para adicionar novos dados a uma tabela. Para
excluir dados, o SQL Server usa SELECT FROM e DELETE FROM. O SQL
Server usa aspas duplas para delimitar tabelas.

O MySQL usa INSERT INTO para adicionar novos dados a uma tabela. Para
excluir dados, o MySQL usa SELECT e DELETE. O MySQL usa backticks para
delimitar tabelas.

Conectores e suporte para integração

Os conectores e as integrações que o SQL Server oferece funcionam melhor


com outros produtos da Microsoft. Por exemplo, ele oferece o Microsoft
ADO.NET, o Driver ODBC e o Driver JDBC. Você também pode se conectar ao
Azure Data Studio e a outros produtos da Microsoft.

O MySQL começa com o MySQL Workbench, que você pode usar para projetar
e criar bancos de dados. Como uma ferramenta de código aberto, ele também
vem com várias APIs e conectores adicionais que você pode usar.

Suporte e documentação do produto

Tanto o SQL Server quanto o MySQL são tecnologias maduras. Portanto, há


muita documentação online que você pode encontrar e ler.

O SQL Server é um software patenteado da Microsoft, o que significa que você


precisa pagar para usá-lo na maioria dos casos.

O MySQL é de código aberto e está sob a Licença pública geral, versão 2.


Embora você possa pagar por suporte adicional, a maioria das versões do
MySQL é gratuita.

Recursos de segurança

Tanto o SQL Server quanto o MySQL têm uma variedade de atributos de


segurança que protegem contra violações de dados, acesso não autorizado e
grandes ameaças de segurança semelhantes.
Com o SQL Server, você não pode acessar arquivos durante o runtime. Além
disso, o SQL Server tem uma variedade de outros atributos que restringem o
acesso não autorizado dos usuários, como o controle de acesso baseado em
funções. O SQL Server também fornece segurança em nível de linha para
mascaramento dinâmico de dados e proteção de dados confidenciais.

Elas são coleções binárias, mas os desenvolvedores podem usar o MySQL


para manipular bancos de dados enquanto estão em execução. Por esse
motivo, você pode considerar o MySQL menos seguro que o SQL Server

Requisitos mínimos para rodar

Os requisitos mínimos e adequados para rodar **MySQL** e **SQL Server** de


forma satisfatória variam dependendo do volume de dados, da quantidade de
usuários simultâneos e do tipo de operações realizadas. Aqui estão os
requisitos gerais, tanto para servidores quanto para workstations.

Requisitos para o **MySQL**

### Requisitos Mínimos (Server/Workstation)

- **Processador**: Dual-core (x86 ou x64).

- **Memória RAM**: 1 GB (recomendado pelo menos 2 GB para cargas mais


leves).

- **Espaço em disco**: 500 MB para instalação básica (mais espaço


dependendo do volume de dados).

- **Sistema Operacional**:

- Windows 10 ou superior (para workstations).

- Windows Server 2016 ou superior (para servidores).

- Distribuições Linux como Ubuntu, Debian, CentOS, RHEL.

- **Rede**: Conexão de rede mínima (100 Mbps) para comunicação entre


clientes e servidor.

Requisitos Adequados (Server)

- **Processador**: Quad-core ou superior (x64) com suporte a instruções


modernas (ex. AVX2).
- **Memória RAM**: 8 GB ou mais (quanto maior a carga, mais RAM é
necessária).

- **Espaço em disco**: SSD de alta velocidade (mínimo 100 GB, dependendo


do tamanho do banco de dados).

- **Sistema Operacional**:

- Windows Server 2019 ou superior.

- Distribuições Linux otimizadas para servidores (CentOS, Ubuntu Server).

- **Rede**: Conexão de rede gigabit (1 Gbps) ou superior para melhor


desempenho em ambientes multiusuários.

- **Outros**: Backup automático e redundância de armazenamento, como RAID


1 ou RAID 5.

Requisitos para o **SQL Server**

Requisitos Mínimos (Server/Workstation)

- **Processador**: 1.4 GHz (x64) compatível com o conjunto de instruções x64.

- **Memória RAM**: 2 GB para o SQL Server Express; 4 GB para outras


edições.

- **Espaço em disco**:

- 6 GB para a instalação básica.

- Mais espaço dependendo do tamanho das bases de dados.

- **Sistema Operacional**:

- Windows 10 ou superior (para workstations).

- Windows Server 2016 ou superior (para servidores).

- **Rede**: Conexão de rede de 100 Mbps.

Requisitos Adequados (Server)

- **Processador**: Quad-core, 2.0 GHz ou superior (x64) com suporte a


instruções avançadas.

- **Memória RAM**: 16 GB ou mais (para grandes volumes de dados ou alta


concorrência, 32 GB ou mais pode ser ideal).
- **Espaço em disco**: SSD de alta velocidade para melhor desempenho I/O,
mínimo de 100 GB para dados e logs de transações.

- **Sistema Operacional**:

- Windows Server 2019 ou superior.

- Linux: Red Hat Enterprise Linux, Ubuntu, ou SLES para edições compatíveis
do SQL Server.

- **Rede**: Conexão de rede gigabit (1 Gbps) ou superior para melhor


comunicação com clientes e backups.

- **Outros**:

- Suporte para **RAID** (preferencialmente RAID 10 para desempenho).

- Configuração de **cluster** ou réplica de banco de dados para alta


disponibilidade.

- **Backup automático** e plano de recuperação.

Observações

- **MySQL** tende a ser mais leve e pode rodar de forma mais eficiente em
hardware menos robusto em comparação ao SQL Server, especialmente em
ambientes Linux.

- **SQL Server**, sendo uma solução mais pesada e corporativa, requer


recursos de hardware mais robustos para aproveitar todas as suas
funcionalidades, como o Analysis Services e Reporting Services.

- Para sistemas de produção com alto volume de transações, mais memória


RAM, processadores com múltiplos núcleos e armazenamento rápido (SSD)
são essenciais para evitar gargalos e garantir o desempenho.

Você também pode gostar