SQL高级教程

SELECT TOP,LIMIT,ROWNUM

1.SELECT TOP

SELECT TOP number|percent column_name(s) FROM table_name WHERE condition;

2.LIMIT

SELECT column_name(s) FROM table_name WHERE condition LIMIT number;

3.ROWNUM(伪列)

SELECT column_name(s) FROM table_name WHERE conditon AND ROWNUM <= number;

LIKE 运算符

有两个通配符与LIKE运算符一起使用:

  • % -百分号表示零个,一个或多个字符
  • _ -下划线表示单个字符匹配
LIKE运算符描述
WHERE CustomerName LIKE 'a%'查找以"a"为开头的任何值
WHERE CustomerName LIKE '%a'查找以"a"为结尾的任何值
WHERE CustomerName LIKE '%or%'在任何位置查找任何具有"or"的值
WHERE CustomerName LIKE '_r%'在第二个位置查找任何具有"r"的值
WHERE CustomerName LIKE 'a_%_%'查找以"a"开头且长度至少为3个字符的值
WHERE CustomerName LIKE 'a%o'找到以"a"开头以"o"结尾的值
SELECT column_name(s) FROM table_name WHERE column LIKE condition;

Wildcards 通配符

Wildcards通配符描述
WHERE city LIKE '[a-c]%';查询所有city 以"a"、"b"或"c"开头的客户
WHERE city LIKE '[!bsp]%'查询所有city不以"b"、"s"或"p"开头的客户

IN 运算符

IN运算符是多个OR条件的简写。

1.SELECT column_names(s) FROM table_name WHERE column_name IN ('column1','column2','column3',…);

2.SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT);

BETWEEN 运算符

  • BETWEEN运算符选择给定范围内的值。值可以是数字,文本或者日期。
  • BEWTEEN运算符是包含性的:包括开始和结束
  •  

注意 BEWTEEN操作符在不同数据库之间会产生不同的结果

SELCET column_name FROM table_name WHERE column_name BETWEEN value1 AND value2;

//选取介于'04-July-1996'和'09-July-1996'之间的所有订单
SELECT * FROM Orders WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

通用数据类

数据类型描述
INTEGER(p)整数值,精度为(p)——精度默认为10
DECIMAL(p,s)精度p,小数点后位数s。 例如:DECIMAL(5,2)是一个小数点前有3位数小数点后有两位数的数字。
FLOAT(p)尾数精度p。 一个采用以10为基数的指数计数法的浮点数——尾数精度值默认为16
DATE存储年月日
TIME存储时分秒
TIMESTAMP存储年月日时分秒
ARRAY元素的固定长度的有序集合
MULTISET元素的可变长度的无序集合

SQL语句的快速参考

SQL语句语法
ALTER TABELALTER TABLE table_name ADD column_name datatype (or) ALTER TABLE table_name DROP COLUMN column_name;
AS(alias别名)SELECT column_name AS column_alias FROM table_name;
CREATE DATABASECREATE DATABASE database_name;
CREATE TABLECREATE TABLE table_name (column_name1 data_type,column_name2 data_type,colume_name3 data_type,…);
CREATE INDEXCREATE (UNIQUE)INDEX index_name ON table_name(column_name);
DELETEDELETE FROM table_name WHERE some_column = some_vale (or) DELETE FROM tabel_name(NOTE:Deletes the entire table!);
DROP DATABASEDROP DATABASE database_name;
DROP INDEXDROP INDEX index_name

JOIN

把两个或多个表的行结合起来

  • INNER JOIN :如果表中有至少一个匹配,则返回行
  • LEFT JOIN : 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN : 即使左表中没有匹配,也从右表中返回所有的行
  • FULL JOIN : 只有其中一个表存在匹配,则返回行

INNER JOIN

SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;

LEFT/RIGHT JOIN 关键字

//LEFT JOIN返回左表中的所有行,即时右表中没有匹配
1.SELECT column_name(s) FROM table1
LEFT JOIN table2 ON table1.column_name = table2_column_name;

