总结一周内学习的Sql经验(一)

一、我对SQL的理解

SQL是一种结构化查询语言,全称是Structured Query Language。SQL是一种特定的编程语言,用于管理和操作关系数据库。就像我们打开Excel表格一样,在SQL中,我们可以创建表格,定义数据类型,执行查询,更新和删除数据等操作。

SQL的核心思想就是CRUD,也就是Create(创建)、Read(读取)、Update(更新)、Delete(删除)。通过对这四个操作的灵活运用,我们可以实现对于数据的可持续性管理。

CREATE TABLE students (

id int,

name varchar(255),

age int,

PRIMARY KEY (id)

);

SELECT * FROM students;

UPDATE students SET age=20 WHERE id=1;

DELETE FROM students WHERE age=20;

二、Sql注释的几种方法

1. 单行注释:

单行注释是指在SQL语句前面加上两个减号"–",之后在同一行内添加注释内容,这样的内容只被SQL解释器忽略不运行。单行注释是最常用的注释方式之一。

-- 查询所有学生的信息

SELECT * FROM students;

2. 多行注释:

多行注释等价于在一个区块中添加注释,该区块中的所有内容都将被忽略。多行注释使用"/*"开始,并在"*/"结束。多行注释可以是多行的,即注释可以跨越多行。

/* 

这是第一个区块

SELECT * FROM students

*/

/*

这是第二个区块

SELECT * FROM teachers

*/

3. 聚集注释:

聚集注释是指插入代码中的注释。与多行注释不同的是,聚集注释不可在SQL语句中间插入代码,只能在SQL代码结尾处插入。聚集注释使用"-- $"开始,找到该标记指定的文本结束,例如:"-- $ End of SQL $"。聚集注释通常用于将SQL脚本拆分为多个逻辑块。

SELECT * FROM students;

-- $ End of SQL $

三、Sql中的数据类型

在SQL中,数据类型用于规定表中存储的数据类型。例如:整数、小数、日期和字符串等。常用的数据类型包括:

1. 整数:

用于存储正整数、负整数和零。例如:int,bigint,smallint等。

2. 小数:

用于存储实数。例如:decimal,float,double等。

3. 日期和时间:

用于存储日期和时间。例如:date,time,datetime等。

4. 字符串:

用于存储文本。例如:char,varchar,text等。

四、Sql中的常用函数

SQL函数是可以调用的,可以向函数传递参数,并返回有意义的结果。SQL函数有很多,例如:聚合函数、日期函数、字符串函数和数学函数等。

1. 聚合函数:

聚合函数用于聚合数据,例如求和、计数、平均值和最大/最小值等。

SELECT SUM(score) AS total_score FROM students;

2. 日期函数:

日期函数用于处理SQL中的日期和时间。例如计算两个日期之间的差异、获取当前日期和时间、将日期格式化为特定格式等。

SELECT DATEDIFF('2022-01-01', '2021-01-01') AS days_diff;

3. 字符串函数:

字符串函数用于处理SQL中的文本字符串。例如截取字符串、将字符串转换为大/小写、在字符或字符串中查找模式、替换字符或字符串等。

SELECT UPPER(name) AS upper_name FROM students WHERE id=1;

4. 数学函数:

数学函数用于执行数学操作,例如绝对值、平方根、对数等。

SELECT SQRT(9) AS result;

五、Sql中的操作符

SQL操作符用于在SQL语句中执行比较和逻辑操作。常用的操作符包括:

1. 比较操作符:

比较操作符用于比较两个值。例如:=,!=,>,<,>=,<=等。

SELECT * FROM students WHERE score >= 60;

2. 逻辑操作符:

逻辑操作符用于将多个条件组合在一起以产生更复杂的查询。例如:AND,OR,NOT等。

SELECT * FROM students WHERE score >= 60 AND age >= 18;

六、Sql中的复合查询

