zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

大学数据库笔记

2023-09-11 14:17:27 时间

这里是原word笔记源文件

当时大学的时候,学习数据库基本是班级里的第一名,但是毕业以后就做了前端
从此几乎与后端无缘,为了纪念曾经的努力,在整理旧资料时候,特意拿出来,留个痕迹,一次怀念。

前言

《数据库技术》课程实习指导书
一、实习课程性质和任务
《数据库技术》课程实习是在完成了理论教学和课内实训之后安排的综合实习。其目的和任务是让学生更加熟练地掌握数据库对象的基本操作、数据查询等内容,对数据库及数据库设计、SQL语言的运用,以及管理信息系统的分析、设计方法有初步了解,对管理信息系统项目的组织策划、资源管理、团队精神也有一定的认识。
《数据库技术》课程实习任务主要按照面向对象程序设计和数据库应用技术两门课程的教学内容来进行,它是以一个实际管理信息系统(MIS)的开发过程为背景来实施,实习通过一个完整的MIS项目开发,提高学生的应用开发能力及实际编程能力,使学生掌握数据库系统的基本概念、原理和应用,了解数据库系统在实际应用中的开发方法及研制过程,为今后从事管理信息系统的研究、开发、应用提供必要的知识,更好地完成各种计算机应用和开发任务。 
本课程的实习分为前期准备阶段、基本操作阶段和技术提高阶段三个阶段进行:前期准备阶段的实验围绕数据库系统设计进行,它要求学生根据教科书的内容,设计一个自选的实际数据库系统,并完成相应的设计报告;基本操作阶段的实验围绕着数据库系统的基本操作进行,其内容主要是有关数据库定义、数据操纵和数据控制功能,它要求学生结合书本上有关数据库系统和数据库语言的知识完成;技术提高阶段的实验不仅要求把书本上的内容掌握好,同时还需要自学一些相关的知识。
实习的软件环境为Microsoft SQL Server 2005。
二、实习基本要求
实习采用分组方式进行,每组选定一个管理信息系统的题目,组内可以进行讨论,互相学习提高。每个组员具体做一个模块,组长负责总体协调和系统联调。在实习的过程中,要求组长带领组员深入现有系统进行深入调查,弄清用户需求。同时,要求组长督促组员都要参与开发的全过程,并鼓励组员选择MIS系统中除基本功能外的其他功能或者使用特别方法实现功能的,作为创新设计的尝试。
三、实习教学条件
⑴ 先行已开设可视化程序设计课程,并学完《数据库技术》的基本内容。
⑵ 具备客户机/服务器模式的网络实验室作为学生实习操作的场地。 
四、实习内容
⑴ 系统分析与设计
要求学生掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方法。并加深对数据库系统概念和特点的理解。
利用数据库设计的4个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)进行。概念模型设计时采用自底向上的方法,即自顶向下地进行需求分析,然后再自底向上地设计概念结构,和自底向上的设计方法。
① 用户的功能需求分析,要深入到用户和现有的实际系统中,弄清楚现有系统业务流和数据流运动过程。
② 画出系统的功能图。
③ 数据库系统的E-R图。
需求分析时,找出系统中的实体及实体间的关系,定义实体的必要属性、类型,域,分析实体间的关系,码及外码;画出E-R图,并将E-R关系图,按转换规则转换成关系模式,进行优化;同时实现关系及关系间的数据的有效性及完整性约束。
⑵ 管理信息系统的开发与调试
要求学生熟练掌握和使用Transact-SQL、SQL Server 对象资源管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
① 数据库的建立:建立各种数据库表,表的主键、外键及关联等。
② 管理信息系统界面的规划。
③ 根据管理信息系统功能模块设计,查询要方便,界面要友好。
④ 编写各功能模块的程序代码。
⑤ 程序的调试与联接。 
五、实施办法

  1. 选题:根据现实经济生活和学生生活,参考后面附录中提供的题目,要求难易适中,业务情况容易了解,涉及其他专业的“专业性”不要太强。
    学生可以自己单独选题,或者以3-4个同学为一组共同协作进行一题目的设计小组形式选题。但一定要按本课程设计要求进行,各组题目不能重复。
    2.分工要求
    (1)负责工作流和功能分析,E-R图设计, 书写相应设计文档。  1人
    (2)负责关系模式设计,书写相应设计文档。                   1人
    (3)负责前台主要模块和菜单的设计。         1-2人
    六、实习学时分配
