O Tutorial do MySQL é o segundo blog desta série de blogs. No blog anterior 'O que é MySQL' , apresentei todas as terminologias básicas que você precisava entender antes de começar a usar esse banco de dados relacional. Neste blog do MySQL, você aprenderá todas as operações e comandos necessários para explorar seus bancos de dados.
Os tópicos abordados neste blog são divididos principalmente em 4 categorias:DDL, DML, DCL &TCL.
- O DDL (Data Definition Language) consiste naqueles comandos que são usados para definir o banco de dados. Exemplo:CREATE, DROP, ALTER, TRUNCATE, COMMENT, RENAME.
- O DML Os comandos (Data Manipulation Language) lidam com a manipulação dos dados presentes no banco de dados. Exemplo:SELECT, INSERT, UPDATE, DELETE.
- O DCL Os comandos (Data Control Language) lidam com os direitos, permissões e outros controles do sistema de banco de dados. Exemplo:GRANT, INVOKE
- O TCL (Linguagem de Controle de Transação) consiste naqueles comandos que lidam principalmente com a transação do banco de dados.
Além dos comandos, a seguir estão os outros tópicos abordados no blog:
- Diferentes tipos de chaves no banco de dados
- Restrições usadas no banco de dados
- Consultas aninhadas
- Juntas
- Definir operações
Vamos cobrir cada uma dessas categorias uma por uma.
Neste blog sobre MySQL Tutorial, vou considerar o banco de dados abaixo como um exemplo, para mostrar como escrever comandos.
StudentID | StudentName | ParentName | Endereço | Cidade | PostalCode | País | Taxas |
01 | Haznitiz | Emiz | Dellys Road | Fir | 35110 | Argélia | 42145 |
02 | Shubham | Narayan | MG Road | Bangalore | 560001 | Índia | 45672 |
03 | Salomao | Valentim | Mayo Road | Rio Claro | 27460 | Brasil | 65432 |
04 | Vishal | Ramesh | Queens Quay | Toronto | 416 | Canadá | 23455 |
05 | Park Jimin | Kim Tai Hyung | Rua Gangnam | Seul | 135081 | Coreia do Sul | 22353 |
Tabela 1: Banco de dados de exemplo - Tutorial MySQL
Então, vamos começar agora!
Inscreva-se em nosso canal do youtube para receber novas atualizações..!
Tutorial MySQL:comandos de definição de dados (DDL)
Esta seção consiste nesses comandos, pelos quais você pode definir seu banco de dados. Os comandos são:
- CRIAR
- ALTER
- DROP
- TRUNCAR
- RENOMEAR
Agora, antes de começar com os comandos, deixe-me apenas dizer como mencionar os comentários no MySQL.
Comentários
Como qualquer outra linguagem de programação, existem basicamente dois tipos de comentários.
- Comentários de linha única – Os comentários de linha única começam com '–'. Portanto, qualquer texto mencionado após — até o final da linha será ignorado pelo compilador.
Exemplo:
--Select all: SELECT * FROM Students;
- Comentários de várias linhas – Os comentários de várias linhas começam com /* e terminam com */. Portanto, qualquer texto mencionado entre /* e */ será ignorado pelo compilador.
Exemplo:
/*Select all the columns of all the records in the Students table:*/ SELECT * FROM Students;
Agora que você sabe como mencionar comentários no MySQL, vamos continuar com os comandos DDL.
CRIAR
A instrução create é usada para criar um esquema, tabelas ou um índice.
A declaração "CRIAR ESQUEMA"
Esta instrução é usada para criar um banco de dados.
Sintaxe:
CREATE SCHEMA Database_Name;
Exemplo:
CREATE SCHEMA StudentsInfo;
A declaração "CREATE TABLE"
Esta instrução é usada para criar uma nova tabela em um banco de dados.
Sintaxe:
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );
Exemplo:
CREATE TABLE Students ( StudentID int, StudentName varchar(255), ParentName varchar(255), Address varchar(255), PostalCode int, City varchar(255) );
A declaração "CREATE TABLE AS"
Esta instrução é usada para criar uma nova tabela a partir de uma tabela existente. Portanto, esta tabela obtém as mesmas definições de coluna da tabela existente.
Sintaxe:
CREATE TABLE new_table_name AS SELECT column1, column2,... FROM existing_table_name WHERE ....;
Exemplo:
CREATE TABLE ExampleTable AS SELECT Studentname, Parentname FROM Students;
ALTER
O comando ALTER é usado para adicionar, modificar ou excluir restrições ou colunas.
A declaração "ALTER TABLE"
Esta instrução é usada para adicionar, modificar ou excluir restrições e colunas de uma tabela.
Sintaxe:
ALTER TABLE table_name ADD column_name datatype;
Exemplo:
ALTER TABLE Students ADD DateOfBirth date;
DEIXAR
O comando DROP é usado para excluir o banco de dados, tabelas ou colunas.
A declaração 'DROP SCHEMA'
Esta instrução é usada para eliminar o esquema completo.
Sintaxe:
DROP SCHEMA schema_name;
Exemplo:
DROP SCHEMA StudentsInfo;
A declaração 'DROP TABLE'
Esta instrução é usada para eliminar a tabela inteira com todos os seus valores.
Sintaxe:
DROP TABLE table_name;
Exemplo:
DROP TABLE table_name;
TRUNCAR
Esta instrução é usada para excluir os dados presentes em uma tabela, mas a tabela não é excluída.
Sintaxe:
TRUNCATE TABLE table_name;
Exemplo:
TRUNCATE TABLE Students;
RENOMEAR
Esta instrução é usada para renomear uma ou mais tabelas.
Sintaxe:
RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ...
Exemplo:
RENAME Students TO Infostudents;
Agora, antes de passar para as próximas seções, deixe-me falar sobre os vários tipos de Chaves e Restrições que você precisa mencionar ao manipular os bancos de dados.
Tutorial MySQL: Diferentes tipos de chaves no banco de dados
Existem principalmente 5 tipos de Chaves, que podem ser mencionadas no banco de dados.
- Chave do candidato – O conjunto mínimo de atributos que pode identificar exclusivamente uma tupla é conhecido como chave candidata. Uma relação pode conter mais de uma única chave candidata, em que a chave é uma chave simples ou composta.
- Super Chave – O conjunto de atributos que podem identificar exclusivamente uma tupla é conhecido como Super Chave. Portanto, uma chave candidata é uma superchave, mas vice-versa não é verdade.
- Chave primária – Um conjunto de atributos que podem ser usados para identificar exclusivamente cada tupla também é uma chave primária. Portanto, se houver de 3 a 4 chaves candidatas presentes em um relacionamento, entre elas, uma pode ser escolhida como chave primária.
- Chave alternativa – A chave candidata diferente da chave primária é chamada de chave alternativa.
- Chave estrangeira – Um atributo que só pode receber os valores presentes como valores de algum outro atributo é a chave estrangeira do atributo ao qual se refere.
Tutorial MySQL: Restrições usadas no banco de dados
Consulte a imagem abaixo as restrições utilizadas no banco de dados.
Figura 1: Restrições usadas no banco de dados - Tutorial MySQL
Agora que você conhece os vários tipos de chaves e restrições, vamos para a próxima seção, ou seja, Comandos de Manipulação de Dados.
Quer ser um Administrador de Banco de Dados certificado?
Tutorial MySQL: Comandos de manipulação de dados (DML)
Esta seção consiste nesses comandos, pelos quais você pode manipular seu banco de dados. Os comandos são:
- USE
- INSERIR
- ATUALIZAÇÃO
- EXCLUIR
- SELECIONAR
Além desses comandos, existem também outros operadores/funções manipulativas, como:
- OPERADORES LÓGICOS
- OPERADORES ARITMÉTICOS, BITWISE, COMPARAÇÕES E COMPOSTOS
- FUNÇÕES AGREGADAS
- OPERADORES ESPECIAIS
USE
A instrução USE é usada para mencionar qual banco de dados deve ser usado para realizar todas as operações.
Sintaxe:
USE Database_name;
Exemplo:
USE StudentsInfo;
INSERIR
Esta instrução é usada para inserir novos registros em uma tabela.
Sintaxe:
A instrução INSERT INTO pode ser escrita das duas maneiras a seguir:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); --You need not mention the column names INSERT INTO table_name VALUES (value1, value2, value3, ...);
Exemplo:
INSERT INTO Infostudents(StudentID, StudentName, ParentName, Address, City, PostalCode, Country) VALUES ('06', 'Sanjana','Jagannath', 'Banjara Hills', 'Hyderabad', '500046', 'India'); INSERT INTO Infostudents VALUES ('07', 'Shivantini','Praveen', 'Camel Street', 'Kolkata', '700096', 'India');
ATUALIZAÇÃO
Esta instrução é usada para modificar os registros existentes em uma tabela.
Sintaxe:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
Exemplo:
UPDATE Infostudents SET StudentName = 'Alfred', City= 'Frankfurt' WHERE StudentID = 1;
EXCLUIR
Esta instrução é usada para excluir registros existentes em uma tabela.
Sintaxe:
DELETE FROM table_name WHERE condition;
Exemplo:
DELETE FROM Infostudents WHERE StudentName='Salomao';
SELECIONAR
Esta instrução é usada para selecionar dados de um banco de dados e os dados retornados são armazenados em uma tabela de resultados, chamada de conjunto de resultados .
A seguir estão as duas maneiras de usar esta declaração:
Sintaxe:
SELECT column1, column2, ... FROM table_name; --(*) is used to select all from the table SELECT * FROM table_name;
Exemplo:
SELECT StudentName, City FROM Infostudents; SELECT * FROM Infostudents;
Além da palavra-chave SELECT individual, também veremos as seguintes instruções, que são usadas com a palavra-chave SELECT:
- DISTINTO
- ORDER POR
- GRUPAR POR
- Cláusula HAVING
A declaração "SELECT DISTINCT"
Esta instrução é usada para retornar apenas valores distintos ou diferentes. Portanto, se você tiver uma tabela com valores duplicados, poderá usar essa instrução para listar valores distintos.
Sintaxe:
SELECT DISTINCT column1, column2, ... FROM table_name;
Exemplo:
SELECT Country FROM Students;
A declaração "ORDER BY"
Esta instrução é usada para classificar os resultados desejados em ordem crescente ou decrescente. Por padrão, os resultados seriam classificados em ordem crescente. Se você quiser os registros no conjunto de resultados em ordem decrescente, use o DESC palavra-chave.
Sintaxe:
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;
Exemplo:
SELECT * FROM Infostudents ORDER BY Country; SELECT * FROM Infostudents ORDER BY Country DESC; SELECT * FROM Infostudents ORDER BY Country, StudentName; SELECT * FROM Infostudents ORDER BY Country ASC, StudentName DESC;
A declaração 'GROUP BY'
Esta instrução é usada com as funções agregadas para agrupar o conjunto de resultados por uma ou mais colunas.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
Exemplo:
SELECT COUNT(StudentID), Country FROM Infostudents GROUP BY Country ORDER BY COUNT(StudentID) DESC;
A Declaração da Cláusula 'HAVING'
Desde ONDE palavra-chave não pode ser usada com funções agregadas, a cláusula HAVING foi introduzida.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);
Exemplo:
SELECT COUNT(StudentID), City FROM Infostudents GROUP BY City HAVING COUNT(Fees) > 23000;
OPERADORES LÓGICOS
Este conjunto de operadores consiste em operadores lógicos como AND/OR/NOT.
E OPERADOR
O operador AND é usado para filtrar registros que dependem de mais de uma condição. Este operador exibe os registros, que atendem a todas as condições separadas por AND, e dão a saída TRUE.
Sintaxe:
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;
Exemplo:
SELECT * FROM Infostudents WHERE Country='Brazil' AND City='Rio Claro';
OU OPERADOR
O operador OR exibe os registros que satisfazem qualquer uma das condições separadas por OR e dá a saída TRUE.
Sintaxe:
SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...;
Exemplo:
SELECT * FROM Infostudents WHERE City='Toronto' OR City='Seoul';
NÃO OPERADOR
Este operador exibe um registro quando a(s) condição(ões) NÃO é VERDADEIRA.
Sintaxe:
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
Exemplo:
SELECT * FROM Infostudents WHERE NOT Country='India'; --You can also combine all the above three operators and write a query like this: SELECT * FROM Infostudents WHERE Country='India' AND (City='Bangalore' OR City='Canada');Interessado em quebrar Entrevistas para Administrador de Banco de Dados?
OPERADORES ARITMÉTICOS, BIT-WISE, COMPARAÇÃO E COMPOSTOS
Consulte a imagem abaixo.
Figura 2: Operadores aritméticos, bit a bit, de comparação e compostos – Tutorial MySQL
FUNÇÕES AGREGADAS
Esta seção do artigo inclui as seguintes funções:
- MIN()
- MAX()
- COUNT()
- AVG()
- SOMA()
Função MIN()
Esta função retorna o menor valor da coluna selecionada em uma tabela.
Sintaxe:
SELECT MIN(column_name) FROMtable_name WHEREcondition;
Exemplo:
SELECT MIN(StudentID) AS SmallestID FROM Infostudents;
Função MAX()
Esta função retorna o maior valor da coluna selecionada em uma tabela.
Sintaxe:
SELECT MAX(column_name) FROM table_name WHERE condition;
Exemplo:
SELECT MAX(Fees) AS MaximumFees FROM Infostudents;
Função COUNT()
Esta função retorna o número de linhas que correspondem aos critérios especificados.
Sintaxe:
SELECT COUNT(column_name) FROM table_name WHERE condition;
Exemplo:
SELECT COUNT(StudentID) FROM Infostudents;
Função AVG()
Esta função retorna o valor médio de uma coluna numérica que você escolher.
Sintaxe:
SELECT AVG(column_name) FROM table_name WHERE condition;
Exemplo:
SELECT AVG(Fees) FROM Infostudents;
Função SOMA()
Esta função retorna a soma total de uma coluna numérica que você escolher.
Sintaxe:
SELECT SUM(column_name) FROM table_name WHERE condition;
Exemplo:
SELECT SUM(Fees) FROM Infostudents;
OPERADORES ESPECIAIS
Esta seção inclui os seguintes operadores:
- ENTRE
- É NULO
- CURTIR
- IN
- EXISTE
- TODOS
- QUALQUER
BETWEEN Operador
Este operador é um operador inclusivo que seleciona valores (números, textos ou datas) dentro de um determinado intervalo.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
Exemplo:
SELECT * FROM Infostudents WHERE Fees BETWEEN 20000 AND 40000;
Operador É NULO
Como não é possível testar os valores NULL com os operadores de comparação (=, <,>), podemos usar os operadores IS NULL e IS NOT NULL.
Sintaxe:
--Syntax for IS NULL SELECT column_names FROM table_name WHERE column_name IS NULL; --Syntax for IS NOT NULL SELECT column_names FROM table_name WHERE column_name IS NOT NULL;
Exemplo:
SELECT StudentName, ParentName, Address FROM Infostudents WHERE Address IS NULL; SELECT StudentName, ParentName, Address FROM Infostudents WHERE Address IS NOT NULL;
Operador LIKE
Este operador é usado em uma cláusula WHERE para procurar um padrão especificado em uma coluna de uma tabela.
Os mencionados abaixo são os dois curingas que são usados em conjunto com o operador LIKE:
- % – O sinal de porcentagem representa zero, um ou vários caracteres
- _ – O sublinhado representa um único caractere
Sintaxe:
SELECT column1, column2, ... FROM table_name WHERE column LIKE pattern;
Consulte a tabela a seguir para os vários padrões que você pode mencionar com o operador LIKE.
LIKE Operator | Descrição |
WHERE CustomerName LIKE ‘z% | Encontra qualquer valor que comece com “z” |
WHERE CustomerName LIKE ‘%z’ | Encontra quaisquer valores que terminem com “z” |
WHERE CustomerName LIKE ‘%and%’ | Encontra quaisquer valores que tenham “e” em qualquer posição |
WHERE CustomerName LIKE ‘_s%’ | Encontra quaisquer valores que tenham “s” na segunda posição. |
WHERE CustomerName LIKE 'd_%_%' | Encontra quaisquer valores que comecem com “d” e tenham pelo menos 3 caracteres de comprimento |
WHERE ContactName LIKE ‘j%l’ | Encontra qualquer valor que comece com “j” e termine com “l” |
Tabela 2: Padrões mencionados com o operador LIKE – Tutorial MySQL
Exemplo:
SELECT * FROM Infostudents WHERE StudentName LIKE 'S%';
Operador IN
Este é um operador abreviado para várias condições OR que permite especificar vários valores em uma cláusula WHERE.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
Exemplo:
SELECT * FROM Infostudents WHERE Country IN ('Algeria', 'India', 'Brazil');
Observação: Você também pode usar IN ao escrever consultas aninhadas. Considere a sintaxe abaixo:
Operador EXISTS
Este operador é usado para testar se um registro existe ou não.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);
Exemplo:
SELECT StudentName FROM Infostudents WHERE EXISTS (SELECT ParentName FROM Infostudents WHERE StudentId = 05 AND Price < 25000);
TODOS os operadores
Este operador é usado com uma cláusula WHERE ou HAVING e retorna true se todos os valores da subconsulta atenderem à condição.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition);
Exemplo:
SELECT StudentName FROM Infostudents WHERE StudentID = ALL (SELECT StudentID FROM Infostudents WHERE Fees > 20000);
QUALQUER Operador
Semelhante ao operador ALL, o operador ANY também é usado com uma cláusula WHERE ou HAVING e retorna true se algum dos valores da subconsulta atender à condição.
Sintaxe:
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);
Exemplo:
SELECT StudentName FROM Infostudents WHERE StudentID = ANY (SELECT SttudentID FROM Infostudents WHERE Fees BETWEEN 22000 AND 23000);
Agora, que já falei muito sobre comandos DML, deixe-me falar um pouco sobre consultas aninhadas, junções e operações de conjunto.
Quer saber como configurar um banco de dados relacional na nuvem?
Tutorial MySQL: Consultas aninhadas
Consultas aninhadas são aquelas consultas que têm uma consulta externa e uma subconsulta interna. Então, basicamente, a subconsulta é uma consulta aninhada em outra consulta, como SELECT, INSERT, UPDATE ou DELETE. Consulte a imagem abaixo:
Fig 3: Representação de consultas aninhadas – Tutorial MySQL
Tutorial MySQL: Participações
JOINS são usados para combinar linhas de duas ou mais tabelas, com base em uma coluna relacionada entre essas tabelas. A seguir estão os tipos de junções:
- INNER JOIN: Essa junção retorna os registros que possuem valores correspondentes em ambas as tabelas.
- FULL JOIN: This join returns all those records which either have a match in the left or the right table.
- LEFT JOIN: This join returns records from the left table, and also those records which satisfy the condition from the right table.
- RIGHT JOIN: This join returns records from the right table, and also those records which satisfy the condition from the left table.
Refer to the image below.
Fig 4: Representation Of Joins – MySQL Tutorial
Let’s consider the below table apart from the Infostudents table, to understand the syntax of joins.
CourseID | StudentID | CourseName | StartDate |
1 | 10 | DevOps | 09-09-2018 |
2 | 11 | Blockchain | 07-04-2018 |
3 | 12 | Python | 08-06-2018 |
Table 3: Sample Database – MySQL Tutorial
INNER JOIN
Syntax:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Courses.CourseID, Infostudents.StudentName FROM Courses INNER JOIN Infostudents ON Courses.StudentID = Infostudents.StudentID;
FULL JOIN
Syntax:
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Infostudents.StudentName, Courses.CourseID FROM Infostudents FULL OUTER JOIN Orders ON Infostudents.StudentID=Orders.StudentID ORDER BY Infostudents.StudentName;
LEFT JOIN
Syntax:
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Infostudents.StudentName, Courses.CourseID FROM Infostudents LEFT JOIN Courses ON Infostudents.CustomerID = Courses.StudentID ORDER BY Infostudents.StudentName;
RIGHT JOIN
Syntax:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Courses.CourseID FROM Courses RIGHT JOIN Infostudents ON Courses.StudentID = Infostudents.StudentID ORDER BY Courses.CourseID;
MySQL Tutorial: Set Operations
There are mainly three set operations:UNION, INTERSECT, SET DIFFERENCE. You can refer to the image below to understand the set operations in SQL.
Now, that you guys know the DML commadsn. Let’s move onto our next section and see the DCL commands.
MySQL Tutorial: Data Control (DCL) Commands
This section consists of those commands which are used to control privileges in the database. The commands are:
- GRANT
- REVOKE
GRANT
This command is used to provide user access privileges or other privileges for the database.
Syntax:
GRANT privileges ON object TO user;
Example:
GRANT CREATE ANY TABLE TO localhost;
REVOKE
This command is used to withdraw user’s access privileges given by using the GRANT command.
Syntax:
REVOKE privileges ON object FROM user;
Example:
REVOKE INSERT ON *.* FROM Infostudents;
Now, let’s move on to the last section of this blog i.e. the TCL Commands.
MySQL Tutorial: Transaction Control (TCL) Commands
This section of commands mainly deals with the transaction of the database. The commands are:
- COMMIT
- ROLLBACK
- SAVEPOINT
- RELEASE SAVEPOINT
- SET TRANSACTION
COMMIT
This command saves all the transactions to the database since the last COMMIT or ROLLBACK command.
Syntax:
COMMIT;
Example:
DELETE FROM Infostudents WHERE Fees = 42145; COMMIT;
ROLLBACK
This command is used to undo transactions since the last COMMIT or ROLLBACK command was issued.
Syntax:
ROLLBACK;
Example:
DELETE FROM Infostudents WHERE Fees = 42145; ROLLBACK;
SAVEPOINT
This command creates points within the groups of transactions in which to ROLLBACK. So, with this command, you can simply roll the transaction back to a certain point without rolling back the entire transaction.
Syntax:
SAVEPOINT SAVEPOINT_NAME; --Syntax for saving the SAVEPOINT ROLLBACK TO SAVEPOINT_NAME; --Syntax for rolling back to the Savepoint command
Example:
SAVEPOINT SP1; DELETE FROM Infostudents WHERE Fees = 42145; SAVEPOINT SP2;
RELEASE SAVEPOINT
You can use this command to remove a SAVEPOINT that you have created.
Syntax:
RELEASE SAVEPOINT SAVEPOINT_NAME;
Example:
RELEASE SAVEPOINT SP2;
SET TRANSACTION
This command gives a name to the transaction.
Syntax:
SET TRANSACTION [ READ WRITE | READ ONLY ];
I hope you enjoyed reading this blog on MySQL Tutorial blog. We have seen the different commands that will help you write queries and play around with your databases.
Interested in learning more about MySQL?
If you wish to learn more about MySQL and get to know this open source relational database, then check out our MySQL DBA Certification Training which comes with instructor-led live training and real-life project experience. This training will help you understand MySQL in depth and help you achieve mastery over the subject.
Got a question for us? Please mention it in the comments section of ”MySQL Tutorial ” and I will get back to you.