mysql 1:创建一个学生信息表,并为其赋值:2:以学生表为基表练习创建视图,修改视图,删除视图的操作
时间: 2023-12-23 22:02:42 浏览: 29
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;
```
需要注意的是,修改视图和删除视图的语法与修改和删除表的语法类似。另外,视图的创建、修改和删除操作都需要具有相应的权限才能执行。
相关问题
sql语句以视图和表XS为基表创建视图V_XS,包含专业名称、班级名称、学号和姓名
以下是创建视图V_XS的SQL语句:
```
CREATE VIEW V_XS AS
SELECT XH, XM, ZYMC, BJMC
FROM XS
JOIN BJ ON XS.BH = BJ.BH
JOIN ZY ON BJ.ZYBH = ZY.ZYBH;
```
其中,XS为表名,包含学号(XH)、姓名(XM)和班级编号(BH);BJ为表名,包含班级编号(BH)和专业编号(ZYBH);ZY为表名,包含专业编号(ZYBH)和专业名称(ZYMC)。通过JOIN操作将这三个表连接起来,然后根据需要选择需要的字段,最终得到包含专业名称、班级名称、学号和姓名的视图V_XS。
MySQL创建视图时给视图额外添加字段后会影响基表吗
MySQL 创建视图时给视图额外添加字段不会影响基表数据,因为视图是基于基表数据的逻辑展示,而不是实际的物理存储。
当你在创建视图时,通过 SELECT 语句来指定视图的列,这些列是基于基表的列来定义的。如果在 SELECT 语句中添加了新的列,这些列只是作为视图的一部分而存在,并不会对基表的数据结构或内容造成任何影响。
在视图中添加字段只会影响到视图本身,也就是说,当你查询视图时,你可以看到额外添加的字段,但基表的数据结构和内容不会发生任何变化。
需要注意的是,如果你在视图中引用了基表中不存在的列或表达式,MySQL 会在查询时动态计算它们,这可能会对查询的性能造成一定的影响。因此,在创建视图时,我们应该谨慎地选择要包含的列和表达式,尽可能地保持简单和高效。