序号 内      容 时  间 合计
1 实习动员 0.5天 10天
2 需求分析 2天
3 概念模型设计 1天
4 逻辑模型设计 1.5天
5 数据库设计 1天
6 上机设计 3天
4 系统验收 0.5天
5 实习材料撰写并上交 0.5天

七、实习成果
将数据库应用技术和面向对象程序设计结合起来进行实习,可以使同学们从系统的需求分析开始,经历数据库的设计、优化,到功能规划、窗体设计、界面设计、报表设计、编码、调试等整个开发过程,使同学们对MIS整个开发过程有一个较全面的认识。提高同学们的知识综合应用能力,体验学习成果,激发同学们后续课程学习兴趣。成果形式包括实习报告书、开发的管理信息系统源代码以及使用说明文档。
其中实习报告书应说明:
(1) 实习目的
(2) 实习任务
(3) 需求分析
(4) 系统分析
(5) 系统设计
(6) 数据库设计
(7) 数据查询
(8) 遇到的关键问题及解决办法
(9) 实习启示与感想。
八、实习考核
实习考核是检查学生的实习成果,检测学生对《数据库技术》课程知识的理解程度,以及应用数据库进行数据管理的能力。
为了确保检验的真实性,实习结束前要进行答辩和演示,并将实习报告书、管理信息系统源代码和使用说明文档,交到服务器上的共享文件夹中,实习指导老师根据以上内容来评定成绩。
九、说明
⑴ 实习是在课堂学习以及相关先行课程学习后的基础上安排的实习,要求学生已具备一定的程序设计和业务流程的应用基础。
⑵ 实习内容要求以一个管理信息系统(例如,学生成绩管理系统、人事管理系统、物流管理系统等)为题材进行实际开发才有意义,才能锻炼学生在开发管理信息系统的过程中所需的综合能力和培养学生团队精神和团队协作的能力。
⑶ 实习完成后,必须测试系统功能和书写实习报告,并进行演示和答辩。
十、附录
(1) 新生报到管理系统
  根据新生报到的基本流程,该系统主要应具有以下基本功能:
