打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
复习常用的SQL以及一些函数
复习常用的SQL以及一些函数
1.SQL 对大小写不敏感

2.某些数据库系统要求在每条 SQL 命令的末端使用分号.如果您使用的是 MS Access 和 SQL Server 2000,则不必在每条 SQL 语句之后使用分号.

3.SQL DML 和 DDL 数据操作语言 (DML) 和 数据定义语言 (DDL)
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
* SELECT - 从数据库表中获取数据
* UPDATE - 更新数据库表中的数据
* DELETE - 从数据库表中删除数据
* INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
* CREATE DATABASE - 创建新数据库
* ALTER DATABASE - 修改数据库
* CREATE TABLE - 创建新表
* ALTER TABLE - 变更(改变)数据库表
* DROP TABLE - 删除表
* CREATE INDEX - 创建索引(搜索键)
* DROP INDEX - 删除索引

4.SELECT 列名称 FROM 表名称    SELECT * FROM 表名称 -----星号(*)是选取所有列

5.SELECT DISTINCT 列名称 FROM 表名称 -----关键词 DISTINCT 用于返回唯一不同的值,重复的仅仅出现一次

6.SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
= 等于 ,<> 不等于, > 大于, < 小于, >= 大于等于, <= 小于等于, BETWEEN 在某个范围内, LIKE 搜索某种模式
注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号) ,如果是数值,请不要使用引号。

7.AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。


8.ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC 只有在第一列中有相同的值或者null时,第二列是以升序排列的。

9.INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

10.UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

11.DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM table_name 清除所有行

12.SQL Server 的语法:SELECT TOP number|percent column_name(s) FROM table_name
MySQL 语法 SELECT column_name(s) FROM table_name LIMIT number
Oracle 语法 SELECT column_name(s) FROM table_name WHERE ROWNUM <= number

13.SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
"%" 通配任意多个字符 "_"通配任意一个字符
通过使用 NOT 关键字,选取不包含 NOT LIKE

14.IN 操作符允许我们在 WHERE 子句中规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)

15.操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
通过NOT排除 NOT BETWEEN 'value1' AND 'value2'

16.SQL Alias
表的 SQL Alias 语法--简化名字长度
SELECT column_name(s) FROM table_name AS alias_name

列的 SQL Alias 语法--最终查询结果的列名
SELECT column_name AS alias_name FROM table_name

17.LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。table_name1全部保留,table_name2可能舍弃一些部分
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2  ON table_name1.column_name=table_name2.column_name

18.RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。table_name2全部保留,table_name1可能舍弃一些部分
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2  ON table_name1.column_name=table_name2.column_name

19.FULL JOIN 关键字返回所有行,只要其中某个表存在项。无匹配的部分留空,table_name1与table_name2全部保留。
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2  ON table_name1.column_name=table_name2.column_name

20.UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列;列也必须拥有相似的数据类型;每条 SELECT 语句中的列的顺序必须相同
SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名

21.SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。也可以添加 WHERE 子句。
把所有的列插入新表:
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
或者只把希望的列插入新表:
SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename
-----------------例子 SELECT * INTO Persons IN 'Backup.mdb' FROM Persons

22.CREATE DATABASE database_name.

23.CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)

24.NOT NULL 约束强制列不接受 NULL 值。
CREATE TABLE Persons (Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))

25.UNIQUE 约束唯一标识数据库表中的每条记录。
MySQL--UNIQUE (column_name) others--column_name type NOT NULL UNIQUE,
更新表添加unique:ALTER TABLE Persons;ADD UNIQUE (column_name)/ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName);
删除unique:       ALTER TABLE Persons;DROP INDEX uc_PersonID/DROP CONSTRAINT uc_PersonID;

26.PRIMARY KEY
MySQL:CREATE TABLE Persons (Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),PRIMARY KEY (Id_P))
others:CREATE TABLE Persons(Id_P int NOT NULL PRIMARY KEY,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),CONSTRAINT uc_PersonID PRIMARY KEY (Id_P,LastName))

27.如果在 "Orders" 表已存在的情况下为 "Id_P" 列(已经在Orders中存在Id_P列)创建 FOREIGN KEY 约束,请使用下面的 SQL:
ALTER TABLE Orders;ADD FOREIGN KEY (Id_P) REFERENCES Persons(Id_P);
如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:
ALTER TABLE Orders;ADD CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P);
撤销 FOREIGN KEY 约束:
如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:
ALTER TABLE Orders;DROP FOREIGN KEY fk_PerOrders;
ALTER TABLE Orders;DROP CONSTRAINT fk_PerOrders;


28.DEFAULT 约束用于向列中插入默认值。
CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255) DEFAULT 'Sandnes')

29.可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们只能被用来加速搜索/查询。
CREATE INDEX index_name;ON table_name (column_name);
删除索引:MicrosoftSQLJet MicrosoftAccess:DROP INDEX index_name ON table_name;
SQL Server:DROP INDEX table_name.index_name
DB2 Oracle:DROP INDEX index_name
MySQL:ALTER TABLE table_name; DROP INDEX index_name;

30.DROP TABLE 表名称; DROP DATABASE 数据库名称;

31.修改表
ALTER TABLE table_name;ADD column_name datatype;
ALTER TABLE table_name;DROP COLUMN column_name;
ALTER TABLE table_name;ALTER COLUMN column_name newdatatype;


32.函数 SELECT function(列) FROM 表
SELECT AVG(column_name) FROM table_name AVG函数返回数值列的平均值。NULL 值不包括在计算中。
SELECT COUNT(column_name) FROM table_name 返回指定列的值的数目(NULL 不计入)COUNT(*) 函数返回表中的记录数。
SELECT MAX(column_name) FROM table_name MAX 函数返回一列中的最大值。NULL 值不包括在计算中。
SELECT MIN(column_name) FROM table_name MIN 函数返回一列中的最小值。NULL 值不包括在计算中。
SELECT SUM(column_name) FROM table_name SUM 函数返回数值列的总数(总额)。

33.分组 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name


34.SQL HAVING 语法
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value


35.SQL ROUND() SELECT ROUND(column_name,decimals) FROM table_name
column_name     必需。要舍入的字段。
decimals     必需。规定要返回的小数位数。

36.NOW 函数返回当前的日期和时间。
SELECT NOW() FROM table_name
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
oracle数据库开发的一些经验积累
建表与alter表以及建表的约束性
SQL Server 数据库基础编程
SQL基础入门:第5课:操纵表
mysql常用操作语句
SQL基础语句
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服