专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

MySql查询学分,纯小白零基础如何入门SQL语言_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 19:48:21       共计:3612 浏览
MySql查询学分,纯小白零基础如何入门SQL语言?

首先掌握基本查询,深入点再掌握数据库表结构设计方法。以下我们以某oracle数据库中的表sys_user、sys_depetment和sys_employee举例

表结构如下:

(1)、sys_user(用户表)

(1)、sys_depetment(部门表)

(2)、sys_employee(雇员表)

ER图到关系模式集的转换

以二元联系类型的转换为例

1. (实体类型的转换):将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。

2. (联系类型的转换):

1. 若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键(作为外键)和联系类型的属性。

2. 若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的键(作为外键)和联系类型的属性。

3. 若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键(作为外键)加上联系类型的属性,而键为两端实体键的组合。

实例:教学管理的ER图转换成关系模式集

教学管理的ER图

第一步:把三个实体类型转换成三个模式:

系(系编号,系名,电话)

教师(教工号,姓名,性别,职称)

课程(课程号,课程名,学分)

第二步:

1. 对于1:1联系“主管”,可以再“系”模式中加入教工号(教工号为外键,用波浪线表示);

2. 对于1:N联系“聘用”,可以再“教师”模式中加入系编号和聘期两个属性(系编号为外键);

3. 对于1:N联系“开设”,可以再“课程”模式中加入系编号(系编号为外键)

这样得到的三个模式成如下形式:

第三步:对于M:N联系“任教”,则生成一个新的关系模式:

第四步:整合后关系模式如下:

系统用户(用户编号,用户姓名,用户登录名,用户登录密码,雇员编号)

雇员(雇员编号,雇员姓名,年龄,性别,职务,部门编号)

部门(部门编号,部门名称,部门编号)

1、增

insert into sys_user (USERID, USERCODE, USERPASS, EMPID, USERNAME, VALIDFLAG, LASTCHANGEDATE)

values ('c9e5d6f90f02428ea8a9cc4410dc5c06', 'Daibz', 'c4ca4238a0b923820dcc509a6f75849b',

'fd767722ffa741cf89db964873bf4f75', '代邦振', '1', to_date('07-05-2018 13:54:25', 'dd-mm-yyyy hh24:mi:ss'));

2、删

delete from sys_user where usercode='Daibz'

3、改

update sys_user set userpass='c4ca4238a0b923820dcc509a6f75849b' where usercode='test'

update sys_user set userpass='1' where usercode='test'

4、查

select * from sys_user

select * from sys_employee

select * from sys_department

模糊查询:

select * from sys_user where username like '代__'

select * from sys_user where username like '%代%'

多表查询:

多表连接查询通过表之间的关联字段,一次查询多表数据。

下面将依次介绍 多表连接中的如下方法:

1、from a,b

2、inner join

3、left outer join

4、right outer join

两个表的deptno字段关联。

1、from 表1,表2

语法:select a.x,b.y from a,b where a.id=b.id;

实例:

返回所有满足where条件的行

select a.empid as 员工编号, a.empname as 员工名称, b.depname as 部门

from sys_employee a, sys_department b

where a.depid = b.depid; 扩展:查询用户名,姓名,部门,密码select u.username as 用户名,e.empname as 姓名,d.depname as 部门,u.userpass as 密码 from sys_user u,sys_employee e,sys_department d where u.empid=e.empid and e.depid=d.depid

2、inner join

语法:select a.x from a inner join b on a.id=b.id;

inner 可以省略.

实例:

select a.empid as 员工编号, a.empname as 员工名称, b.depname as 部门

from sys_employee a inner join sys_department b on a.depid = b.depid;

扩展:查询用户名,姓名,部门,密码

select u.username as 用户名,e.empname as 姓名,d.depname as 部门,u.userpass as 密码

from (sys_user u inner join sys_employee e on u.empid=e.empid)

inner join sys_department d on e.depid=d.depid

3、left outer join

查询结果除了返回包含连接条件的行,还包含左表(a)中不满足连接条件的行,

其中不满足连接条件的行中b表的字段值将被置为空。

语法:select a.x from a inner left outer join b on a.id=b.id;

outer 可以省略.

实例:

select a.empid as 员工编号, a.empname as 员工名称, b.depname as 部门

from sys_employee a left outer join sys_department b

on a.depid = b.depid;

当查询中出现过滤条件时:

1)当连接条件后面有where条件时:

select a.empid as 员工编号, a.empname as 员工名称, b.depname as 部门

from sys_employee a left outer join sys_department b on a.depid = b.depid where a.empname like '%00%';

解释:先根据连接条件a.depid = b.depid查询,再对查询结果按过滤条件查询。

2)当连接条件后面有and条件时:

select a.empno as 员工编号, a.ename as 员工名称, b.dname as 部门 from scott.emp a left outer join scott.dept b on (a.deptno = b.deptno and b.dname like 'SALES')

解释:先对b表按过滤条件查询,再对结果执行左连接查询。

select a.empid as 员工编号, a.empname as 员工名称, b.depname as 部门

from sys_employee a left outer join sys_department b on (a.depid = b.depid and a.empname like '%00%');

4 、right outer join

查询结果除了返回包含连接条件的行,还包含右表(b)中不满足连接条件的行,

其中不满足连接条件的行中a表的字段值将被置为空。

语法:select a.x from a inner right outer join b on a.id=b.id;

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql 查询 长度,byte和varchar的区别_数据库 | ·下一条:mysql频繁查询,你的电脑上有哪些很好的软件或网站_数据库

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有