l 新生数据管理:包括新生数据的录入、修改、删除等功能。
l 新生领取报到单管理:包括新生报到单的发放、检索等功能。
l 新生缴费管理:包括新生缴费数据的录入、检索等功能。
l 新生住宿管理:包括新生住宿数据的录入、修改等功能。
基本要求:学生可以先到所在的系与有关老师联系,进行需求调查,然后画出新生报到管理系统数据流图,功能流程图,数据库的设计。再进行程序设计、调试,以达到本系统的功能要求。
(2) 学校教材管理系统
功能要求:本系统能对学校所有班级的教材进行征订,教材的入库、出库进行管理、能进行各种条件的查询,打印,还应具有教材库存预警机制(教材库存不够用或教材征订过剩,都能给予提示)。
基本要求:学生可以首先到学校教材科进行需求调查,然后画出教材管理系统数据流图,功能流程图,数据库的设计。再进行程序设计、调试,以达到本系统的功能要求。
(3) 高校学生成绩管理系统
功能要求:学生成绩管理是教学管理的一个重要环节,本系统能够进行学生成绩登记、成绩的更正、成绩的查询、成绩的汇总及排序、对已毕业学生成绩能存入历史库中,对于保存一定年限的成绩能进行清除。要求有良好的界面,具有良好实用性。
基本要求:学生可以先到所在的系与有关老师联系,进行需求调查,然后画出成绩管理系统数据流图,功能流程图,数据库的设计。再进行程序设计、调试,以达到本系统的功能要求。
(4) 高校学生学籍管理系统
该系统主要应具有以下基本功能:
l 学生管理:包括学生数据的录入、修改、删除、查询功能。
l 课程管理:包括课程数据的录入、修改、删除、查询功能。
l 教师管理:包括教师基本数据的录入、修改、检索、统计功能。
l 成绩管理:包括学生成绩数据的录入、修改、查询、统计等功能。
l 授课管理:包括教师讲授课程、授课地点和授课学期
基本要求:学生可以先到所在的系与有关老师联系,进行需求调查,然后画出学籍管理系统数据流图,功能流程图,数据库的设计。再进行程序设计、调试,以达到本系统的功能要求。
(5)教务管理系统
功能要求:教务管理是教学管理的一个重要环节,本系统能够进行学生信息管理、班级信息管理、学生选课管理及选课管理。要求有良好的界面,具有良好实用性。
基本要求:学生可以先到所在的系与有关老师联系,进行需求调查,然后画出教务管理系统数据流图,功能流程图,数据库的设计。再进行程序设计、调试,以达到本系统的功能要求。
十一、T-SQL语言练习
以《数据库技术》课堂教材实例练习为主,建立学生管理数据库SM。
要求学生表中不能低于20条记录,课程表中不能低于10条记录,选课表中每个学生不能低于3门课程,教师表中不能低于10条记录,其它表中不能低于5条记录。
1. 数据查询练习
l 查询所有学生的姓名,出生日期,并按学号的降序输出;
l 查询每位教师的教师编号,姓名,职称,并按教师编号的升序输出;
l 查询选过课的学生的学号;
l 查询全体男生的出生日期,学号,姓名,要求列名用汉字表示;
l 查询班级编号是200802的班级的班级名称;
l 查询微机0802班的信息;
l 查询“网络技术”这门课程的信息;
l 查询每个系的基本信息;
l 查询“李勇”学生的基本信息;
l 查询所有女教师的信息。
l 查询所有男生的信息,要求列名用汉字表示,并按班级编号的升序,同一班级的在按照学号的降序输出;
l 查询所有女生且出生日期在1990年之后的姓名;
l 查询选修了课程代号为“10002”且成绩在80~90分之间的学号和成绩,并按成绩的降序排列;
l 查询所有姓王的女教师的信息;
l 查询成绩为60,70,80,90的学生选课的信息;
l 查询所有姓李的女生的信息;
l 查询班级编号为“200802”的所有女生的信息;
l 查询所有课程的信息,要求列名用汉字表示;
l 查询在系部编号为“01”工作的教师的姓名。
l 查询选修了课程代号为“10002”号课程的学生的学号及成绩,并对查询结果按照成绩的降序排列;
l 查询全体男生的信息,并对查询结果按照班级的升序排列,同一班级的按照学号的降序排列;
l 统计女生的总人数;
l 统计选修了“10004”号课程的学生人数、最高成绩及平均成绩;
l 统计每个班级的学生人数,并按学生人数的降序输出班级的编号和人数;
l 统计每个学生的选课门数,并按学号的升序输出选课在3门以上的学生的学号及选课门数;
l 统计每门课程的选课人数、最高分及平均成绩,并按选课人数的升序输出;
l 查询选修了课程的学生的学号,并按照学号的降序输出;
l 统计所有姓李的男生的人数;
l 统计所有男教师的人数。

查询

一、 初步认识最基本的查询
★查询所有学生的姓名,出生日期,并按学号的降序输出;
select sname,sbir  /查询字段,即查询时需要筛选所用的字段/
from student       /源,即要查询的数据表/
image.png

二、 排序order by
★ 查询每位教师的教师编号,姓名,并按教师编号的升序输出;
select tno,tname
from teacher /涉及到多表查询,表表之间用逗号隔开/
order by tno /按教师编号tno排序,并且是升序排【默认是升序】/
image.png

