MYSQL基础(一)-查询语句

2.SQL是Structured Query Language(结构化查询语言)的缩写。是一种用来专门与数据库沟通的语言。而mysql则是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

3.查询语句 SELECT FROM
该语句为SELECT 列名 FROM 表名,即从xx表中提取xx列。若仅是该语句,则会返回所有行。另外,该语句不区分大小写,同时若同时存在多条sql语句,则以分号“;”分隔。若要去重,则只需要在select后面添加distinct,即select distinct 列名 from 表名,此时返回的便是该表的该列中不重复的行。另外,还有case…end子句,其类似于python中的if…else,是一个条件选择语句,其中插入when then等表示条件的选择

4.筛选语句 where
一般的,在数据量很大且我们只需要较少数据时,我们可以使用where子句来将我们需要的数据查找出来,具体而言,简单的where子句只需要将某列的值过滤即可,比如where 列名 > x(x是某个数值)。而当要选取前n条语句的时候,使用where rownum < n即可。像前面所说的小于号等,where子句里有<,>,等以外,!代表否定含义,如!>即是不大于。另外between… and… 为指定两值之间,is null 为NULL值,除了数值外,字符串也可以运用到where子句中,可用单引号‘’括起来。where子句里,and 和or还有in均是可以用来指定需要查找的相关数据。其中,where(id =’ xx’ or id = ‘xx’)与where id in (‘xx’, ‘xx’),另加not也是作为否定。在过滤方面,还可以使用一些如LIKE的操作符和通配符进行过滤。例如 where 列名 LIKE ‘xx%(_、[])’其中%表示任何字符出现任意次数,当然%可以用在字符串的任意位置且数量不限,而下划线与%作用相同,只是前者只能单个字符进行匹配,方括号则是指定字符集进行匹配。

5.分组语句 GROUP BY
GROUP BY分组子句即是根据指定的列来进行,也可以是多个列。除了运用group by进行分组外,还可以使用having子句进行分组,而与group by 不同的是,前者是过滤分组,即如where是以行来过滤,而having是以组来过滤
同时having支持所有where的操作符,值得注意的是,要区别where 和having只需要知道前者是分组前过滤,而后者是分组后过滤,与分组类似概念的为聚集函数,该函数用于汇总数据,聚集函数主要有用于平均的AVG(),用于加总的SUM(), 用于计数的COUNT()等,而括号内一般是特定的行或列。

6.排序语句 ORDER BY
排序语句,顾名思义,即是用该语句对特定列进行排序,同时需要注意的是,order by子句需要放在select语句的最后位置。若无指定说明,order by 2,3即指先按选取的所有列中的第二列排序,再按第三列排序 。关于升降序,默认为升序,若要降序,则要有DESC,且该关键词只应用到排在其前面的列名,若需要在多个列上进行降序,则每个列名后都需添加DESC

7.函数
时间函数,关于时间和日期的函数,有DATEPART()函数,用于指定年份等时间单位,而数值函数即是ABS(),COS()等函数。

8.sql注释
注释符一般有两种,若是只是单行使用,可以用“–”来注释,若是多行使用,则需要使用“//”来作注释。

9.sql代码规范
a.命名建议
使用统一的描述性强的字段命名规则;保证字段名是独一无二且不是保留字的,不要使用连续的下划线,不用下划线结尾;最好以字母开头。如user表示用户,item表示商品,dt表示某个事件发生的时间,num表示某事相关的数字,name用字母表示名称。
b.格式建议
最好使用标准sql函数而不是特定供应商的函数,系统关键字大些字段表名小写是,灵活使用空格和缩进来增强可读性——利用空格保持关键字对齐,在等号,逗号等的前后加上空格,子查询缩进并对齐。
c.语法建议
尽量使用BETWEEN而不是多个and,类似的,使用in而不是多个or,利用case语句嵌套处理更复杂逻辑结构,避免union语句与临时表。

作业1
select Email from email
having count(*)>1

作业2
SELECT name, population, area FROM world
WHERE area > 3000000 or (population > 25000000 and gdp > 20000000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值