关系型数据管理系统一 SQL概念与操作

目录

一、几个定义注意点

二、SQL操作语句备忘录

三、补充SQL约束

(本文是中科院陈世敏老师课程学习笔记)

-----------------------------------------

一、几个定义注意点

1.Scheme 对表格每一列的类型声明,只需定义一次

eg:新建表格定义scheme

create table Student (
    ID integer,
    Name varchar(20),
    GPA float
  );

2.Primary Key 可以包含多个属性,即可以是一个组合附补充1-SQL约束

eg.定义TakeCourse以(Course ID,Student ID)为主键:

primary key (CourseID,StudentID),

3.Foreign Key引用其他表格,创建联系,跟指针作用类似,所以不能指向空

eg.TakeCourse引用CourseID

foreign key(CourseID) reference Course(ID)

二、SQL操作语句备忘录

快记:操作类型 + 表格 + 操作具体信息

1.插入 王小二同学入学信息

insert into Student Values(12345,‘王小一’,1994/1/1,M,‘计算机科学’,2016);

2.更新 王小二同学入学时候名字被错打为‘王小一’,要求更改

update Student set Name=‘王小二‘ where ID = 12345;

3.删除 王小二同学退学创业 and 王小二同学带领全体计算机科学系同学创业退学

delete from Student where ID=12345;

delete from Student where Major=‘‘计算机科学";

4.关系运算一 选择selection 类似过滤

select * from Student where Major = ‘计算机科学‘;

where 后面条件可以用and or组合

5.关系运算二 投影projection 类似维度切片

select colum1 ,colum2 from table;

投影+选择

select colum1 ,colum2 from table where Major =‘计算机科学’;

6.关系运算三 连接join

equi-join等值连接,最简单的连接方式

select Student.Name.Course.Name from Student    ->选出来输出的属性

from Student,Course,TakeCourse              ->使用的多个表

where TakeCourse.CourseID = Course.ID  ->连接条件1

and TakeCourse.StudentID = Student.ID; ->连接条件2

7.简单统计一 分组统计 group by

select Major ,Count(*)   ->输出  Count(*)统计函数

from Student                ->表格

where Year >= 2013 and Year <= 2014 ->条件

group by Major;            ->先执行分组操作,输出时候在组内执行Count(*)统计组内所有个数

SQL定义的统计函数 count.sum.avg.max.min

8.简单统计二  having在group by上选择

select Major ,Count(*) as cnt   ->输出

from Student                ->表格

where Year >= 2013 and Year <= 2014 ->条件

group by Major             ->分组与操依据属性

having cnt>=2;            ->count执行完给输出命名cnt

9.简单统计三 Order by排序

select Major ,Count(*) as cnt   ->输出

from Student                ->表格

where Year >= 2013 and Year <= 2014 ->条件

group by Major             ->分组与操依据属性

order by cnt desc;        ->desc(descending减少) asc(ascending增加)

补充附录:

1.SQL约束

(1)主键约束(primary key constraint) 唯一、不能为空

(2)唯一性约束(unique constraint 不能有重复值

(3)外键约束(foreign key constraint) 与另外一张表数据类型要一致,而且必须先定义主表,再定义从表。即:必须先存在这个人,      你才能打电话找他。

(4)检查约束(check constraint) 值需要满足一定范围或要求。

(5)还有不为空约束、默认约束,看名字就知道作用,所有约束都是为为了"规范"表格。

这里有详解:http://www.runoob.com/sql/sql-constraints.html

时间: 2024-10-13 23:56:42

关系型数据管理系统一 SQL概念与操作的相关文章

SQL Server 触发器例题: --次性删除course表数据,使用触发器替换删除操作,先删除外键表相关数据,再删除course。很难理解

create trigger Course_Delete on course instead of delete as declare @cno varchar(20) --定义变量 select @cno = cno from deleted --临时表里的信息是instead of 替换 delete要删除的信息 delete from score where cno = @cno --instead of 替换操作后执行的代码命令 delete from course where cno=

关系型数据的分布式处理系统MyCAT(转载)

  ——概述和基本使用教程 日期:2014/12/24 文:阿蜜果 1.   MyCAT概述 1.1 背景 随着传统的数据库技术日趋成熟.计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上.这时集中式数据库系统表现出它的不足: (1)集中式处理,势必造成性能瓶颈: (2)应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高: (3)集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差. 在这种形势下,集中式数据库将向分布式数据库

MySQL——数据库和 SQL 概念&amp;&amp;MySQL的安装

数据库和 SQL 概念 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变得无处不在:它在电子商务.银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分. 数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增.删.改.查等操作. 结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于对数据库

[SQLServer]学习总结笔记(基本涵盖Sql的所有操作)

--################################################################################### /* 缩写: DDL(Database Definition Language): 数据库定义语言 DML(Database Manipulation Language): 数据库操作语言 DCL(Database Control Language): 数据库控制语言 DTM(Database Trasaction Manag

Hive基础之Hive体系架构&amp;运行模式&amp;Hive与关系型数据的区别

Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端口是10000:启动方式:hive --service hiveserver WEBUI(浏览器访问hive):通过浏览器访问hive,默认端口是9999:启动方式:hive --service hwi 2)元数据存储(Metastore):启动方式:hive -service metastore

DNS基本概念及操作详解----------------转载

DNS基本概念及操作详解 目录: 1.DNS协议 2.DNS查询 2.1递归查询 2.2跌代查询 2.3反向查询 3.域维护 3.1全量AXFR传输 3.2增量IXFR传输 3.3通过NOTIFY 3.4动态更新 4.DNS安全 在很多人看来,DNS只是为外部提供DNS解析服务(我以前也是这么认为的,直到膝盖中了一箭),但作为互联网的基础设施,DNS远没有想象的那么简单.如果你没有听说过DNS查询.反向解析.zone传输.动态更新.DNS安全,那你可以从本文中得到关于他们的最简明的诠释. 一.

sas中的sql(5) 纵向操作数据集 Except、Intersect、Union、OuterJoin

SQL进行纵向操作的基本语法 proc sql; select * from table1 set-operator <all> <corr> select * from table2 set-operator <all> <corr> select * from table3; 1:几种set操作符 Except.Intersect.Union.OuterJoin Except.Intersect.Union三种set符号是默认进行unique处理,当进行

C#网络编程(基本概念和操作) - Part.1

引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍. 本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议.套接字.聊天程序的三种开发模式,以及两个基本操作:侦听端口.连接远程服务端:第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打印字符串,将字符串改为大写,然后再将字符串回发到客

SQL SERVER 时间相关操作笔记

1.DATEADD函数: A.  MSDN上的示例:http://msdn.microsoft.com/zh-cn/library/ms186819%28v=sql.90%29.aspx B. SQL2005上的示例 1 ----定义变量 2 DECLARE @start DATETIME,@end DATETIME 3 SET @start='2014-01-01' 4 SET @end='2014-06-16' 5 6 ---- 计算月份 7 SELECT DATEADD(YEAR,-6,@