三、对行/列的筛选select、where
查询班级编号是200802的班级的班级名称
select clname  /对列的限制条件:要求只显示结果为clname的字段/列内容/
from class
where clno='200802'  /对行的限制条件:要求筛选班级号为的/
image.png

①、对非空的查询null
★查询选过课的学生的学号;
select sno
from sc
where cno is not null /对于非空的查询,即对于选过课同学的查询/
image.png
 
②、多条件查询&对日期的查询
查询所有女生且出生日期在1990年之后的信息
select*
from student
where ssex='女' and sbir >'1990' /多条件筛选:用AND连接/
image.png

③、对范围的查询between and
查询选修了课程代号为“10002”且成绩在80~90分之间的学号和成绩
select*
from sc
where score between 80 and 90 /范围:between and/
image.png
 
④、对结果集的查询in
查询成绩为60,70,80,90的学生选课的信息;
select*
from sc
where score in (60,70,80,90) /结果集:in()/
image.png
 
四、备注
select 学号=sno,姓名=sname,班级=clno  /备注的应用/
from student
image.png
 
五、排序order by
查询所有男生的信息;按班级编号的升序,同一班级的再按照学号的降序
select*
from student
order by clno,sno desc  /多要求排序:先按班号升序排,在此基础上(若班号一样)再按学号降序排/
image.png
六、函数
①、统计总人数count
统计女生的总人数
select count(sno)/统计人数/
from student
where ssex='女'
image.png

②count max avg
统计选修了“10004”号课程的学生人数、最高成绩及平均成绩
select count(sno), max(score), avg(score)/统计人数/
from sc
where cno='10004'
image.png
 
 
七、统计group by
★统计每个班级的学生人数,并按学生人数的降序输出班级的编号和人数
select clno,count(sno)
from student
group by  clno   /统计依据:按照班级编号统计/
order by  count(sno)  desc /排序依据:按照统计后班级人数大小排序,倒序/
image.png
 
八、注意事项:
1、 查询时个函数的顺序是select(对列的筛选)、from(表的来源)、where(对行的筛选)、order by(排序依据)【order by要放在where的后边】
 
2、 查询时个函数的顺序是select(对列的筛选)、from(表的来源)、group by(count / 统计依据)、order by(排序依据)【如果没有where ,order by 要放在group by的后边】
 
3、 SO,where、order by、group by它们不会出现在一个查询要求中

增删改

插入:
向学生表中插入丁少华记录
insert student(sno,sname,ssex,sbir,clno) /插入到 学生表中/
values ('200809','丁少华','男','1991/02/08','201311')
image.png
 
 
删除:
向学生表中删除‘学号为200809’记录
delete student /删除 从学生表中/
where sno='200809'
image.png
 
修改:
向学生表中修改‘学号为200809’记录,姓名改为丁香花
update student      /修改 在从学生表中/
set sname='丁香花'  /修改内容/
where sno='200808'  /修改条件/

网络习题
推荐:https://blog.csdn.net/a214919447/article/details/58594210

当时笔记

基本概念

数据(Date)
定义:数据是信息的表示形式,而信息是数据的载体!
数据是描述事物符号的记录,而信息的内容是数据!
a描述的事物符号有多种:数字、文字、图形、声音、语言等;b数据的多种表现形式;
型/值之分—原理和概念我们叫型,应用和值我们叫值
 
数据库(DB)
定义:存放数据的集合/仓库!详细点就是--建立在电脑系统上的,存储在计算机外部系统上的,可以长期保存的,看不见的,属于软件的范畴
特征:共享性、完整性、独立性、独立性、减冗余性
 
数据库管理系统(DBMS是数据库系统软件)
定义:专门管理数据库的计算机系统软件,如SQL
作用:为数据库提供数据的定义、建立、维护、查询和维统计等操作功能;发生故障后系统恢复
特点:(目标)让用户更方便,更有效,更方便地建立数据库和使用数据库中的信息资源
 
数据库应用软件
定义:指的是直接用于诸如工资管理、人事管理等的软件
 
