mysql 1:创建一个学生信息表,并为其赋值:2:以学生表为基表练习创建视图,修改视图,删除视图的操作
时间: 2023-12-23 17:02:42 浏览: 103
1. 创建一个学生信息表,并为其赋值:
```sql
CREATE TABLE student (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
gender ENUM('male', 'female') NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO student (name, age, gender)
VALUES
('Tom', 20, 'male'),
('Lucy', 19, 'female'),
('Jack', 21, 'male'),
('Lily', 18, 'female');
```
2. 以学生表为基表练习创建视图,修改视图,删除视图的操作:
创建视图:
```sql
CREATE VIEW student_info AS
SELECT id, name, age, gender
FROM student;
```
修改视图:
```sql
ALTER VIEW student_info AS
SELECT id, name, gender
FROM student;
```
删除视图:
```sql
DROP VIEW student_info;
```
需要注意的是,修改视图和删除视图的语法与修改和删除表的语法类似。另外,视图的创建、修改和删除操作都需要具有相应的权限才能执行。
相关问题
MySQL创建视图时给视图额外添加字段后会影响基表吗
MySQL 创建视图时给视图额外添加字段不会影响基表数据,因为视图是基于基表数据的逻辑展示,而不是实际的物理存储。
当你在创建视图时,通过 SELECT 语句来指定视图的列,这些列是基于基表的列来定义的。如果在 SELECT 语句中添加了新的列,这些列只是作为视图的一部分而存在,并不会对基表的数据结构或内容造成任何影响。
在视图中添加字段只会影响到视图本身,也就是说,当你查询视图时,你可以看到额外添加的字段,但基表的数据结构和内容不会发生任何变化。
需要注意的是,如果你在视图中引用了基表中不存在的列或表达式,MySQL 会在查询时动态计算它们,这可能会对查询的性能造成一定的影响。因此,在创建视图时,我们应该谨慎地选择要包含的列和表达式,尽可能地保持简单和高效。
以下关于视图的叙述中正确的是:1、视图是将基表中的数据检索出来后重新组成的一个表,表中存在实际的数据;2、通过修改视图数据可以修改基表的数据,但是每次修改只能影响一个基本表;3、通过视图可以修改基表的任意行和列4、具有WITH CHECK OPTION选项的视图,通过该视图修改的数据,一定能通过该视图查询到
叙述1是正确的。视图是基于其他表或视图的虚拟表。它们不包含实际的数据,而是根据查询定义从基表中检索数据。
叙述2是不正确的。通过视图修改的数据只会影响视图本身,而不是基表。通过视图可以修改基表中的数据,但是需要满足一定的条件。如果视图的定义包括基表中不可修改的列或使用了聚合函数,则不能通过视图更新基表的数据。
叙述3是正确的。通过视图可以修改基表的任意行和列,但是需要满足一定的条件,例如视图的定义必须包括基表的主键或唯一键。
叙述4是正确的。具有WITH CHECK OPTION选项的视图,通过该视图修改的数据可以保证满足视图的定义,因此可以通过该视图查询到。如果修改的数据不满足视图的定义,则会抛出错误。该选项可以用来确保数据的一致性和完整性。
阅读全文