SQL中的复合查询指的是由两个或多个SELECT语句组成的查询。常用的复合查询包括UNION,UNION ALL,INTERSECT和EXCEPT。

1. UNION:

UNION用于组合两个或多个SELECT语句的结果集,并包括所有的重复记录。

SELECT name FROM students

UNION

SELECT name FROM teachers;

2. UNION ALL:

UNION ALL同UNION一样组合两个或多个SELECT语句的结果集,但是UNION ALL包含所有记录,包括重复记录。

SELECT name FROM students

UNION ALL

SELECT name FROM teachers;

3. INTERSECT:

INTERSECT用于组合两个SELECT语句的结果集,并返回仅包括两个集合的重复记录。

SELECT name FROM students

INTERSECT

SELECT name FROM teachers;

4. EXCEPT:

EXCEPT用于组合两个SELECT语句的结果集,并返回仅包括第一个集合中不在第二个集合中的记录。

SELECT name FROM students

EXCEPT

SELECT name FROM teachers;

七、Sql中的JOIN操作

JOIN操作用于将两个或多个表结合在一起,通过一个共同的列来建立它们之间的关系。常见的JOIN操作包括:INNER JOIN,LEFT JOIN,RIGHT JOIN和FULL OUTER JOIN。

1. INNER JOIN:

INNER JOIN用于返回两个表中匹配行的数据。

SELECT students.name, teachers.name

FROM students

INNER JOIN teachers ON students.teacher_id = teachers.id;

2. LEFT JOIN:

LEFT JOIN返回左表中的所有行,以及右表中与左表匹配的行。如果没有匹配行,则返回NULL值。

SELECT students.name, teachers.name

FROM students

LEFT JOIN teachers ON students.teacher_id = teachers.id;

3. RIGHT JOIN:

RIGHT JOIN返回右表中的所有行,以及左表中与右表匹配的行。如果没有匹配行,则返回NULL值。

SELECT students.name, teachers.name

FROM students

RIGHT JOIN teachers ON students.teacher_id = teachers.id;

4. FULL OUTER JOIN:

FULL OUTER JOIN返回左表和右表中的所有行。如果没有匹配行,则返回NULL值。

SELECT students.name, teachers.name

FROM students

FULL OUTER JOIN teachers ON students.teacher_id = teachers.id;

八、Sql中的子查询

子查询是指嵌套在其他SELECT语句中的查询。子查询的结果可以作为表达式、函数或条件的一部分来使用。常见的子查询包括:单行子查询、多行子查询和关联子查询。

1. 单行子查询:

单行子查询用于返回单个值,并将值用于父查询中的比较或计算。

SELECT name FROM students WHERE score = (SELECT MAX(score) FROM students);

2. 多行子查询:

多行子查询用于返回多个值,并将这些值用于父查询中的比较或计算。

SELECT name FROM students WHERE score IN (SELECT score FROM teachers);

3. 关联子查询:

关联子查询使用父查询和子查询之间的联接来生成结果集。

SELECT name FROM students s WHERE EXISTS (SELECT * FROM teachers t WHERE s.teacher_id = t.id);

九、Sql中的事务处理

事务处理是指管理数据库表中的操作序列,并确保这些操作全部完成,或者在错误时回滚到先前的状态。在SQL中,事务的基本单位是一个SQL语句或一组SQL语句,这些语句执行一组相关的数据库操作。

事务处理通常使用四种标准的事务处理命令:BEGIN TRANSACTION,COMMIT TRANSACTION,ROLLBACK TRANSACTION和SAVE TRANSACTION。

BEGIN TRANSACTION

UPDATE Students SET age = 20 WHERE id = 1;

COMMIT TRANSACTION

十、结语

以上就是我本周学习SQL的经验总结。SQL是一个非常强大而又灵活的工具,适用于处理大量的结构化数据。无论是开发应用程序、网站还是进行数据分析,都可以使用SQL来管理和处理数据。希望我的这份经验总结对您有所帮助。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签