数据库系统结构
定义:数据库系统的整个体系的结构
分类:数据库系统的体系结构从不同的角度可有不同的划分方式。如:单用户结构、主从式结构、分布式结构、客户/服务器结构、从数据库管理系统的角度为三级模式。
 
三级模式的简介
作用:数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。
不同的用户级形成不同的视图模式如:用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。
image.png

内模式①也叫存储模式或物理模式。是数据在数据库中的内部表示,即数据的物理结构和存储方式的描述!
②就是全部的数据文件,其表现是文件的形式。
③唯一的,一个数据库只有一个内模式
 
模式:①也叫概念模式和逻辑模式。是数据库中全体数据的逻辑结构和特征的描述!也是所有用户的公共数据视图!它有其独立性和完整性,不涉及存储细节、应用和程序语言!
      ②就是数据库的所有数据在逻辑上的视图,其表现形式为二维表
      ③唯一的,一个数据库只有一个模式
 
外模式①也称子模式或用户模式。是模式的子模式,是为了不同应用而建立的数据视图,是数据库的部分逻辑结构!
       ②就是模式的部分,其表现形式也是个二维表。
③不唯一,一个数据库可以有多个外模式
       ④作用:保证数据库安全的一个有力措施!因为每个用户只能看到不同应用所对应的外模式中的数据,数据库中其余的数据则不可见
 
二级映像技术
定义:指的是外|模之间  模式|内之间的映像技术。它不仅让三级数据模式之间建立了联系,
同时也保证了数据的独立性!
 
外模/内模映像
定义:指存在于外模式与模式之间的某种对应关系。这些映像的定义通常包含在外模式的描述中
作用:当数据库的模式发生改变时(如增加一个新表或对表进行修改),数据库管理员只需对映像做出相应的修改 使外模式保持不变,这样应用程序就不用修改了Becouse应用程序是在外模上边写的。   所以保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
 
模式/内模映像
定义:指数据库全局逻辑结构即模式 与 存储结构即内模式对应关系。
作用:当数据库的内模式发生改变时(如硬件设备或存储方式发生变化时),数据库管理员只需对映像做出相应的修改 使数据的逻辑结构即模式保持不变,这样应用程序就不用修改了   所以保证了数据与程序的物理独立性,简称数据的物理独立性
 
数据库系统设计的基本步骤
1、需求分析          2、概念结构设计---ER             3、逻辑结构的设计---二维表
4、数据库物理设计阶段 5、数据库实施阶段 6、数据库运行阶段和维护阶段
功能分析(掌握4种图)
前言-------要了解组织与功能的关系就必须调查
明确调查项目及内容p11
调查方法p12
 
正文-------
组织结构与功能分析
简介:是整个系统分析中最简单的一个环节。
组织结构与功能分析主要有三部分内容:组织结构分析、业务过程与组织结构之间的联系分析、业务功能一览表。
1、 组织结构图---组织结构图是一张反映组织内部之间隶属关系的树状结构图
  image.png
2、 业务与组织结构图
image.png 
3、 业务功能图---是一个完全以业务功能为主体的树型表,其目的在于描述组织内部各部分的业务和功能。
image.png 
4、 组织功能关系图

**业务流程分析 **
1、 业务功能分析图上边已给出
2、 业务流程图
① 业务流图基本图形符号
image.png
 
②业务流程图
备注:有关业务流程图的画法,目前尚不太统一,但大同小异,只是在一些具体的规定和所用的图形符号方面有些不同,而在准确明了地反映业务流程方面是非常一致的。
image.png

数据与数据流的分析
作用:数据与数据流程的分析是今后建立数据库系统和设计功能模块处理过程的基础!
 
a数据汇总与分析
前言:在系统调查中我们的数据收集有不同的人完成,所以较为凌乱。所以要对其数据汇总、分析,为以后在数据库内各子系统充分调用和共享数据资料奠定基础!
1、 将调查数据分类
2、 数据汇总
3、 数据分析
 
