MySQL是一种关系型数据库管理系统,它使用结构化查询语言(SQL)进行数据操作,在MySQL中,DDL、DML和DQL是三种基本的SQL语句类型,分别用于定义数据库结构、操作数据和查询数据,下面我们将详细介绍这三种SQL语句的基本语法。
DDL(Data Definition Language)
DDL用于定义和管理数据库及其对象(如表、索引等),以下是一些常用的DDL语句:
1、创建数据库:
CREATE DATABASE 数据库名;
2、删除数据库:
DROP DATABASE 数据库名;
3、创建表:
CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ... );
4、删除表:
DROP TABLE 表名;
5、修改表结构:
ALTER TABLE 表名 ADD 列名 数据类型; -添加列 DROP COLUMN 列名; -删除列 MODIFY 列名 数据类型; -修改列数据类型 RENAME COLUMN 旧列名 TO 新列名; -修改列名
6、创建索引:
CREATE INDEX 索引名 ON 表名 (列名);
7、删除索引:
DROP INDEX 索引名 ON 表名;
DML(Data Manipulation Language)
DML用于操作数据库中的数据,以下是一些常用的DML语句:
1、插入数据:
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
2、更新数据:
UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ... WHERE 条件;
3、删除数据:
DELETE FROM 表名 WHERE 条件;
DQL(Data Query Language)
DQL用于查询数据库中的数据,以下是一些常用的DQL语句:
1、查询所有数据:
SELECT * FROM 表名;
2、查询指定列:
SELECT 列名1, 列名2, ... FROM 表名;
3、带条件查询:
SELECT * FROM 表名 WHERE 条件; -AND/OR可以连接多个条件,如WHERE A=1 AND B=2;
4、排序查询:
SELECT * FROM 表名 ORDER BY 列名 ASC/DESC; -ASC表示升序,DESC表示降序,默认为升序;可以对多个列进行排序,如ORDER BY A, B;
5、分组查询:
SELECT * FROM 表名 GROUP BY 列名; -根据指定的列进行分组,如GROUP BY A; HAVING可以对分组后的数据进行筛选,如HAVING A>10;
6、连接查询:多张表之间通过某个相同的字段进行关联查询,如JOIN、LEFT/RIGHT/INNER等关键字,SELECT * FROM table1 INNER/LEFT/RIGHT/FULLJOIN table2 ON table1.id=table2.id;,INNER表示内连接,只返回两个表中匹配的行;LEFT表示左连接,返回左表中的所有行,即使右表中没有匹配的行;RIGHT表示右连接,返回右表中的所有行,即使左表中没有匹配的行;FULL表示全连接,返回两个表中的所有行,无论是否匹配,ON关键字后面是连接的条件。