数据库SQL语句学习
1. SQL简介
SQL 是用于访问和处理数据库的标准的计算机语言。全称是 Structured Query Language。
2. mySql 的语法结构
https://www.runoob.com/sql/sql-top.html
3. 自我总结
基本功能语句
包括数据库的增删改查等操作。
3.1 创建表
CREATE TABLE 语句用于创建数据库中的表。
表由行和列组成,每个表都必须有个表名。
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
column_name 参数规定表中列的名称。
data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。
size 参数规定表中列的最大长度。
示例:
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
PersonID 列的数据类型是 int,包含整数。
LastName、FirstName、Address 和 City 列的数据类型是 varchar,包含字符,且这些字段的最大长度为 255 个字符。
3.2 插入
INSERT INTO 语句用于向表中插入新记录。
- INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
- 注:没有指定要插入数据的列名的形式需要列出插入行的每一列数据:
- 示例:
INSERT INTO Websites (name, url, country)
VALUES ('*', 'http://*.com/', 'IND');
3.3 查询
SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。
SELECT column_name,column_name
FROM table_name;
与
SELECT * FROM table_name;
SELECT语句常见的限制条件
- SELECT DISTINCT
SELECT DISTINCT 语句用于返回唯一不同的值。
SELECT DISTINCT column_name,column_name
FROM table_name;
- AND & OR
AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');
- WHERE
WHERE 子句用于提取那些满足指定条件的记录。
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
- LIKE
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
示例
SELECT * FROM Websites
WHERE name LIKE 'G%'; //查找以G开头的
SELECT * FROM Websites
WHERE name LIKE '%k'; //以k结尾的
SELECT * FROM Websites
WHERE name LIKE '%oo%'; //包含oo
- IN
IN 操作符允许您在 WHERE 子句中规定多个值。
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
- BETWEEN
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
3.4 删除
DELETE 语句用于删除表中的行。
DELETE FROM table_name
WHERE some_column=some_value;
约束
SQL 约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
1. NOT NULL
- 指示某列不能存储 NULL 值。
2. UNIQUE
- 保证某列的每行必须有唯一的值。
3. PRIMARY KEY
- NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
4. FOREIGN KEY
- 保证一个表中的数据匹配另一个表中的值的参照完整性。
5. CHECK
- 保证列中的值符合指定的条件。
6. DEFAULT
- 规定没有给列赋值时的默认值。
连接
SQL join 用于把来自两个或多个表的行结合起来。
下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。
- INNER JOIN:如果表中有至少一个匹配,则返回行
- LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN:只要其中一个表中存在匹配,则返回行
函数
SQL 拥有很多可用于计数和计算的内建函数
SQL Aggregate 函数
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:
- AVG() - 返回平均值
- COUNT() - 返回行数
- FIRST() - 返回第一个记录的值
- LAST() - 返回最后一个记录的值
- MAX() - 返回最大值
- MIN() - 返回最小值
- SUM() - 返回总和
SQL Scalar 函数
SQL Scalar 函数基于输入值,返回一个单一的值。
上一篇: QT连接SQL server数据库
下一篇: Yii清理缓存的方法,Yii清理缓存方法