b数据流分析
定义:数据流分析其实就是有关数据分析的最后一步。其主要包含对象为对信息的流动、传递、处理、存储等的分析!
实质:数据流图的绘制过程,就是系统的逻辑模型形成过程。
1、 数据流图的特点
2、 数据流图的基本成分
3、 数据流图的基本图素
4、 数据流图的绘制方法
5、 数据流图的各种元素的标识
6、 数据流图中加工
7、 数据流图中的文件
8、 绘制数据流图的注意事项
 
 
数据字典
内容:通常包含—数据项、数据结构、数据流、数据存储处理过程5各部分构成
数据字典
定义:

概念模型ER

一 、数据模型 P38---P39
定义:就是对现实世界中各类数据特征的抽象模拟!用于计算机世界SQL
要求:真实的模拟现实世界  便于人们理解和交流  便于在计算机上实现
组成要素:
         数据结构---描述系统的静态特征。
         数据操作---描述系统的动态特征。
         SJ的约束条件--是一组数据完整性规则的集合
 
二 、信息的3种世界  P39---P40
现实世界
定义:就是客观事物及其事物本身的性质决定事物之间的联系。
主要概念:实体、实体特征、实体集及实体集之间的联系
 
信息世界/概念世界
定义:是现实世界在人们头脑中的反应。用数据对客观事物及其联系的一种抽象描述。
主要概念:实体、属性、关键字、域、实体型、实体集、联系
 
机器世界/数据世界
定义:信息世界中的信息经数字化处理后,形成了计算机能够处理的数据!就进入了该世界
主要概念:数据项、记录、文件、数据模型
 
三、 信息3世界关系 P40
** **
关系:由客观到认识,由认识到使用管理的3个不同层次!前一领域是后一领域的抽象描述
对应术语

现实世界 信息世界 计算机世界
实体 实例 记录
特征 属性 数据项
实体集 对象 数据或文件
实体间的联系 对象间的联系 数据间的联系
---- 概念模型 数据模型

image.png
** **
** **
四 、概念模型的基本概念ER  P41---PP43
原因:为什么概念模型/信息模型?!
---因为它是独立于计算机世界之外不被DBMS支持  仅描述某个特定组织所关心的信息结构的数据模型。
它是按用户的观点对数据和信息进行建模,是数据库的设计人员与用户交流的语言
一些关键字:对象和实例、属性、键、域
实体集联系类型:一对一、一对多、多对多  
** **
五、ER/概念模型的表示方法  P43
*(00)/ *概念模型的表示方法有很多种,其中最为出名的就是某人设计的ER图!
设计:构成E-R图的基本要素是实体型、属性和联系,
其表示方法为:
实体型--用矩形表示,矩形框内写明实体名;
属性--用椭圆形表示,并用无向边将其与相应的实体连接起来;
联系--用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。
image.png 
 
ER图的设计
一、 ER设计特点及方法 P44
特点:1图能真实的、充分地反映现实世界,能满足用户对数据处理的要求!2易于理解
3易于更改 4易于向数据模型转换
 
方法:1自顶向下or自下向上  2逐步扩张   3混合设计
 
二、 设计步骤
最常用的是‘自顶向下’的设计法,很简单!P45—P46
1抽象数据,形成局部视图
2集成局部视图,形成全局视图
注意:在集成局部视图过程中,要解决冲突问题和消除冗余P46—P48

习题

大学实训课上,老师安排的一些习题。如果不出意外,这辈子都不可能打开了。所以我压缩了
实训课练习题.zip

mysql相关

出了学校后发现,大家都不用sqlserver。都用mysql,所以在我做后端的一段事件内,其实我是用了mysql,自学了mysql。

mysql增删改差

image.png

插入

INSERT INTO student(sname,spass)
VALUES ('d','258369')

删除

DELETE 
FROM student /*删除 从学生表中*/
WHERE sname='a'

更改

UPDATE student
SET spass='123456' 
WHERE sname='b';

