Day15 SQL巩固学习
SQL语法学习
大二学习的数据库到现在已经快忘的差不多了,只会一些简单的增删改查,group by order by等都忘记了,决定重新复习一些SQL语法
ORDER BY
该ORDER BY关键字用于按升序或降序对结果集进行排序。ORDER BY默认情况下,关键字按升序对记录进行排序。要按降序对记录进行排序,使用 DESC关键字。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
INSERT INTO
用法
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
如果要添加所有的数据就不需要表后面的字段
UPDATE 更新语句
用法
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE 删除语句
用法
DELETE FROM table_name WHERE condition;
TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句
SELECT TOP子句用于指定要返回的记录数。SELECT TOP子句在具有数千条记录的大表上很有用。返回大量记录会影响性能。
注意: 并非所有数据库系统都支持该 SELECT TOP子句。MySQL 支持LIMIT子句选择有限数量的记录
而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM
MySQL用法
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
LIKE 语法
LIKE运算符在 WHERE子句中用于搜索列中的指定模式。有两个通配符经常与 LIKE运算符结合使用:
百分号 (%) 代表零、一个或多个字符
下划线 _ 代表一个,单个字符
但是呢注意: MS Access 使用星号 (*) 代替百分号 (%),使用问号 (?) 代替下划线 ()
当然百分号和下划线也可以组合使用!
IN 运算符
IN运算符允许在WHERE子句指定多个值
用法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
AS别名使用
创建一个四列的别名
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;
但在mysql中使用时要用cancot,+号用逗号
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;
别名在以下情况下很有用:
1.一个查询涉及多个表
2.一个查询涉及多个表
3.查询中使用的函数
4.列名很大或不太可读
5.两列或更多列组合在一起
JOIN
JOIN子句用于行从两个或更多表根据它们之间的相关列结合。
不同类型的SQL join
TABLE1 INNER JOIN TABLE2 ON
TABLE1 LEFT JOIN TABLE2 ON
TABLE1 RIGHT JOIN TABLE2 ON
TABLE1 FULL JOIN TABLE2 ON
GROUP BY
GROUP BY 通常和聚合函数一起使用
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
就是分组,有一点默认是这个ONLY_FULL_GROUP_BY规则
就是查询的必选有group by所分组的,限制了很多分组查询
HAVING 语句
用法
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
EXISTS 运算符
EXISTS运算符用于测试子查询中是否存在任何记录。
EXISTS运算符返回true,如果子查询返回一个或多个记录。
用法
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
思考:
简单回顾了一下以前SQL不太会用的地方,还需要多练习,找点题自己尝试着写一点,也有在自己以前项目的数据库试着查询,还是要多练习。看的是这个大佬的https://blog.csdn.net/weixin_46211269/article/details/119814777。