//RIGHT JOIN返回右表中的所有行,即时左表中没有匹配
2.SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;

UNION 关键字

  • UNION中的每个SELECT语句必须具有相同的列数
  • 这些列也必须具有相似的数据类型
  • 每个SELECT语句中的列也必须以相同的顺序排列
  • UNION 运算符选择一个不同的值,若允许重复请使用UNION ALL
  • UNION结果集中的列名总是等于UNION中第一个SELECT语句中的列名
SELECT column_name(s) FROM table1_name UNION SELECT column_name(s) FROM table2_name
WHERE condition ORDER BY…;

SELECT INTO 语句

  • SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中
SELECT column_name INTO newtable FROM table_name;

INSERT INTO SELECT

//把想要的列复制到现有的表上
INSERT INTO table2(column_name(s)) SELECT column_name(s) FROM table1;

CREATE DATABASE

CREATE DATABASE dbname

CREATE TABLE

CREATE TABLE table_name (
column_name1 data_type(size)
column_name2 data_type(size)
column_name3 data_type(size)
…
);

ALTER TABLE

//向表中添加列
ALTER TABLE table_name ADD column_name datatype;

//向表中删除列
ALTER TABLE table_name DROP COLUMN column_name;

//修改列的列名以及数据类型
ALTER TABLE table_name CHANGE column_name 新列名 新数据类型;

AUTO INCREMENT

默认情况下,AUTO_INCREMENT的起始值为1,每个新纪录增加1

VIEW 视图

CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition;

MySQL Date 函数

函数描述
NOW()当前的日期和时间
CURDATE()当前的日期
CURTIME()当前的时间
DATE()提取日期部分
EXTRACT()日期/时间的单独部分
DATE_ADD()向日期添加指定的时间间隔
DATE_SUB从日期减去指定的时间间隔
DATEDIFF()返回两个日期之间的天数
DATE_FORMAT()用不同的格式显示日期/时间

存储日期或时间的数据类型

  • DATE - 格式 : YYYY-MM-DD
  • DATETIME - 格式 : YYYY-MM-DD HH:MM:SS
  • TIMESTAMP - 格式 : YYYY-MM-DD HH:MM:SS
  • YEAR - 格式 : YYYY 或 YY
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server是一种关系型数据库管理系统,广泛应用于企业级数据存储和管理。高级教程主要涉及SQL Server数据库的高级功能和技术,以下是对SQL Server高级教程的300字回答。 SQL Server高级教程涵盖了许多重要的主题,包括查询优化、索引优化、性能调优、故障恢复、安全性、数据分析、复制和高可用性等方面。在查询优化方面,教程会深入讲解如何编写高效的SQL查询,并介绍如何使用索引、分区和统计信息来提升查询性能。此外,教程还会介绍如何创建和使用存储过程、触发器和函数来实现复杂的数据操作和业务逻辑。 在性能调优方面,教程会教授如何监控和诊断数据库性能问题,并介绍如何使用SQL Server性能监视器和查询计划来定位性能瓶颈。此外,教程还会介绍如何使用数据库引擎优化顾问(Database Engine Tuning Advisor)来自动优化查询和表结构。 在故障恢复方面,教程会讲解如何备份和还原数据库,并介绍如何使用日志文件来实现点时间恢复。此外,教程还会介绍如何使用SQL Server故障转移集群和数据库镜像来实现高可用性和灾备。 在安全性方面,教程会介绍如何配置和管理SQL Server身份验证和Windows身份验证,以及如何使用数据库角色和权限来实现细粒度的访问控制。 在数据分析方面,教程会介绍如何使用SQL Server分析服务和数据挖掘来进行高级数据分析和预测建模。 SQL Server高级教程的内容丰富多样,对于想要深入掌握SQL Server数据库管理的人来说,是值得学习的重要资料。通过学习SQL Server高级教程,用户可以提升SQL Server数据库的性能、安全性和可用性,从而更好地满足企业的数据管理需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值