mysql联表查询

我们有这样一个表
管理员表muser和教师表teacher
image.png
 
第一:内联(inner join)
如果想把用户信息、积分、等级都列出来,那么一般会这样写
查询管理员1下的老师所有信息:
select查询多表
SELECT *
FROM muser,teacher
WHERE muser.uid = teacher.myuid  AND muser.name='管理员1'
image.png
 
其实这样的结果等同于下边
inner join
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 muser中的行在 teacher中没有匹配,就不会列出这些行。
SELECT *
FROM muser
INNER JOIN teacher /INNER JOIN(内连接) 与 JOIN 是相同的/
ON muser.uid = teacher.myuid
WHERE muser.name='管理员1'
 
这两者的关系
前者是用select查询多表,后者把两个表中都存在userid的行拼成一行(即内联)。但后者的效率会比前者高很多,建议用后者(内联)的写法。

第二:外联
left join
left join即左外连接,是left outer join的简写。left join默认是outer属性的
此关键字产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。
 
先看两表有匹配的值得情况
SELECT *
FROM muser
LEFT JOIN teacher
ON muser.uid = teacher.myuid
WHERE muser.name='管理员1'
image.png
 
 
再看看两边没有匹配的情况为了方便测试我把teacher表改了一下。测试完再改回来
teacher
image.png

SELECT *
FROM muser
LEFT JOIN teacher
ON muser.uid = teacher.myuid
WHERE muser.name='管理员1'
image.png
 
right join
right join即右外连接,是right outer join的简写。right join默认是outer属性的
启用法恰恰和left joi相反。
 
 
full join
full join即全连接,是full outer join的简写。full join默认是outer属性的
显示左表muser、右表teacher两边中的所有行,即把左联结果表 + 右联结果表组合在一起,然后过滤掉重复的。
 
参考文献:
http://www.w3school.com.cn/sql/sql_join.asp
http://blog.csdn.net/yl_wh/article/details/8649909

mysql表操作
创建库
创建student数据库
CREATE DATABASE student
 
 
创建表
创建了一个actv的表,pname为字符串类型,非空,主键
CREATE TABLE actv(
pname VARCHAR(500)  NOT NULL PRIMARY KEY ,
thing VARCHAR(500)
)
 
插入数据
INSERT INTO actv
(pname,thing)
VALUES
("小红","跳舞去了")
 
插入多条数据
INSERT INTO actv
(pname,thing)
VALUES
("小青","唱歌去了"),
("小张","杀人去了")
 
删除某条记录
DELETE
FROM actv
WHERE pname="小张"
 
删除多条记录
DELETE
FROM actv
WHERE pname="小张"||pname="小青"
image.png
 
统计
SELECT COUNT(id)
FROM pople
image.png
 
排序

SELECT *
FROM pople
ORDER BY id DESC /*按id倒序*/

联表查询
查询去喝酒的那个丁少华的信息
Pople表
image.png

Actv表
image.png

SELECT pople.pid,pople.pname,actv.thing 
FROM actv JOIN pople ON actv.`pid`=pople.`pid`
WHERE pople.pname="丁少华" AND actv.thing="喝酒去了"

image.png

dos下操作
**1 打开或关闭 Mysql 服务 **
开启 net start mysql
关闭 net stop mysql
**2 进入到 mysql 软件功能 **
进入 DOS,定位到 Mysql 的主程序文件夹,我的 mysql 位置如下
image.png
**3 登录 mysql, 创建数据库 news,在其中创建 2 个表 newsadmin,newscenter **
No.1:登录 Dos 口令【mysql --Mysql –u 用户名 –p 密码】 image.png

No.2 创建数据库 news Dos 命令【Create Database new;】
image.png
并激活数据库 Dos 命令【Use new;】
创建数据库后必须选择数据库才能进一步操作数据库。
显示数据库 Dos 口令【show databases;】
删除数据库 Dos 口令【Drop database 数据库名;】
No.3 创建 2 个表 newsadmin,newscenter
image.png
创建数据表 Dos 口令【Create table 表文件名(字段定义);】

