SQL DML 和 DDL
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
- SELECT -...FROM从数据库表中获取数据
- UPDATE ....SET...WHERE更新数据库表中的数据(UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值)
- DELETE FROM...WHERE从数据库表中删除数据
- INSERT INTO ..... values向数据库表中插入数据
-
NSERT INTO 语句用于向表格中插入新的行。
语法
我们也可以指定所要插入数据的列:
NSERT INTO 语句用于向表格中插入新的行。
语法
我们也可以指定所要插入数据的列:
NSERT INTO 语句用于向表格中插入新的行。
语法
我们也可以指定所要插入数据的列:
iNSERT INTO 语句用于向表格中插入新的行。
语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DISTINCT去重
order by 排序 desc/asc
TOP 2/TOP 50PERCENT等价于where rownum<=2
TOP 子句用于规定要返回的记录的数目
as(alias) 列或表名称指定别名;
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。
- inner JOIN...ON 如果表中有至少一个匹配,则返回行
- LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
- FULL JOIN: 只要其中一个表中存在匹配,就返回行
- UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
- CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),
CHECK (Id_P>0)
) - CHECK 约束用于限制列中的值的范围
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
- 如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
- DEFAULT 约束用于向列中插入默认值:ALTER TABLE PersonsALTER COLUMN City SET DEFAULT 'SANDNES';撤消默认值:ALTER TABLE PersonsALTER COLUMN City DROP DEFAULT
- 在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。CREATE UNIQUE INDEX index_nameON table_name (column_name)
SQL UNION 语法UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SELECT INTO 语句可用于创建表的备份复件
SELECT *INTO new_table_name [IN externaldatabase] FROM old_tablename
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组 SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。 SELECT Customer,SUM(OrderPrice) FROM OrdersWHERE Customer='Bush' OR Customer='Adams'GROUP BY CustomerHAVING SUM(OrderPrice)>1500 UCASE 函数把字段的值转换为大写; LCASE 函数把字段的值转换为小写。 MID 函数用于从文本字段中提取字符 :SELECT MID(column_name,start[,length]) FROM table_name LEN 函数返回文本字段中值的长度 ROUND 函数用于把数值字段舍入为指定的小数位数:SELECT ROUND(column_name,decimals) FROM table_name NOW 函数返回当前的日期和时间:SELECT NOW() FROM table_name FORMAT 函数用于对字段的显示进行格式化:SELECT FORMAT(column_name,format) FROM table_name
多表查询
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引