1、Sql = 数据操作语言 (DML) 和 数据定义语言 (DDL)。
DML:查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
DDL) 部分创建或删除表格、定义索引(键),规定表之间的链接,以及施加表间的约束。
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库:在已有的表
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
2、关键字:
1)distinct 放在列的最前边,表示某列不同的值。
SELECT DISTINCT 列名称 FROM 表名称
2)ORDER BY 语句用于根据指定的列对结果集进行排序。默认升序,desc降序
3)LIMIT 返回记录的数目限制
4)like + 通配符---匹配莫中模式
5)IN 操作符允许我们在 WHERE 子句中规定多个值 :
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
6)join:从两个或更多的表中获取结果。我们就需要执行
方法1 :SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
方法2:SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
INNER JOIN 关键字在表中存在至少一个匹配时返回行。没有就不返回
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行
7)UNION 操作符用于合并两个或多个 SELECT 语句的结果集,把两个相同结构和数据类型的列表的结果和成一列显示,不许有重复值,
UNION ALL 可有重复值。
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
8)SQL SELECT INTO 语句可用于创建表的备份复件。
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
9)约束:constraints,可在创建时或之后
NOT NULL:不接受 NULL 值。
CREATE TABLE Persons
(
Id_P int NOT NULL,
UNIQUE:
UNIQUE (Id_P)
PRIMARY KEY:每个表都应该有一个主键,并且每个表只能有一个主键。
PRIMARY KEY (Id_P)
FOREIGN KEY:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
多列加外键:ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
单列加外键
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
CHECK:
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
CHECK (Id_P>0)
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
DEFAULT:DEFAULT 约束用于向列中插入默认值。
OrderDate date DEFAULT GETDATE()
10)删除表内数据TRUNCATE TABLE 命令(仅仅删除表格中的数据):
TRUNCATE TABLE 表名称
11)视图是基于 SQL 语句的结果集的可视化的表 ,创建视图等
12)GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。可以合计多个列
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate
13) SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
3、细节:
单引号扩文本,数字不用引号
SQL 理代码的顺序:
( 8 ) SELECT ( 9 ) DISTINCT ( 11 )
( 1 ) FROM [ left_table ]
( 3 ) JOIN
( 2 ) ON
( 4 ) WHERE
( 5 ) GROUP BY
( 6 ) WITH
( 7 ) HAVING
( 10 ) ORDER BY