SQL是什么?MySQL是什么?
SQL是一种用于操作数据库的语言,sql是用于所有数据库的基本语言,不同数据库之间存在较小的语法更改,但是基本的sql语法基本保持不变,sql是S tructured Q uery Language 的简短缩写,根据ANSI(美国国家标准协会),sql是操作关系数据库管理的标准语言。
SQL用于访问,更新和操作数据库中的数据,他的设计允许管理RDBMS的数据,例如MYSQL,sql语言还用于控制数据访问以及数据库模式的创建和修改。
MySQL是一种RDMS,它允许保持数据库中存在的数据,MySQL提供对数据库的多用户访问
区别:
SQL是一种用于操作数据库的语言
SQL用于访问,更新和操作数据库的数据
SQL是结构化查询语言
MySQL是市场上第一个可用的开源数据库之一
MySQL是一种RDBMS,它允许保持数据库中存在的数据
MySQL是一个使用MySQL存储,检索,修改和管理数据库的RDBMS
查询语句 SELECT FROM
用于从数据库中选取数据
SELECT 列名称 FROM 表名称
或
SELECT * FROM 表名称
去重语句
关键词用于返回唯一不同的值。
SELECT DISTINCT 列名称 FROM 表名称
前N个语句
从数据库查寻前N条记录
select top N * from 表名称
select top N * from 表名称 order by 字段名 desc (按某个字段属性进行降序排序,取N条)
select top N * from (select top m * from 表名称 order by 字段名 ) a order by 字段名 desc (查询第N到M条记录)
select * from table_name limit N (前N条数据)
CASE...END判断语句
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
筛选语句 WHERE
于提取那些满足指定标准的记录。
SELECT * FROM 表名称 WHERE id=1;
分组语句 GROUP BY
语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
SELECT * FROM 表名称 GROUP BY 属性
HAVING
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据
SELECT 字段名, SUM(area)
FROM 表名称
GROUP BY 字段名
HAVING SUM(area)
时间函数
当前系统日期,时间
select getdata()
dateadd在向指定日期加上一段时间的基础上,返回新的datetime
例如:向日期加上2天
select dateadd(day,2,'2019-04-01')--返回2019-04-03 00:00:00.000
datediff 返回两个指定日期的日期和时间边界数
select datediff (day,'2019-04-01','2019-04-02'),---返回1
datepart 返回代表指定日期的指定日期部分整数
select datepart(month,'2019-04-01')---返回04
datename返回代表指定日期的指定日期部分的字符串
select datename(weekday,'2019-04-01')--返回星期一
数值函数
AVG---返回平均值
COUNT()--返回行数
FIRST()--返回第一个记录的值
LAST()--返回最后一个记录的值
MAX()--返回最大值
MIN()--返回最小值
SUM()--返回总和
ABS()--返回绝对值
字符串函数
UCASE()--将某个字段转换为大写
LCASE()--将某个字段转换为小写
MID()--从某个文本字段提取字符
SubString(字段,1,end)--从某个文本字段提取字符
LEN()--返回某个文本字段的长度
ROUND()--对某个数值字段进行指定小数位数的四舍五入
NOW()--返回当前的系统日期和时间
FORMAT()--格式化某个字段的显示方式
SQL注释
分单行注释和多行注释:
单行注释使用 --
多行注释采用 /*…*/
SQL编码规范建议参考https://www.cnblogs.com/zhouzhou-aspnet/articles/2590862.html
项目一:查找重复的电子邮箱
创建 email表,并插入如下三行数据
+----+---------+
| Id | Email |
+----+---------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
+----+---------+
输入结果
项目二:查找大国
创建如下 World 表
+-----------------+------------+------------+--------------+---------------+
| name | continent | area | population | gdp |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan | Asia | 652230 | 25500100 | 20343000 |
| Albania | Europe | 28748 | 2831741 | 12960000 |
| Algeria | Africa | 2381741 | 37100000 | 188681000 |
| Andorra | Europe | 468 | 78115 | 3712000 |
| Angola | Africa | 1246700 | 20609294 | 100990000 |
+-----------------+------------+------------+--------------+---------------+
如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这个国家就是大国家。
输出