




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.数据库原理及开发应用(总结的知识储备)1. 数据库就是储存数据的仓库,专业的解释就是对数据存储和管理的软件和数据本身统称为数据库。2. 大型数据库有 Oracle,Sql sever属于中型数据库, 小的太多忽略不计,要知道就上网查。3. 数据库管理系统的主要功能:数据库定义功能;数据存取功能;数据库运行管理;数据库的建立和维护功能。4. 数据库的三级模式构:外模式、模式和内模式。(外模式即是用户模式可以多个,模式只能一个,内模式就是储存模式)。5.DDL: 数据库模式定义语言 DDL(Data Definition Language) 。6.DML:数据操作语言( data manipul
2、ationlanguage )。7. DBMS:数据库管理系统 (Database Management System) 。8. DBS:数据库系统( Database System )。9. DBA:数据库管理员( Database Administrator)。从三方面学习数据库1. 数据库是如何储存数据的? (主键,外键,唯一键)2. 数据库是如何操作数据的?(insert update delete)3. 数据库是如何显示数据的?(select重点 ).操作及代码1. Crate table 语句: create table student(stu_name nvarchar(30)
3、not null,stu_numb int not null,stu_sex nchar(1) not null);2. 主键外键: stu_numb int primary key;(可以在int和primary 中间加上 constraint约束名称 )。sch_add nvarchar(30)foreignkey referencesstudent (stu_numb);顺带回忆一下主键和外键的定义:主键:能够唯一标示一个事物的的字段或者多个字段的组合,叫主键。(含有主键的表叫做主键表,主键一般是整数不建议用字符串,而且一般用代理主键不要用业务主键,也就是说不要用有业务的字段作为主键,一
4、般就用没有含义的编号当做主键。)外键:如果一个表中的若干个字段来自若干个表的主键或者唯一键,就称这若干个字段为外键。(含有外键的表叫做外键表, 通常都来自主键, 因为唯一键可能为null,而且外键不一定来自别的表可能就来自本表)。自认为总结的超好。.哦哦,还有删除表的时候先删外键表,不然先删主键会报错,原因很简单,外键引用错误。没完,主键约束:不允许重复元素,避免了数据的冗余。外键约束:从语法上保证所关联的事物一定存在,而且事物和事物之间的关系是通过外键来体现的。3. check 语句 : stu_mark int check(stu_mark=60 and stu_mark=1500 and
5、 salary =1500 and salary =5000是不可取的,这两个命令是一起的,中间不能打分号。查找另外一个范围的数据时可以用以下语句:select * from empwhere salary not between 1500 and 5000( 另外一种是 :select * from empwhere salary =5000)4. in 【若干个孤立的值】select * from emp where salary in (1500,3000)等价于select * from emp where salary =1500 or salary =3000 select * f
6、rom emp where salary not in (1500,3000)等价于select * from emp where salary 1500 and salary 3000也作.select* from emp where salary!=1500 and salary!= 3000- 数据库中不等于有两种写法: != 和 推荐使用第二种。-or取反时记得改为and,呵呵。5. top【最前面的若干个记录,专属于sql server不可移植到其他数据库】select top 5 * from emp;select top 15 percent * from emp;- 此语句输出
7、的是百分之 15 的行数的所有字段 , 如果经计算百分之 15 是 2.1 ,则输出的是三行。 而且 * 不能省略,否则报错。6. null 【没有值 空值】零和 null不一样, null表示没有值,而零表示一个确定的值。null不能参与这些运算: !=可以参与如下运算:isis not( 下面的例子中emp 表示表名,而comm表示字段名 )select * from emp where comm is null;- 输出的是奖金为空的员工的信息。select * from emp where comm is not null;- 输出的是奖金不为空的员工信息。select * from
8、emp where comm null;- 输出为空 errorselect * from emp where comm != null;- 输出为空 error.select * from emp where comm = null;- 输出为空 error任何类型的数据都允许为nullcreatetablet1 (stu_name nvarchar(30),stu_idint,stu_sexnchar(1);insert into t1 values(null,null,null);- 正确任何数字与null参与数学运算的结果都是null(后面例子中empna表示员工名字, empsal
9、表示月薪, empid 表示员工号码, comm与上面一样表示年终奖金)selectempid,empna,empsal * 12 + commas ”年薪” from emp;运行结果是最后一个字段都为null ,证明了上面的说法。另外一种正确的写法:select empid,empna,empsal * 12 + isnull(comm.,0) as“年薪” from emp;关于函数 isnull(comm.,0) 的解释:如果 comm的值为 null 则返回 0,如果不是 null 则返回原本的 comm值。7. order by 【以某个字段排序】order by a,b按 a,b
10、 都按升序排列。.order by a,b desca 升序, b,降序order by a desc, ba 降序, b 升序order by a desc,b desca,b都按降序排列。- 解释:默认是按照升序排列的,升序是 asc 可以不写。(ascending,descending )8. 模糊查询【搜索时经常使用】格式:select 字段的集合 from 表名 where 某个字段的名字 like 匹配条件 (匹配条件通常含有通配符 % )通配符表示任意零个或者多个字符select * from emp where ename like%A%- 只要含 A 的 ename 就输出。
11、select * from emp where ename likeA%-ename 只要首字母为A 就输出。.select * from emp where ename like%A-ename 只要以 A 结尾就输出。_【下划线】表示任意单个字符select * from emp where ename like_A%-ename 只要第二个字母为A 就输出。a-fa 到 f中的任意单个字符select * from emp where ename like_a-f% -ename 中只要第二个字母是在a 到 f 中的就输出。a,f a或 fa-c不是 a 到 c 中的任意一个字母,看清楚
12、是不是自己瞎了别怪我没提醒。select*fromemp where部门 iplike_发,联 %(这个语句是从sqlsever里面复制的, 感觉颜色还蛮好看的).注意:匹配的条件必须用单引号括起来,不能傻不拉几的用双引号,后面来解释一下要搜索带% _的字段时的方法。直接把在 sql sever里的复制看:createtablepeople( name nvarchar( 30 ) notnull,ageint )insertintopeoplevalues( 张三 , 32 );insertintopeoplevalues( Tom, 66 );insertintopeoplevalues(
13、 a_b, 22 );insertintopeoplevalues( c%d, 44 );insertintopeoplevalues( abc_fe, 56 );insertintopeoplevalues( Snail,18 );insertintopeoplevalues( 施宁一 ,19 );insertintopeoplevalues( c% , 65);insertintopeoplevalues( longs, 100 );select*frompeopleselect*frompeoplewherename like%/%escape/;- 把含有 %的字段输出了select*
14、 frompeoplewherename like%/_%escape/;- 把含有 _的字段输出了噢耶.9. 聚合函数【多行记录返回至一个值,通常用于统计】函数的分类单行函数- 每行返回一个值多行函数- 每行返回一个值聚合函数是多行函数例子:select*frompeopleselectupper ( name)frompeople;- 单行函数 upper ()将每行都返回为大写的字母。.selectMIN( age )frompeople;- 多行函数将多行中最小的值找出来返回了。聚合函数的分类:max()min()avg()平均值count()求个数count(* )返回表中所有记录的
15、个数selectCOUNT(*)frompeople;- 返回了表 people 中的记录个数。count (字段名 )返回字段中包括重复的记录的个数,但是 null不会被当做有效的记录算在个数之内。count (distinct字段名 )- 返回了出去重复的记录后的记录个数。注意:判断下列 sql语句是否正确1. select max(sal),min(sal),count(*) from emp;-Ok.2. selectmax(sal)“最高薪 ”,min(sal)“最低薪 ”,count(*)“员工人数 ”fromemp;-Ok3. select max(sal),lower(enam
16、e) from emp ;-error单行函数和多行函数不能混用10. group by 【分组 难点】格式:group by字段的集合功能:把表中的记录按照字段分成不同的组。例子:查询不同部门的平均工资并且按照升序排列selectdeptno,AVG( sal )fromemp groupby deptnoorderbydeptno;注意理解:group by a, b, c的用法.先按 a 分组,如果 a 相同,再按 b 分组,如果 b 相同,再按 c分组最终统计的是最小分组的信息一定要明白下列语句为什么是错误的:select deptno , avg(sal) as“部门平均工资 ”,e
17、namefrom empgroup by deptnoselect deptno,enamefrom empgroup by deptnoselect deptno, job, salfrom empgroup by deptno,job记住:使用 groupby 之后 select中只能出现分组后的整体信息,不能出现组内的详细信息11. having 【对分组后的信息进行过滤难点】1. having 通常是对分组之后的记录进一步过滤,所以 having 时一般先使用 group up2. 如果没有使用 group up 而使用了 having 则意味着把所有的内容当做一组来处理.3. Hav
18、ing 子句出现的字段必须是分组之后组的整体信息, having 子句不允许出现组内的详细信息。4. Having 子句中不能使用别名,尽管 select 中能使用别名。5. having 和 where 的异同相同点:都是过滤的作用, 都不允许使用别名, 只允许使用最原始的字段名。不同点: where 是对原始数据进行过滤,而having是对分组之后的数据进行过滤,where必须在 having前面,否则运行出错。(没试过)例子:selectdeptno, avg (sal)“平均工资 ”, count(*)”部门人数 ”, max(sal)“部门的最高工资 ”fromempwheresal 2000- where 是对原始记录的过滤group bydeptnohavingavg (sal)3000- 对分组之后的记录的过滤(where 不能出现聚合函数)12. 连接查询定义:将两个或者两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据。.分 内 接【重点的重点也是 点的 点】1. selectfrom A,B的用法 生的 果:行数是 A B的乘 列数是 A B之和或者 把 A 表的每一条 都和 B 表的每一条 合起来了形成的是一个笛卡 注意: selectfrom A,B和selectfrom B,A是一摸
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年证券从业资格证金融工具解析试题及答案
- 项目管理专业资格考试能力动态试题及答案
- 注册会计师考试的关键准备细则试题及答案
- 注册会计师考试2025年合规风险管理流程探讨试题及答案
- 微生物与疾病预防的关系试题及答案
- 风险应对策略在项目管理中的运用试题及答案
- 证券从业资格证的复习心态调整技巧试题及答案
- 证券投资决策模型的应用试题及答案
- 临床微生物学课程总结试题及答案
- 股票价值评估的基本方法试题及答案
- 石群邱关源电路课件(第8至16单元)白底
- 幼儿园警察职业介绍课件
- 学校直饮水卫生管理制度
- GB/T 7389-1987船用起货绞车
- GB/T 2423.18-2012环境试验第2部分:试验方法试验Kb:盐雾,交变(氯化钠溶液)
- FZ/T 01008-2008涂层织物耐热空气老化性的测定
- 2021年5月北京地区成人本科学士学位英语统一考试真题及答案
- 国防科技大学介绍
- 防腐木施工合同样本(3篇)
- 感染性休克病人麻醉处理课件
- 李清照永遇乐落日熔金讲课教案课件
评论
0/150
提交评论