SQL
SQL是结构化查询语言(Structured Query Language)的缩写,是用于管理和操作关系型数据库的标准语言。它是一种声明性语言,可以用于创建、查询、更新和删除数据库中的数据。
SQL具有以下特点:
- SQL是一种标准语言,被广泛应用于各种关系型数据库系统中。
- SQL具有丰富的语法和功能,可以进行复杂的数据操作和查询。
- SQL支持多种数据类型,包括数字、文本、日期、时间等。
- SQL提供了多种数据操作语句,包括SELECT、INSERT、UPDATE和DELETE等。
- SQL支持多表操作,可以进行联合查询、子查询等操作。
- SQL具有高度可扩展性和灵活性,可以根据需要进行定制和扩展。
总之,SQL是关系型数据库管理系统中非常重要的一部分,它为数据库管理提供了强大的语言支持,使得用户可以方便地进行数据操作和查询。
关系型数据库(Relational databases)
是一种以表格形式组织数据的数据库,其中每个表格都有一个唯一的标识符(主键),并且表格之间可以通过共同的字段进行关联。关系型数据库最重要的特点是数据的结构化和标准化,使得数据的存储、查询和管理变得简单高效。常见的关系型数据库软件包括Oracle、MySQL、Microsoft SQL Server、PostgreSQL等。
SELECT 查询
SELECT 语句是一种用于从数据库中检索数据的SQL语句。它允许用户指定要检索的列、表和条件,并可以对检索结果进行排序、分组和过滤。
SELECT 语句的语法如下:
Select 查询某些属性列(specific columns)的语法
SELECT column(列名), another_column, …
FROM mytable(表名);
Select 查询所有列
SELECT *
FROM mytable(表名);
SELECT column1, column2, … FROM table_name WHERE condition GROUP BY column1, column2, … HAVING condition ORDER BY column1, column2, …
其中,column1, column2, …是要检索的列名,table_name是要检索的表名,condition是检索条件,GROUP BY和HAVING指定分组和过滤条件,ORDER BY指定排序规则。
例如,以下SELECT语句从名为“customers”的表中检索名字、城市和国家列,并按照国家和城市的字母顺序排序:
SELECT name, city, country FROM customers ORDER BY country, city;
SELECT * FROM table. 这条语句经常用来在不清楚table(表)中有什么数据时,能取出所有的数据瞜一眼。
条件查询 (constraints) WHERE
条件查询是指在数据库中根据特定条件筛选出需要的数据的查询方式。在条件查询中,用户可以指定一个或多个条件,这些条件可以是等于、不等于、大于、小于、包含、不包含等等。条件查询可以大大减少查询的数据量,提高查询效率,同时也可以更准确地获取需要的数据。常见的条件查询语句包括SELECT、WHERE、AND、OR、LIKE、IN等等。
条件查询语法
SELECT column, another_column, …
FROM mytable
WHERE condition
AND/OR another_condition
AND/OR …;
注:这里的 condition 都是描述属性列的,具体会在下面的表格体现。
可以用 AND or OR 这两个关键字来组装多个条件(表示并且,或者) (ie. num_wheels >= 4 AND doors <= 2 这个组合表示 num_wheels属性 大于等于 4 并且 doors 属性小于等于 2).
法则1:col
法则2:select
SELECT col,col,col找什么?
FROM table 从哪找?
WHERE col 条件 条件是啥?
条件:数字(where)
当查找条件col是数字
select * from table where col = 1;
下面的具体语法规则,可以用来筛选数字属性列(包括 整数,浮点数) :
Operator(关键字) | Condition(意思) | SQL Example(例子) |
---|---|---|
=, !=, <,<=, >, >= | Standard numerical operators 基础的 大于,等于等比较 | col_name != 4 |
BETWEEN … AND … | Number is within range of two values (inclusive) 在两个数之间 | col_name BETWEEN 1.5 AND 10.5 |
NOT BETWEEN … AND … | Number is not within range of two values (inclusive) 不在两个数之间 | col_name NOT BETWEEN 1 AND 10 |
IN (…) | Number exists in a list 在一个列表 | col_name IN (2, 4, 6) |
NOT IN (…) | Number does not exist in a list 不在一个列表 | col_name NOT IN (1, 3, 5) |
条件:文本(where)
当查找条件col是文本
select * from table where col like ‘%jin’;
其中 LIKE(模糊查询) 和 %(通配符) 是新增的两个
Operator(操作符) | Condition(意思) | SQL Example(例子) |
---|---|---|
= | Case sensitive exact string comparison (notice the single equals)完全等于 | col_name = “abc” |
!= or <> | Case sensitive exact string inequality comparison 不等于 | col_name != “abcd” |
LIKE | Case insensitive exact string comparison 没有用通配符等价于 = | col_name LIKE “ABC” |
NOT LIKE | Case insensitive exact string inequality comparison 没有用通配符等价于 != | col_name NOT LIKE “ABCD” |
% | Used anywhere in a string to match a sequence of zero or more characters (only with LIKE or NOT LIKE) 通配符,代表匹配0个以上的字符 | col_name LIKE “%AT%”(matches “AT”, “ATTIC”, “CAT” or even “BATS”) “%AT%” 代表AT 前后可以有任意字符 |
_ | Used anywhere in a string to match a single character (only with LIKE or NOT LIKE) 和% 相似,代表1个字符 | col_name LIKE “AN_”(matches “AND”, but not “AN”) |
IN (…) | String exists in a list 在列表 | col_name IN (“A”, “B”, “C”) |
NOT IN (…) | String does not exist in a list 不在列表 | col_name NOT IN (“D”, “E”, “F”) |