首页 > 代码库 > 关系型数据管理系统一 SQL概念与操作
关系型数据管理系统一 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
关系型数据管理系统一 SQL概念与操作