SQL基础复习1
一、概述
SQL语言组成:DDL,DCL,DML
二、数据定义
1、模式定义(Schema)
Schema这个东西一直感觉不大明白,一直以为就是对表的字段定义则被称为Schema,在复习数据库理论中才再次去了解,算是有了一个粗略的认识。
模式:类似于C#中的命名空间,数据表、视图、函数等均以模式为单位组织。定义模式时,需要指定模式名称和所有者,若未指定名称其默认以所有者名作为模式名。如SqlServer中:
其中,dbo和guest为OFFSET数据库中的两个模式,默认以其所有者的名字命名。
创建模式:
CREATE SCHEMA [模式名] AUTHORIZATION [所有者]
GO
2、基本表操作
定义表:
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]…
[,<表级完整性约束条件> ] );
列级完整性约束:NOT NULL,DEFAULT
表级完整性约束:主键,外键
外键在参照表被引用的主键列被删除时的处理办法:
RESTRICT:拒绝参照表的被应用主键被删除
CASCADE:若参照表删除了某一主键,则引用此主键的行也随之删除
SET NULL
修改表:
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束] ]
[ DROP <完整性约束名> ]
[ ALTER COLUMN<列名> <数据类型> ];
删除表:
DROP TABLE <表名>[RESTRICT| CASCADE];
3、索引操作
目的:加快查询速度!
DBMS一般会为PRIMARY KEY和UNIQUE列自动创建索引
建立索引:
CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
◦ 唯一索引:UNIQUE
◦ 聚簇索引:CLUSTER
◦ 次序:ASC(升序),DESC(降序)
注:
一个基本表上最多只能建立一个聚簇索引
经常更新的列不适合建立聚簇索引
删除索引:
DROP INDEX <索引名>
Tips:聚簇索引与唯一索引的区别?
4、查询
(1)单表查询
查询指定列(投影运算)

聚集:

分组:Group By
按指定的一列或多列值分组,值相等的为一组。
作用:细化聚集函数的作用对象、 未对查询结果分组;聚集函数将作用于整个查询结果;对查询结果分组后,聚集函数将分别作用于每个组;
作用对象是查询的中间结果表
HAVING短语作用于组,从中选择满足条件的组。 只有出现了GROUP BY 才能使用HAVING
例1:查询选修了1门以上课程的学生学号。
SELECT Sno FROM SC
GROUP BY Sno
HAVING COUNT(*) >1;
SELECT执行顺序:
From --》 WHERE –》 Group By –》 聚集函数 –》 Having
(2)多表查询:
◦ 等值与非等值连接查询
自然连接:
自然连接(NATURAL JOIN)是一种特殊的等价连接,它将表中具有相同名称的列自动进行记录匹配。自然连接不必指定任何同等连接条件。自然连接自动判断相同名称的列,而后形成匹配。
缺点:虽然可以指定查询结果包括哪些列,但不能人为地指定哪些列被匹配。自然连接的一个特点是连接后的结果表中匹配的列只有一个。
◦ 自身连接
一个表与自己进行连接。为了区别需要为表命名别名。
◦ 外连接
左外连接、右外连接、外连接
◦ 复合条件连接
(3)嵌套查询
包含子查询的查询称为嵌套查询。分为关联子查询和非关联子查询
使用in,关系,Exist,all/any
(4)、集合查询
Union 、Intersect、Except
5、数据更新
插入、修改、删除
SQL基础复习1的更多相关文章
- sql基础复习
--.while循环 declare @sum int declare @i int ) begin set @sum =@sum+@i ) print @i end print @sum --.go ...
- SQL基础复习2
一.视图 1.创建视图 创建视图后加 WITH CHECK OPTION 2.视图查询 数据库系统的处理方法: 视图消解法(View Resolution) 步骤: 进行有效性检查-> ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- 数据库学习---SQL基础(二)
数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) 上篇复习的sql的增删改查,and ,or ,>=, <=,!=等逻辑运算符,还有in ...
- mybatis学习笔记之基础复习(3)
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
随机推荐
- Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
TelephonyManager是一个管理手机通话状态.电话网络信息的服务类,该类提供了大量的getXxx()方法来获取电话网络的相关信息.这些信息包括设备编号.软件版本.网络运营商代号.网络运营商名 ...
- CodeBlocks提供了预编译的WxWidgets模块,并预置TDM
Miscellaneous For Windows, we also provide the pre-compiled wxWidgets, version 2.8.12 used to compil ...
- Oracle数据库案例整理-Oracle系统执行失败-sql_trace至TRUE导致Oracle在根文件夹中缺乏可用空间
1.1 述 在"$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace"文件夹下产生大量"oracle_w ...
- 多线程编程 CreateThread(解释了TContext)
function CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; ...
- 强大的 pdf 编辑器 —— Acrobat
菜单栏中的 [编辑](Edit)⇒ [编辑文本和图像](Edit Text & Images) 可以随意地编辑当前 pdf 中的文本信息,和图像信息: pdf 格式的转换,更是不在话下. 转 ...
- centos7 Intellij Idea 授权服务器搭建(Jetbrain 家族系列IDE)
centos7 Intellij Idea 授权服务器搭建 1.上传破解文件 我用的是Xshell客户端,有上传功能,但是linux必须先装lrzsz,也可以通过其他方式传到linux上 yum -y ...
- 理解c#
首先在介绍c#的时候我们要先理解什么是.NET,.NET就是微软的用来实验XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷 ...
- 微服务实践之路--RPC
微服务实践之路--RPC 重点来了,本文全面阐述一下我们的RPC是怎么实现并如何使用的,跟Kubernetes和Openstack怎么结合. 在选型一文中说到我们选定的RPC框架是Apache Thr ...
- HDU 1618 Oulipo KMP解决问题的方法
鉴于两个字符串,寻找一个字符串的频率,另一个字符串出现. 原版的kmp另一个陷阱.以下凝视了,标不是踩着好,有加班一定几率,也有机会错误,根据不同的字符串可以是详细. 变化看起来像一个,kmp速度是非 ...
- IME输入法编程心得
原文:IME输入法编程心得 posted @ 2012-11-30 00:42 from [FreedomShe] 自然语言处理的输入法作业成品没有做出来,但不想再在蛋疼的Win32上面耗费时间了,整 ...