数据库原理与应用(10)数据操作、视图、索引
【数据操作】
(1)数据库备份操作。
这里以Navicat举例。
第一步:双击打开对应数据库,点击“备份”。

第二步:“新建备份”——“备份”

(2)插入数据
插入单行记录的insert语句的格式为:insert into <表名> (<列名>) values (对应列的值)
【例1】将以下数据插入到jxgl数据库中的teachers表中。

insert into teachers (tno,tname,ps,tbirthday,tdept,tsex) values (001,'谭浩强','教授','1958-01-01','计科','男');
或
insert into teachers values (001,'谭浩强','教授','1958-01-01','计科','男');
*注:
(1)如果插入的数据是严格按照列名顺序排列的,可以不写列名。
(2)中文、英语等文本或日期需要用英文单引号引起来,数字和空值不用。
【例2】将以下数据插入到jxgl数据库中的sc表中。

insert into sc (sno,cno,score,point) values (1401102,0000045,null,null);
下面是一个例子,举例一次性插入多条数据的方法:

(3)复制表结构及数据。
复制表中的数据至新表按照以下格式编写语句:
create table student_copy1 as select * from students;
复制表格式至新表按以下格式编写语句:
create table students_copy2 like students;
(4)更新数据
普通更新数据按以下格式编写语句:
update goods set price=price+1;
带条件更新数据按以下格式编写语句:
update goods set price=6 where gname='牛奶饼干';
一次更新多条数据按以下格式编写语句:
update students set sname='王一', bday='1999-10-02' where sno='1801102';
跨表修改数据按以下格式编写语句:
update sc set score=60 where sno in (select sno from students where sname='陈红');
带函数修改数据按以下格式编写语句:
update sale set btime=now(), number=1 where vno in (select vno from vip where vname='陆以宁');
多表连接修改数据按以下格式编写语句:
update sale,vip set btime=now(), number=1 where sale.vno=vip.vno and vname='陆以宁';
(5)删除数据
删除所有记录按以下格式编写语句:
delete from students;
删除符合条件的记录按以下格式编写语句:
delete from students where sno='1911203';
多表连接删除数据按以下格式编写语句:
delete sale.* from sale where sale.vno=vip.vno and vname='陆以宁';
【视图】
视图是有从基本表中选取出来的数据组成的逻辑窗口,是基本表的部分行和列数据的组合。
视图是一个虚表。视图具有简单性、安全性、逻辑数据独立性。
数据库中只存储视图的定义,而不存储视图所包含的数据。
单源表视图一般可看可改。
创建视图按以下格式编写语句:
create view Vgoods2 as select * from goods where price>10 with check option;
【索引】
索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
CREATE INDEX indexName ON table_name (column_name)