SQL必知必会 15-18

SQL 专栏收录该内容
8 篇文章 1 订阅

15章

插入行 into 关键字是可选的
–insert into Customers
–values (‘10006’,‘Toy Land’,‘123 Any Street’,‘New York’,‘NY’,‘11111’,‘China’,null,null)
–小心使用VALUES
–不管使用哪种INSERT语法,VALUES的数目都必须正确。 如果不提供列名,则必须给每个表列提供一个值;如果提供列名,则必须给列出的每个列一个值。否则,就会产生一条错误消息,
–相应的行不能成功插入。

插入行2
–insert into Customers(cust_id,cust_contact,cust_email,cust_name,cust_address,cust_city)
–values (‘10007’,‘Toy Land’,‘123 Any Street’,‘New York’,‘NY’,‘11111’)

– 插入检索出的数据 INSERT 一般用来给表插入具有指定列值的行。INSERT 还存在另一种形式, 可以利用它将 SELECT 语句 的结果插入表中, 这就是所谓的 INSERT SELECT。
–顾名思义,它是由一条 INSERT 语句和一条 SELECT 语句组成的

–create table CustNew(
–cust_id int null,
–cust_contact varchar(100) null,
–cust_name varchar(100) null,
–cust_address varchar(100) null,
–cust_email varchar(100) null,
–)
–go

–//将 CustNew 表中的数据插入 Customers 中
–insert into Customers(cust_id,cust_contact,cust_name,cust_address,cust_email)
–select cust_id,cust_contact,cust_name,cust_address,cust_email
–from CustNew

这条 SELECT 语句创建一个名为 CustCopy 的新表,并把 Customers 表的整个内容复制到新表中。

–select *
–INto CustCopy
–From Customers

16章更新和删除数据

–**16 **
基本的 UPDATE 语句由三部分组成,分别 是: 要更新的表; 列名和它们的新值; 确定更新哪些行的过滤条件。
–update Customers
–set cust_email=‘92142741@qq.com’
–where cust_id=10005

–跟新多条列
–update Customers
–set cust_email=‘921425656@qq.com’,cust_contact=‘Sam Roberts’
–where cust_id=10005

删除数据 删除行 如果 想从 表中 删除 所 有行, 不要 使用 DELETE。 可使用 TRUNCATE TABLE 语句,

–delete from Customers
–where cust_id=1005

--删除指定的列
–alter table Customers
–DROP column cust_email

有约束的列是无法直接删除的,需要先删除他的约束
–alter table Customers
–DROP constraint cust_id
----然后在删除
–alter table Customers
–DROP column cust_id

17章创建和操纵表

–use master
–go
–if(exists(select * from sysdatabases where name=‘mydb2’)) --判断是否有这个数据库
– drop database mydb2 --删除数据库
–create database mydb2 --创建数据库
–go
–use mydb2
–go

–创建表的基础
–create table Products(
–prod_id char(10) Not null,
–prod_name char(50) not null,
–vend_address char(50),
–vend_tity char(50),
–vend_state char(5),
–vend_zip char(10),
–vend_contrt char(50)
–)

–增加列
–alter table Vendors
–Add vend_phone char(20)
–删除列
–alter table Vendors
–Drop column vend_phone;

删除表
–drop table CustCopy;

18使用视图

视图是虚拟的表,视图只包含使用时动态搜索数据的查询
–视图是一个关联表的查询
–创建视图它 联结 三个 表, 返回 已 订购 了 任意 产品 的 所有 顾客 的 列表。

–Create view ProductCustomers As
–select cust_name,cust_contact,prod_id
–from Customers,Orders,OrderItems
–where Customers.cust_id=Orders.cust_id
–and OrderItems.order_num=Orders.order_num

–查询视图
–select cust_name,cust_contact
–from productCustomers
–where prod_id=‘FB’

–与表一样,视图必须唯一命名(不能给视图取与别的视图或表相同的名字)。
–对于可以创建的视图数目没有限制。创建视图,必具有足够的访问权限。
–这些权限通常由数据库管理人员授予。视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造视图。
–所允许的嵌套层数在不同的DBMS中有所不同(嵌套视图可能会严重降低查询的性能,因此在产品环境中用之前,应该对其进行全面测试)。
–许多 DBMS 禁止 在 视图 查询 中 使用 ORDER BY 子句。 有些 DBMS 要求 对 返回 的 所有 列 进行 命名, 如果列是计算字段,则需要使用别名(关于列别名的更多
–更多信息,请参阅第 7 课)。
–视图不能索引,也不能有关联的触发器或默认值。
–有些DBMS把视图作为只读的查询,这表示可以从视图检索数据,但不能将数据写回底层表。
–详情请参阅具体的 DBMS 文档。有些DBMS 允许创建这样的视图,它不能进行导致行不再属于图的插入或更新。
–例如有一个视图,只检索带有电子邮件地址的顾客。如果更新某个顾客, 删除他的电子邮件地址, 将使该顾客不再属于视图。
–这是 默认行为, 而且是允许的, 但有的 DBMS可能会防这种情况发生。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值