加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mssql 运算符 SQL基础学习

发布时间:2022-11-16 22:03:20 所属栏目:MsSql教程 来源:未知
导读: 此次我进行了SQL的系统性学习,因为之前有简单了解并学习过SQL的基础语言,所以本来想要跳过基础学习部分,直接进行进阶的练习,但为了夯实基础,为进阶练习铺好路,也为了养成一个良好的学

此次我进行了SQL的系统性学习,因为之前有简单了解并学习过SQL的基础语言,所以本来想要跳过基础学习部分,直接进行进阶的练习,但为了夯实基础,为进阶练习铺好路,也为了养成一个良好的学习习惯,我还是用了两周左右的时间在w3school和sqlzoo两个网站上对SQL的基础进行了学习与练习,之后也进行了进阶的学习。

mssql 运算符_关系运算中选择运算_mssql数据库

上图为w3school网站。

关系运算中选择运算_mssql 运算符_mssql数据库

上图为sqlzoo网站。

一、为什么要学习SQL

SQL 是使我们有能力访问数据库的一种结构化查询语言。上周我们进行了Excel的基础学习,了解了Excel的实用性与便捷性,在一般情况下Excel是可以满足我们的工作需求的,但Excel有一个局限性,就是无法处理体量过大的数据,例如面对百万级的数据,使用Excel进行简单的加减运算是没有问题的,但如果想要进行一些复杂运算的话,就有点吃力了。而且,一个公司内部可能有成千上万个Excel表格,很难对这些分散的表格做统一化处理。这时就需要使用SQL语言对MYSQL数据库进行处理了。

二、什么是MYSQL数据库

数据库就是储存数据的一个资料库,是一堆相互关联的数据,和Excel相同,数据库中每个表都有一个自己的名称标识,每个表中也都包含带有列名的列,还有记录数据的行,如果想要关联两个不同的表,只需要关联两张表的ID就可以了。Mysql(数据库)是开源的,所以能够成为各大公司使用的主流,Sql是操作数据库里面数据的工具,例如有一碗米饭(碗就是mysql,里面的米就是数据),想要吃碗里的米饭,用筷子(sql)操作碗里(mysql)的米饭(数据)。

三、SQL能做什么四、SQL的基础学习

1、select语句

SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

语法:

SELECT 列名称 FROM 表名称

或者:

SELECT * FROM 表名称

2、distinct语句

在表中,可能会包含重复值,如果我们想要提取出不重复的值,可以使用distinct语句,关键词 distinct 用于返回唯一不同的值。

语法:

SELECT DISTINCT 列名称 FROM 表名称

3、where语句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

4、SQL AND & OR 运算符

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立mssql 运算符,则 OR 运算符显示一条记录。

5、ORDER BY语句

ORDER BY 语句用于对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字

语法:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 ORDER BY 列 DESC/ASC

6、SQL INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行。

语法:

INSERT INTO 表名称 VALUES (值1, 值2,....)

我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

7、SQL UPDATE 语句

Update 语句用于修改表中的数据。

语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

8、SQL DELETE 语句

DELETE 语句用于删除表中的行。

语法:

DELETE FROM 表名称 WHERE 列名称 = 值

9、SQL GROUP BY语句

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

语法:

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

10、HAVING 函数

WHERE 关键字无法与合计函数一起使用,如果我们需要对筛选条件使用合计函数的话,就可以使用HAVING函数。

语法:

SELECT column_name, aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name

HAVING aggregate_function(column_name) operator value

11、JOIN函数

SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

语法:

SELECT column_name1,column_name2

FROM table_name1

INNER JOIN table_name2

ON table_name1.column_name1=table_name2.column_name1

ORDER BY column_name2

五、sqlzoo练习

在学习过上述单元的基础语句与函数之后,可以在sqlzoo网站进行相关的练习,练习中遇到的问题或者是疑难点可以做一下笔记,方便后续复习。

1、Replace("字符串","要被替代的字符串","替代后的字符串"),结合下面例子进行学习

"Monaco-Ville"是合併國家名字 "Monaco" 和延伸詞"-Ville".

顯示國家名字,及其延伸詞,如首都是國家名字的延伸。

SELECT name, REPLACE(capital, name, ' ') //将capital字符串中name字符串替换成空白

FROM world

WHERE capital LIKE CONCAT(name,'%')

AND REPLACE(capital, name, '') ' '//将筛选出的值中空值剔除,是不等于的意思

2、使用or语句添加筛选条件时,要将条件格式写全,例如

Where name like “%a” or “%l” 这是错误答案!

Where name like “%a” or name like “%l” 这是正确答案!

15、ROUND 函数用于把数值字段舍入为指定的小数位数。
ROUND(要舍入的字段,要返回的小数位数)

如果需要将数值四舍五入到接近100或者1000位时,小数位数要选取-2和-3

3、case:事件

语句相当于是“if”,使用语句如下:

case 表达式

when 值1 then 结果1

when 值2 then 结果2

else 结果3

4、可以使用()将条件整合在一起,例如:

顯示1980年物理學(physics)獲獎者,及1984年化學獎(chemistry)獲得者。

select yr,subject,winner from nobel

where (yr=1980 and subject='physics')or(yr=1984 and subject='chemistry')

5、你不能把一个单引号直接放在字符串中,但可以使用两个单引号当做一个单引号使用。

6、f1用升序, f2降序,sql该这样写:ORDER BY f1, f2 DESC

也可以这样写,更清楚:ORDER BY f1 ASC, f2 ESC

如果都用降序,必须用两个desc:ORDER BY f1 DESC, f2 DESC

7、按项目及得奖者姓名排列列出1984年得奖者及项目;但是把化学和物理列在最后。

SELECT winner, subject

FROM nobel

WHERE yr=1984

ORDER BY subject IN('Physics','Chemistry'),subject,winner

IN('Physics','Chemistry'),相当于是被分成了一个组,列在了排序字段内

8、书写习惯很重要!一定要规范!看着舒服,也方便查询错误

9、我們可以在子查詢,參閱外部查詢的數值。我們為表格再命名,便可以分別內外兩個不同的表 格。

SELECT continent, name, area FROM world x

WHERE area >= ALL

(SELECT area FROM world y

WHERE y.continent=x.continent

AND area>0)

我们可以看到我们使用了为表格再命名,区分了world x和world y

10、需要复习的题目:

①列出洲份名稱,和每個洲份中國家名字按子母順序是排首位的國家名。(即每洲只有列一國

select continent,name from world x

where name=all

(select population from world y

where x.continent=y.continent)

③有些國家的人口是同洲份的所有其他國的3倍或以上。列出 國家名字name 和 洲份 continent

select name,continent from world a

where population>=all

(select 3*population from world b

where a.continent=b.continent

and a.nameb.name)

六、总结

1、SQL一定要多写多练,要形成手指记忆,把SQL书写变成是自己的一项技能,这样在工作中运用起来才不会觉得晦涩。

2、在练习SQL时,一定要弄清楚题目的逻辑以及意思,这样才方便书写,也方便在工作中的使用。

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!