一、概述

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的更多相关文章

  1. sql基础复习

    --.while循环 declare @sum int declare @i int ) begin set @sum =@sum+@i ) print @i end print @sum --.go ...

  2. SQL基础复习2

    一.视图 1.创建视图      创建视图后加 WITH CHECK OPTION 2.视图查询 数据库系统的处理方法: 视图消解法(View Resolution) 步骤: 进行有效性检查-> ...

  3. MySQL学习笔记_8_SQL语言基础复习

    SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...

  4. 数据库学习---SQL基础(二)

    数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) 上篇复习的sql的增删改查,and ,or ,>=, <=,!=等逻辑运算符,还有in ...

  5. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. poj1639 Picnic Planning,K度限制生成树

    题意: 矮人虽小却喜欢乘坐巨大的轿车,车大到能够装下不管多少矮人.某天,N(N≤20)个矮人打算到野外聚餐.为了集中到聚餐地点,矮人A 要么开车到矮人B 家中,留下自己的轿车在矮人B 家,然后乘坐B ...

  2. Spring中的Interceptor 拦截器 专题

    spring-webmvc-4.3.14.RELEASE.jar org.springframework.web.servlet.DispatcherServlet#doDispatch /** * ...

  3. Android子线程中更新UI的4种方法

    方法一:用Handler 1.主线程中定义Handler: Handler mHandler = new Handler() { @Override public void handleMessage ...

  4. Android-apktool反汇编异常-Input file (XXX) was not found or was not readable.

    问题描述: 原因: 在apptool 2.0以后命令发生了变化,不能再使用 apktool d <apk_path> <outfile_path> 解决方法:解决方法: 使用命 ...

  5. 系统性能指标之 vmstat

    系统性能指标 top top - 19:59:04 up 219 days, 21:51, 2 users, load average: 0.06, 0.06, 0.05 Tasks: 84 tota ...

  6. Linux下快速静态编译Qt以及Qt动态/静态版本共存(提供了编译4.6,5.6的精通编译脚本,并且apt-get install 需要的库也全列出来了。还有分析问题的心理过程)good

    qt4.6 Linux./configure -static -release -confirm-license -opensource -qt-zlib -qt-libpng -qt-libjpeg ...

  7. HDU4099-Revenge of Fibonacci(trie树+数学基础)

    Revenge of Fibonacci Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 204800/204800 K (Java/ ...

  8. WPF无边框拖动、全屏、缩放

    原文:WPF无边框拖动.全屏.缩放 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/78059361 先看效果 ...

  9. 新版【CefSharp】 禁用右键菜单 43.00+

    原文:新版[CefSharp] 禁用右键菜单 43.00+ 禁用右键菜单其实是很容易的.主就要是实现一个接口 IMenuHandler ,这个接口有一个  OnBeforeContextMenu 的方 ...

  10. Eclipseproject标准的文件夹层次

    为什么特别写一个文档首场讲座解释什么层次,你是eclipse正在使用java.io.File类在读workspace档,我相信不知道eclipse,为了避免以后再出现这样的令人难堪的情况,还是编写这样 ...