1. SQL语句概述
SQL(Structured Query Language)是一种用来控制关系型数据库系统的数据定义、数据操作和数据控制语言。
数据定义语言(Data Definition Language,DDL)用于描述数据库对象的定义,如创建表、修改表结构等。常见的DDL指令有:CREATE、ALTER、DROP等。
数据操作语言(Data Manipulation Language,DML)用于对数据库中的表进行增、删、改、查等基本操作。常见的DML指令有:SELECT、INSERT、UPDATE、DELETE等。
数据控制语言(Data Control Language,DCL)是对数据库的访问权限进行控制的语言,常见的DCL指令有:GRANT、REVOKE等。
2. SELECT查询语句
2.1 基本语法
SELECT语句是用来从表中查询数据的,其基本语法如下:
SELECT column1, column2, ... FROM table_name WHERE condition;
其中,column1、column2是要查询的列,可以是多个列,用逗号分隔;table_name为待查询的表名;condition为查询条件,可以省略。
2.2 WHERE子句
WHERE子句用于指定查询条件,可以根据指定的条件查询满足要求的数据记录。WHERE子句中可以使用比较运算符、逻辑运算符、IN关键字等操作符进行条件查询。
SELECT column1, column2, ... FROM table_name WHERE condition1 [AND|OR] condition2;
其中,AND和OR关键字用于连接多个条件,AND表示同时满足多个条件,OR表示满足任意一个条件即可。
2.3 LIKE关键字
LIKE关键字用于进行模糊查询,一般与通配符一起使用。通配符包含两种,%表示任意长度的任意字符,_表示任意一个字符。例如:
SELECT * FROM table_name WHERE column_name LIKE 'a%'; //查询以字母'a'开头的所有记录
2.4 ORDER BY关键字
ORDER BY关键字用于对查询的结果进行排序,可以按照一个或多个列进行排序,默认为升序排序。例如:
SELECT * FROM table_name ORDER BY column_name DESC; //按照column_name降序排序
3. INSERT插入语句
3.1 基本语法
INSERT语句用于向表中插入新的数据记录,其基本语法如下:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
其中,table_name为待插入数据的表名;column1、column2为插入的列名,可以为多列,用逗号分隔;value1、value2为插入的具体数值,需要与列的数量和数据类型对应。
3.2 插入多条记录
可以使用INSERT INTO语句插入多条记录,只需要在VALUES后面添加多条插入的数值即可。例如:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...), (value1, value2, ...), ...;
4. UPDATE更新语句
4.1 基本语法
UPDATE语句用于修改表中现有的数据记录,其基本语法如下:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
其中,table_name为待修改数据的表名;column1、column2为要修改的列名;value1、value2为修改的具体数值;WHERE子句用于指定修改的记录,多条记录可以用AND或OR连接,也可以省略。
4.2 修改多条记录
可以使用UPDATE语句修改多条记录,只需要在WHERE子句中添加多个条件即可。例如:
UPDATE table_name SET column1 = value1 WHERE condition1;
UPDATE table_name SET column1 = value1 WHERE condition2;
5. DELETE删除语句
5.1 基本语法
DELETE语句用于删除表中的数据记录,其基本语法如下:
DELETE FROM table_name WHERE condition;
其中,table_name为待删除数据的表名;WHERE子句用于指定删除的记录,多条记录可以用AND或OR连接,也可以省略。
5.2 删除所有记录
可以使用DELETE FROM语句删除表中所有记录,只需要省略WHERE子句即可。例如:
DELETE FROM table_name;
6. JOIN表连接
6.1 INNER JOIN
INNER JOIN是最常见的连接方式,它返回两个表中满足连接条件的记录。
SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
其中,table1和table2为要连接的两个表名;column_name为要连接的列名。
6.2 LEFT JOIN
LEFT JOIN返回左表中的所有记录以及右表中满足连接条件的记录。如果右表中没有匹配的记录,就返回NULL值。
SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
6.3 RIGHT JOIN
RIGHT JOIN返回右表中的所有记录以及左表中满足连接条件的记录。如果左表中没有匹配的记录,就返回NULL值。
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
6.4 FULL OUTER JOIN
FULL OUTER JOIN返回左表和右表中的所有记录,如果有匹配的记录,则返回匹配的记录,如果没有匹配的记录,则返回NULL值。
SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
7. 总结
以上是SQL语句的基本知识点,可以满足基本的数据库操作需求。除此之外,还有一些高级用法,如子查询、分组查询、聚合函数等,可以根据实际需求进行学习和使用。