CREATE TABLE newsadmin ( 
username varchar(10) NOT NULL, 
password varchar(10) NOT NULL) 
DEFAULT CHARSET=gb2312; 
CREATE TABLE newscenter ( 
news_id int(11) NOT NULL auto_increment, 
news_date date NOT NULL, 
news_type varchar(20) NOT NULL, 
news_title varchar(100) NOT NULL, 
news_editor varchar(100) NOT NULL, 
news_content text NOT NULL, 
PRIMARY KEY (news_id)) 
DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1;

也可以写为 news_id int(11) NOT NULL PRIMARY KEY auto_increment,将后面的
PRIMARY KEY (news_id) 去掉
No.4 查看表概况
查看某个表结构
image.png
image.png
删除表:Drop table newscenter;
**
**4 对 newscenter 表输入 3 条记录,显示 newscenter,表中 news_id 多余等于 2 的记录。 **
No.1 插入记录若有中文,应先设置编码为 gb2312
查看编码 Dos 口令【show variables like 'char%';】
image.png
【从以上信息可知数据库的编码为 uft-8,其中 character_set_client 为客户端编码方式;
character_set_connection 为建立连接使用的编码;character_set_database 数据库的编码;
character_set_results 结果集的编码;character_set_server 数据库服务器的编码;
只要保证以上后四个采用的编码方式一样,就 99%无乱码】
更改编码 Dos 口令【charset gb2312】
image.png
No.2 插入数据
insert into newscenter () values(1,'2011-2-19','娱乐','征税','小虎','免税');
insert into newscenter () values(2,'2011-2-19','娱乐','征税','老虎','免税');
或者
insert into newscenter
(news_date,news_type,news_title,news_editor,news_content) values
('2011-2-19','娱乐','征税','小虎','免税');
image.png
No.3 查看表内容【Select * from newscenter;】
image.png
**5 命令方式修改第 2 条记录的内容。 **
【UPDATE newscenter SET news_type='学习' where news_id="2";】
image.png
**6 命令方式删除第 2 条记录。 **
【DELETE FROM newscenter WHERE news_id="2";】
image.png
**7 备份数据库 news **
方法一:复制数据库 news 文件夹到备份盘。还原时还复制到 MySQL\data 内
image.png
方法二:DOS 命令
定位在 Mysql 的主程序文件夹,例如 C:\Program Files\phpStudy\MySQL\bin 中执行
mysqldump –u 用户名 –p 密码 --opt 数据库名>.sql 文件
默认备份到当前目录。
例如:mysqldump –uroot –proot --opt news>d:\news.sql
**8 操作技巧 **
image.png
**9 建立 JSP 访问 MYSQL 的数据库连接 **
记得先将 JSP 连接数据库的组件复制到 C:\Program Files\Apache Software
Foundation\Tomcat 5.5\common 中,并重新启动 Tomcat 服务器才能生效。
image.png
**备注: **单独版的 mysql6.0 的 data 文件系统隐藏,需
然后
image.png
C:\ProgramData\MySQL\MySQL Server 6.0\data

mysql用户

MySql查看&更改用户信息

查看所有用户信息
先启动mysql服务才能进行其它功能,以管理员的权限进入cmd输入启动指令,net start mysql

输入mysql -u root (如果没有配置mysql的bin环境变量的话需要切换到bin目录下执行此语句)

进入mysql>指令后输入即可查看到用户和密码,如果是才安装好,那么将只有默认的本地root用户和空密码

select host,user,password from mysql.user;

image.png

更改用户密码,以root为例
如果要重置密码的话,在命令行下执行下面的语句

update mysql.user 
set password='这里填写你要设置的密码'  
where user='root';

在上一节中已将root的密码改为68150412,那么我们尝试登陆
输入mysql -uroot –p后系统提示你键入密码,
当然如果你一次性输完,像mysql -uroot –p68150412那它就不提示你了
image.png