- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL核心知识
SQL核心知识
SQL主要分为三类:
DCL:grant revoke commit rollback
DDL:create alter drop
DML:insert delete update (select )
SQL语言基础-alter
alter table tableName add columnName varchar2(30);
alter table tableName drop column columnName;
alter table tableName modify columnName varchar2(30);--修改数据类型
alter table tableName rename column columnName to newColumnName;
主表和从表
主从表是一种数据关系模型,主表约束从表。以学员信息表stuInfo和考试成绩表stuMarks为例, 我们知道它们是一对多的关系,当然一是主,多是从。(譬如我们的胡主席是主,我们大家都要听主席的话!)所以stuInfo就是主表,stuMarks就是从表。那么,一般我们会在从表中做一个外键字段,引用主表中的主键。(为什么呢?大家想想是13亿人民记住主席的名字容易还是主席记住13亿人民名字呢?)这一点,已经在stuMarks表中得到了体现。那么,为了保持数据的完整性。主从表我们要尽量遵循以下原则:
1、当主表中没有对应的记录时,不能将记录添加到子表
——成绩表中不能出现在学员信息表中不存在的学号;
2、不能更改主表中的值而导致子表中的记录孤立
——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变;
3、子表存在与主表对应的记录,不能从主表中删除该行
——不能把有成绩的学员删除了
4、删除主表前,先删子表
——先删学员成绩表、后删除学员信息表
理解查询的机制
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是先从数据表中提取数据,并按照表的形式显示出来
查询语法
SELECT 列名
FROM 表名
[WHERE 查询条件表达式]
[ORDER BY 排序的列名[ASC或DESC]]
例子:
SELECT SCode,SName,SAddress
FROM Students
WHERE SSEX = 0
ORDER BY SCode
数据查询-基础
查询全部的行和列
SELECT * FROM Students
数据查询-给列取别名(3种方式)
使用AS来命名列(其中as可以省略)
SELECT FirstName+.+LastName AS 姓名
FROM Employees
使用=来命名列
SELECT 姓名 = FirstName+.+LastName
FROM Employees
数据查询-查询部分行
SELECT SCode,SName,SAddress FROM Students
WHERE SAddress 河南新乡
数据查询-查询NULL值
SELECT SName FROM Students WHERE SEmail IS NULL
数据查询-使用常量列
SELECT 姓名=SName,地址= SAddress,河北新龙 AS 学校名称
FROM Students
数据查询-限制行数
1. 限制固定行数
SELECT TOP 5SName, SAddress
FROM Students WHERE SSex = 0
2. 返回百分之多少行
SELECT TOP 20 PERCENT SName, SAddress
FROM Students WHERE SSex = 0
数据查询-排序
注意排序中的字段可以使用表达式:
1. 升序
SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩
FROM Score
WHERE (Score*0.9+5)60
ORDER BY Score
2. 降序
SELECT Au_Lname +. +Au_fName AS EMP
From Authors Union
SELECT fName +.+ LName AS EMP
From Employee
ORDER BY EMP DESC
3.按多列排序
SELECT StudentID As 学员编号, Score As 成绩
FROM Score
WHERE Score60
ORDER BY Score,CourseID
数据查询-使用函数(这个在前面已经介绍
文档评论(0)