-
2021-01-19 03:03:04
匿名用户
1级
2016-12-03 回答
MySQL在多个数据表上创建视图
在MySQL中,使用CREATE VIEW语句也可以在两个或两个以上的数据表上创建视图。
实例
在department表和worker表上创建一个名为worker_view1的视图。
1. 创建视图的代码如下:
CREATE ALGORITHM=MERGE VIEW
worker_view1(name,department,sex,age,location)
AS SELECT name,department.d_name,sex,birthday,address
FROM worker,department WHERE worker.d_id=department.d_id
WITH LOCAL CHECK OPTION;
在DOS提示符窗口中查看MySQL在多个数据表上创建视图的操作效果。如下图所示:
在DOS提示符窗口中查看MySQL在多个数据表上创建视图的操作效果
从上图中可以看出,代码的执行结果显示视图创建成功。
2. 使用DESC语句查询虚拟表的结构。如下图所示:
使用DESC语句查询虚拟表的结构
从上图中可以看出,视图worker_view1的属性分别为name、department、sex、age和location。
视图指定的属性列表对应着两个不同的表的属性列(字段)。
视图的属性名与属性列表中的属性名相同。
该实例中的SELECT语句查询出了department表的d_name字段,还有worker表的name、sex、birthday和address。其中,department表的d_name字段对应视图的department字段;worker表的birthday字段对应视图的age字段。
同时,视图worker_view1的ALGORITHM的值指定为MERGE。还增加了WITH LOCAL CHECK OPTION约束。
本示例说明,视图可以将多个表上的操作简洁的表示出来。
提示
同时在多个表上创建视图是非常有用的。比如,系统中有student表、department表、score表和grade表,分别存储学生的信息、院系信息、课程信息和成绩信息。可以在这4个表上创建一个视图,用来显示学生姓名、学号、班级、院系、所选课程和课程成绩。
追问:
能针对性点嘛?
更多相关内容 -
MySQL在单表上创建视图
2017-07-29 23:37:16在单表上创建视图在student表上,创建view_stu视图 首先,创建一个数据库chapter07在数据库中,创建一个表student,用于存储学生信息 向student表中,插入数据查看表中数据创建student表的视图使用视图可以看出,...在单表上创建视图
在student表上,创建view_stu视图
首先,创建一个数据库chapter07在数据库中,创建一个表student,用于存储学生信息
向student表中,插入数据查看表中数据
创建student表的视图
使用视图
可以看出,视图创建成功
并且,重新定义了一个计算数据和语文成绩之和的math+chinese字段默认情况下,创建的视图字段名称和基本表的字段名是一样的,但是,也可以根据实际的需要指定视图字段的名称
在student表上,创建一个名为view_stu2的视图,自定义字段名称
使用视图
可以看出,虽然两个视图的字段名不同,但是,数据是相同的,因为两个视图引用的是同一个表中的数据,并且,AS创建视图的语句也相同
在实际开发中,用户可以根据自己的需求,通过视图的方式,获取基本表中自己需要的数据,这样既能满足用户的需求,也不会破坏基本表原来的结构,从而保证了基本表中数据的安全性
-
数据库——表和视图的创建与操作
2021-11-12 16:12:20表和视图的创建与操作创建表的语法查看表结构修改表结构添加列修改列类型修改列名删除列名表名的修改删除已创建的表...例、创建学生表(student),包括学号(Sno)、姓名(Sname)等学生信息 CREATE TABLE student (Sno.表和视图的创建与操作
创建表的语法
表的基本创建语法如下:
Create table 表名
(列名 数据类型(宽度)[default 表达式][column constraint],
…
[table constraint] );例、创建学生表(student),包括学号(Sno)、姓名(Sname)等学生信息
CREATE TABLE student
(Sno int,
Sname varchar(8) );例、将emp表中30号部门(deptno)的员工名(ename)、工作职位(job)、工资(sal)保持在新表emp_30中。
CREATE TABLE emp_30(ename,job,sal)
AS
SELECT ename,job,sal FROM emp WHERE deptno=30查看表结构
表创建完成后,用户可以使用describe命令查看表结构,其语法格式如下:
DESC[RIBE] 表名修改表结构
表创建后,可以利用ALTER TABLE命令修改表,包括增加列、修改列的属性和删除列,可进行表参数的修改以及表的重命名。
语法格式:
Alter table 表名
[add (列名 数据类型 [defalult 表达式 ]]
[modify(列名 数据类型 [default 表达式 ]]
[drop column 列名]添加列
使用ALTER TABLE … ADD实现表中列的添加。
增加的新列总是位于表的最后。假如新列定义了默认值,则新列的所有行自动填充默认值。对于有数据的表,新增加列的值为NULL,所以有数据的表,新增加列不能指定为NOT NULL约束条件。例、给student表增加一个字段memo,类型为varchar(20)。
ALTER TABLE student ADD memo VARCHAR(20);修改列类型
使用ALTER TABLE … MODIFY语句实现表中列的修改。
修改列定义还有以下一些特点;
(1)列的宽度可以增加或减小,在表的列没有数据或数据为NULL时才能减小宽度。
(2)在表的列没有数据或数据为NULL时才能改变数据类型。
(3)只有当列的值非空时,才能增加约束条件NOT NULL。
(4)修改列的默认值,只影响以后插入的数据。例、修改student表中sdept字段(varchar类型)的长度改为30。
ALTER TABLE student MODIFY sdept VARCHAR(30);修改列名
Oracle中使用alter table… rename column… To…语句实现修改列的名称
mysql中使用ALTER TABLE tablename CHANGE oldname newname varchar(10) ;(数据类型不能省略)例、修改student表中所在系sdept字段的字段名为new_sdept。
Alter table student rename column sdept to new_sdept;
Alter table student change sdept new_sdept varchar(20);删除列名
使用alter table… drop column语句实现直接删除列。
例、 删除student表中的性别(sno)字段。
Alter table student drop column sno;表名的修改
Oracle中表名的修改可以使用ALTER TABLE old_tablename RENAME TO new_tablename语句实现,也可直接执行RENAME…. TO….语句。Mysql中使用alter table old_tablename rename to/as new_tablename;
例、student表改名为new_student表。
ALTER TABLE student RENAME TO new_student;删除已创建的表
删除表的语法如下:
DROP TABLE 表名[CASCADE CONSTRAINTS];
CASCADE CONSTRAINTS表示当要删除的表被其他表参照时,删除参照此表的约束条件。视图的创建
create [or replace] view 视图名 [(别名1[,别名2…])]
AS 子查询
[with check option{constraint 约束名}]
[with read only]
with check option表示进行视图插入或修改时必须满足子查询的约束条件。例、建立一个部门员工薪水介于1000-3000元的员工信息SAL_MID视图。
CREATE VIEW SAL_MID
AS
SELECT ename,job,sal FROM emp
WHERE sal between 1000 and 3000
WITH CHECK OPTION;重命名视图
使用RENAME语句给视图重新命名。
语法格式:
RENAME <old_view_name> TO <new_view_name>;例、给emp_view重新命名为emp_view1。
RENAME emp_view TO emp_view1;删除视图
语法如下:
DROP VIEW 视图名;
视图的删除不影响基表,不会丢失数据。例、删除视图emp _view。
SQL>DROP VIEW emp_view;补充
要通过视图更新基本表数据,必须保证视图是可更新视图,即可以在INSET、UPDATE或DELETE等语句当中使用它们。如果视图包含下述结构中的任何一种,那么它就是不可更新的:
(1)聚合函数;
(2)DISTINCT关键字;
(3)GROUP BY子句;
(4)ORDER BY子句;
(5)HAVING子句;
(6)UNION运算符;
(7)位于选择列表中的子查询;
(8)FROM子句中包含多个表;
(10)WHERE子句中的子查询,引用FROM子句中的表; -
数据库中创建一个学生表
2021-01-18 18:07:58展开全部SQL语言创建数据库和学生62616964757a686964616fe4b893e5b19e31333365643662表建立:[sql]create database zxlcreate table 学生表(学号 char(12) primary key,姓名 char(6) not null,性别 char(2) check...展开全部
SQL语言创建数据库和学生62616964757a686964616fe4b893e5b19e31333365643662表
建立:
[sql]
create database zxl
create table 学生表
(
学号 char(12) primary key,
姓名 char(6) not null,
性别 char(2) check(性别 IN ('男','女')),
班级 char(15)
)
create table 成绩表
(
学号 char(12)references 学生表(学号),
课程号 char(2)references 课程表(课程号) ,
成绩 int default(30),
primary key (学号,课程号)
)
create table 课程表
(
课程号 char(2) primary key,
课程名 char(20),
学分 int check(学分>=1 and 学分<=5 )
)
操作:
[sql]
insert into 学生表 values('201190609112','张xl','男','文专计1111')
insert into 学生表 values('201190609113','张**','女','文专计1111')
insert into 成绩表 values('201190609112','01',100)
insert into 成绩表 values('201190609112','02',99)
insert into 成绩表 values('201190609112','03',88)
insert into 课程表 values('01','数据库系统',3)
insert into 课程表 values('02','vb.net',4)
insert into 课程表 values('03','java',4)
select *from 成绩表
select 姓名,课程名,成绩
from 学生表,课程表,成绩表
where (学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号)
order by 成绩 desc
select avg(成绩) 平均分,max(成绩) 最高分,min(成绩) 最低分
from 成绩表
where 学号='201190609112
创建一个名为教学管理的数据库创建学生表要求定义主码
一、简答
1、DBA的职责是什么?
2、视图的作用有哪些?
3、数据库的完整性和安全性有什么区别?
4、SQL语言的特点是什么?
5、数据字典通常包括哪几部分?
6、什么是基本表,什么是视图,二者的区别和联系是什么?
7、DBMS的主要功能是什么?
8、什么是数据库备份和恢复?为什么要备份和恢复数据库?
9. 什么是事务?事务的作用?SQL中事务的语法结构是怎样的?
10、举出实体之间具有一对一、一对多、多对多的联系的例子。
11、 数据库的并发操作会带来哪些问题?如何解决?
12、什么是日志文件?简述日志文件恢复事务的过程(即:事务故障的恢复的过程)。
13、关系完整性约束规则有哪三类?
14、 数据库管理技术发展的三个阶段?
15、写出数据库的设计的五个阶段。
16、根据3NF的定义及规范化方法,对关系模式R(U,F) U={学号,姓名,所在系,系主 任,课程号,成绩} F= { 学号 → 姓名 , 学号 → 所在系,所在系 → 系主任(学号,课程 号) → 成绩} 进行分解,使其满足3NF。
17、 什么是事务?事务有哪些特征?
18、写出关系型数据库的第一、第二、第三范式的各自要求。
19、举三个例子分别说明二元联系的三种情况( 1:1、1:M、M:N ) 。运行sql文件出错
解决办法:使用Notepad++打开文件,选择 格式->无BOM的UTF8格式编码
-
oracle如何创建视图(1)创建视图V_StudInfo,查询学生的学号,姓名,所修课程号,所修课程名称,成绩等级...
2021-05-01 09:25:37成绩 between 60 and 69 then '及格' else '不及格' end 成绩等级 from 学生表 a,课程表 b, 成绩表 c where a.学号=c.学号 and b.课程号=c.课程号 2 create view V_Stud as select a.学号,a.姓名,count(*) 所修科目... -
mysql 创建视图
2021-01-18 19:18:081.单表创建视图例如:创建一个选择语句,选出学生的编号,姓名和考号//创建一个视图名字为stu_view1选择 来自数据表student中的id,name 和kn 中的数据create view stu_view1 as select id as '编号',name as'姓名',... -
mysql多表查询,创建视图
2018-06-26 20:12:48(1)创建视图 create [ or replace ] view `视图名` as sql 语句 create view stu_view_1 as select sid,sname,age,sex,city,ch,math from stuinfo left join stumarks using (sid... -
SQL创建学生信息表代码
2015-01-06 10:24:57内有四个表,有触发器,有约束,有存储过程,没有视图,全部都是自己敲的代码 -
MySQL创建表视图及多表视图
2020-09-25 14:02:02MySQL视图(View)是一种虚拟的表,同真实的表一样,拥有相同的行和列 ,但视图并不实际存在于数据库中,而是在你使用的时候去动态的查询表,view的行和列都是基于你使用view的时候动态的去...基于单表创建视图 #创建学生表 -
视图的创建与使用 - 学生管理 (参考答案)
2021-06-17 06:40:12创建视图(1) 创建一个视图stu_info,用于查看学生学号、姓名和性别信息,并修改其字段定义别名。create view stu_info(学号,姓名,性别)asselect studentID,studentname,sexfrom studentgo(2)... -
数据库实验-创建创建学生表
2020-04-29 10:41:49(1)在表空间TableSpace_XXX下创建学生表(student)、学生选课表(SC)、课程表(course) 学生表:Student_XXX,属性为:(Sno 学号, Sname 姓名, Ssex 性别, Sdept 所在院系),其中学号Sno主码,其中sno为... -
MySQL简单案例之创建学生表、课程表和选课表
2021-01-18 21:25:13Course课程表 Cpno先行课 Ccredit学分 Cno课号Sc表(选课表)Sno学号 Cno课号 Grade成绩Student表 Sno学号 Sname姓名 Ssex性别 Sage年龄 Sdept 所在系主键(primary key)是表(也称关系)中的一个或多个字段(也称属性),... -
数据库 实验四 创建视图,使用视图,修改视图
2021-06-10 16:45:491、创建视图 --***① 将Student Course 和sc表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G *** CREATE VIEW V_S_C_G AS SELECT Student.sno,sname,course.cno,cname,grade FROM Student,SC,course... -
mysql创建视图sql_SQL视图介绍-如何在SQL和MySQL中创建视图
2020-08-14 14:40:16mysql创建视图sql 什么是SQL视图? (What is a View in SQL?) A View is a database object that presents data existing in one or more tables. Views are used in a similar way to tables, but they don’t ... -
mysql怎么创建视图?(图文+视频)
2021-01-19 05:20:55本篇文章主要给大家介绍mysql怎么创建视图的。首先大家就要知道什么是视图?视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。那么这种说法对于新手来说,可能会比较抽象,但是我们在之前的文章中,... -
《数据库系统原理》实验3:表的创建和管理
2020-12-14 11:24:22一、实验目的 熟练掌握使用Navicat和Transact-SQL语言两种...1)表格名为xs(学生基本情况表); 2)表格中各个属性的定义如下: 列名 含义 数据类型 长度 能否取空值 备注 xh 学号 int n -
oracle学习(创建表)
2021-05-04 05:40:14我想最初学习数据库时都是以student表、course表和sc表为例的吧首先创建这三张表:必要时可重新创建用户及密码并登陆环境:oracle 10gdeclarevcnt number;beginselect count(*) into vcnt from user_tables where ... -
SQL语句之数据库之创建视图
2021-03-31 23:15:58MySQL之创建视图 -
第3章 表和视图的创建修改
2019-07-31 10:54:49第3章 表和视图的创建修改 数据库实际上是数据表的集合。在关系数据库中,数据库通常包含多个数据表,数据库中的数据信息都是存储在数据表当中的。数据表是对数据进行存储和操作的一种逻辑结构,对于用户而言,一个... -
sqlserver 视图创建案例-单表视图和2表视图对比
2022-03-26 11:13:49--单表查询视图创建 create view V_stdemo03 as select * from st where sex2='女' and major='计算机' --1.1 只是显示学生姓名,城市,性别,和专业信息 ,其他不需要 create view V_st04 as select a.... -
在MySQL数据库中创建视图
2018-08-05 20:03:51解释说明:视图创建是因为由于表与表之间的关系,在我写接口的时候会带出来一些有关系的数据,每个视图都是根据自己的sql语句或者是sql语句产生的 ...2.就是在数据库中创建视图的过程 打开mysql数... -
在mydb数据库中创建student数据表,表中有id、name(学生姓名)、math(数学成绩)、chinese(语文成绩)和...
2020-01-09 11:59:49在mydb数据库中创建student数据表,表中有id、name(学生姓名)、math(数学成绩)、chinese(语文成绩)和english(英语成绩)字段。然后创建视图view_score,视图中包含math、chinese、english和total(总分数)... -
navicat创建视图的操作方法
2021-01-28 09:02:31navicat创建视图的操作方法发布时间:2020-12-21 11:21:25来源:亿速云阅读:106作者:小新栏目:数据库小编给大家分享一下navicat创建视图的操作方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!... -
mysql多表连接查询视图问题
2021-02-05 06:09:222014-06-26 回答mysql在多个数据表上创建视图在mysql中,使用create view语句也可以在两个或两个以上的数据表上创建视图。实例在department表和worker表上创建一个名为worker_view1的视图。1. 创建视图的代码如下:... -
、为计算机专业的学生创建一个视图,要求包括学号、姓名、专业、课程名称、成绩等列,设置W
2021-06-16 10:16:19、为计算机专业的学生创建一个视图,要求包括学号、姓名、专业、课程名称、成绩...4、在视图上更新相关数据行,分析说明视图更新的条件。5.查询XSB表中所有学生的记录,要求“性别”一列显示字符形式,即男生时显示... -
Oracle数据库创建视图
2020-01-02 16:19:56Oracle数据库用户创建视图 学生表(学生编号、学员姓名、学员年龄) 课程表(课程编号、课程名称、所在阶段) 成绩表(学员编号、课程编号、分数、考试时间) 1.为教员级别的用户创建一个视图,用来查询每门课的课程... -
oracle 学生表,课程表,选课表. 三表联合查询
2021-01-19 19:09:12创建学生表:create table 学生(学号char (1) not null,姓名varchar (6),年龄int ,check (年龄between 0 and 100),性别char (2),系varchar (10),primary key (学号));创建课程表:create table 课程(课程号 char (2)... -
SQL语句--创建视图
2021-03-02 17:45:21SQL语句–创建视图 写这个创建视图的语句 首先我们要写出 相关内容的查询语句 eg: select* from Student t1 inner join Teacher t2 on t1.no=t2.no where t2.Tname='Mimo_YY' 然后写外框架,即完成 create VIEW ... -
数据库视图创建及应用
2021-08-07 14:10:25数据库视图创建及应用 ...视图一经定义,就可以和基本表一样被查询、删除,也可以在一个视图上再定义新的视图,但对视图的更新(增、删、改)操作则有一定的限制。 二、视图的作用: 视图机制使用户 -
学生表 成绩表 课程表 教师表
2020-09-11 16:26:17建立数据库、建表和插入数据 题目:思路、关键函数、解题语句、结果...-- 学生表 -- Student(s_id,s_name,s_birth,s_sex) -- 学生编号,学生姓名, 出生年月,学生性别 CREATE TABLE `Student`( `s_id` VARCHAR(20),