一、我对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来管理和处理数据。希望我的这份经验总结对您有所帮助。