use seldata
--insert 使用
--insert 基本语法
/*
insert into table_anem
[column1,colunm2,...columnN]
values 
('values1','values2',...'valuesN‘)
说明:column可省略,默认为所有列
      注意插入值和列字段定义类型相同
*/
--创建数据表:
create  table cominfo
(
pname char(10) not null unique,
sex   char(2) not null,
birthday smalldatetime,
type int not null default 0,
address varchar(25),
movephone char(11),
homephone char(11),
email varchar(30)
)
--向表中插入数据
insert into  cominfo
values ('张三','男','1979/9/4',1,'山东省烟台市','13512122211',null,'zhangsan@163.com')
insert into cominfo
values ('李二花','女','1989/9/4',1,null,'1351212216','0531789023','zhangsan@163.com')
select * from cominfo
--测试不允许为空字段插入
insert into cominfo
values ('王五','男','1986/7/14',2,'东北大方','134121241232341','010254545','qq@qq.com')
--测试插入null值
insert into cominfo
values ('五小三',null,'1974/9/14',3,'北京东区',null,null,'wuxiaosan@sina.com')
--修正
insert into cominfo
values ('五小三',' ','1974/9/14',3,'北京东区',null,null,'wuxiaosan@sina.com')
--不允行为空时,我们可以在用‘’在引号间什么也不加或者' '加一空格
delete   cominfo where pname='五小三'
select * from cominfo
--唯一值的插入
insert into cominfo
values ('五小三','男','1981-11-12',4,'大兴区',null,null,'weixin@asc.com')
/*会提示:
违反了 UNIQUE KEY 约束 'UQ__cominfo__1FC9734C0BC6C43E'。不能在对象 'dbo.cominfo' 中插入重复键。
语句已终止。因为第一列采用了unique约束*/ 
--修正:
insert into cominfo
values ('五小二','男','1981-11-12',4,'大兴区',null,null,'weixin@asc.com')
--特定字段数据插入
--按字段插入对应的值
insert into cominfo
(pname,sex,type,email)
values
('李彤彤','女',3,'litongton@yaho.com')
delete from cominfo where pname='李彤彤'
--上面语句等值于下面,也就是只需要值和字段对应,与插入的顺序无关
insert into cominfo
(sex,pname,email,type)
values
('女','李彤彤','litongton@yaho.com',3)
--不允许为空的字段插入
insert into cominfo
(pname,type,email)
values
('王一',3,'abe3@qq.com')
--会提示我们的sex字段不允许为空,无值插入
--有默认值字段插入,
insert into cominfo
(pname,sex,email,address)
values
('小毛毛','男','2ddf@if.com','上海东区')
select * from cominfo where address  like '上%'
--小毛毛记录中的type虽然有非空约束,但有默认值。所以无值会自动取默认值
--通过视图插入行
select * from cominfo
--语法如下:
insert into view_name
[column1,column2,...columnN]
values  (value1,value2....valueN)
--区别于表,在这里插入数据为视图名,而不再是表名
--基于cominfo表创建视图
create view view_cominfo
as  
select pname,sex,address,movephone
from cominfo
where address is not null
select * from view_cominfo
--通过视图添加数据行
insert into view_cominfo
(pname,sex,address,movephone)
values
('赵六','男','河南安阳','1351234544')
select * from view_cominfo
select * from cominfo
--通过视图更新数据缺点:
--视图不可能包括所有列,只能更新视图所包含的列
--如果表中有非空约束列,且该列没有默认值,则需要一定出现在视图中。
create view view2_cominfo
as 
select pname,address,movephone
from cominfo
where address is not null
select * from view2_cominfo
--创建一个不包括非空约束视图
--向该视图插入数据测试
insert into view2_cominfo
(pname,address,movephone)
values
('小猫猫','大兴安区','125456548')
--不能将值 NULL 插入列 'sex',表 'seldata.dbo.cominfo';列不允许有 Null 值。INSERT 失败。
--语句已终止。
--插入多行记录
use seldata
--insert into table values 后接多行记录插入
--语法:
insert into table_name
(column1,cloumn2,....cloumnN)
values
(values1,values2,....valuesN),
(valuesN1,valuesN2,....valuesNN)
insert into cominfo
(pname,sex,type,address,email)
values
('小猪','男',3,'东北安兴','zhua@163.com'),
('小狼','女',2,'河西大口','lang@361.com')
select * from cominfo
--使用select 语句插入值
--insert...select 语句包括insert插入语句部分和select查询语句部分
--语法结构如下:
insert into table_name1
(column1,column2,...columnN)
--插入表及字段
select column1,column2,....columnN
from talbe_name2
--查询表及字段
where searchcondition
--条件
--注意:插入表和查询表为不同表 插入字段数等于查询字段数
--      插入字段类型和查询字段类型相同或可以相互转换 
--      通过查询插入语句主要用于创建查找表以提高查询速度或者备份表
create table myfriend
(
fname char(10) not null,
sex char(2) not null,
age int
)
--创建数据表
insert into myfriend
(fname,sex,age)
select pname,sex,DATEDIFF(year,birthday,getdate())
--datediff使用:datediff--时间差(时间差的部份时间为年year,
--差值时间1 birthday,差值时间2 getdate()) datediff得到时间为整数类型
from cominfo
where type in (0,1,2,3)
select * from myfriend
--从一张表得到数据插入一张表

--利用子查询向表中插入数据
insert into myfriend
(fname,sex,age)
select tname,sex,age 
from teacher
where cno in (select cno from course where cname in ('计算机软件基础','计算机硬件基础'))
select * from myfriend
--将多个表中需要的数据合并到一个临时表
select top 3 * from teacher
select top 3 * from course
select top 3 * from student
--创建表:
create table temp_teacher
(
tname char(8) not null,
dname varchar(20),
cname varchar(20),
ctime int,
sneme char(8)
)
sp_rename 'temp_teacher.sneme', 'sname', 'column'
--修改列名:sp_rename '需要修改的数据库带列名','修改后的列名','指定为修改列'
insert into temp_teacher
(tname,dname,cname,ctime,sname)
select  tname,t.dname,cname,ctime,sname
from teacher as t
left outer join course as c
on
c.cno=t.cno
left outer join student as s
on
s.cno=t.cno
and
s.mark=(select AVG(mark) from student where cno=s.cno)
--这里没有搞懂:从自连接和聚合函数再复习  搞懂了:书里有错误应该为MAX(mark)
select * from temp_teacher
--通过左外连接得到数据
select AVG(mark) from student
select sno,sname,s.dname,s.sex,s.cno,mark,cname,t.tname,t.dname
from student as s
left join course as c
on s.cno=c.cno
left join teacher as t
on s.cno=t.cno
order by c.cname

select * from student as s where 
s.mark=(select AVG(mark) from student  where cno=s.cno)
select * from student order by cno

use seldata
select tno as '教师号',tname as '教师姓名',cno as '课程号',
       sal as '工资',dname as '系别',sex as '性别',age as '年龄'
       from teacher
select tno,tname,t.cno,dname,cname
from teacher as t
left join course as c
on t.cno=c.cno
order by t.cno

select s.sname,s.dname,s.sex,s.cno,s.mark,
       t.tname,t.dname,c.cname
       from student as s
       left join teacher as t
       on s.cno=t.cno
       left join course as c
       on s.cno=c.cno
       order by t.tname
--表数据的复制<类似创建视图,表的创建是物理存在,而视图是查询的集合表现>
--MS-SQL语法:
select column1,column2,.....columnN
into newtable_name
from table_name
where serch_condition
--MySQL Oracle语法
create newtable_name
as 
select column1,column2,....columnN
from table_name
where serch_condition

select pname,sex,TYPE,email
into newcominfo
from cominfo
select * from newcominfo
--按字段复制表
select * into newcominfo1
from cominfo
--完整复制
select * from newcominfo1
drop table newcominfo,newcominfo1
--删除表可以在表后给个表名
select  pname as 姓名,sex as 性别,type as 关系, email as 邮件地址
into newcominfo
from cominfo where email is not null
select * from newcominfo

SQL查询的艺术学习笔记--数据插入操作相关推荐

  1. golang 执行sql语句_Go语言学习笔记(Golang操作MySQL数据库)

    GO连接MySQL 通过GO页面作为客户端访问数据库 1.因为GO语言没有提供任何官方数据库驱动,所以需要安装第三方函数库. 2.由于在github上安装,所以需要安装git软件,安装过程一直点击下一 ...

  2. hive学习之数据插入操作

    1.插入于法 insert into 和insert overwrite INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol ...

  3. Java并发编程艺术学习笔记(五)

    Java并发编程艺术学习笔记(五) Java并发容器和框架 Java为开发者也提供了许多开发容器和框架,可以从每节的原理分析来学习其中精妙的并发程序. 一.ConcurrentHashMap的实现原理 ...

  4. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  5. 【Vue】学习笔记-数据交互

    [Vue]学习笔记-数据交互 概述 安装axios 通过axios向后台获取数据 数据交互的实现 常见错误总结 概述 基于Vue的web项目显示的所有服务端数据,都是通过Ajax获取的.官方推荐使用A ...

  6. sql查询某字段重复的数据

    sql查询某字段重复的数据 最近老是遇到添加新的约束问题,其中就有要求数据不能重复,那么以前哪些测试数据就不方便改了,但是又不能删除,所以为了防止重复,我们只能查询出来一个个改了,那么查询的Sql语句 ...

  7. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  8. NetLogo学习笔记3 —— 集合操作与生命游戏

    NetLogo学习笔记3 -- 集合操作与生命游戏 (这篇新知识点略多) 上一篇文章我们了解NetLogo模型的基本要素,学习了函数定义与ask语法.并编写了我们的第一个程序! 这一次,我们来编写一个 ...

  9. mysql 快速查询变更记录_MySQL学习笔记(7)—— MySQL 查询/更新数据记录

    除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处.这就是数据记录查询的用途,即帮助取出数据,也是 Python API 与 MySQL 交互的重要部分.SELECT 大概是 SQL ...

最新文章

  1. 网络流Dinic cur当前弧优化
  2. shell写的检测linux系统硬件信息的脚本
  3. MySQL5.7.19版本压缩包安装方式的一些坑
  4. lvs dr模式安装
  5. Linux网络模式及远程连接出错排障
  6. Gson解析Json格式数据
  7. 迅雷下载Linux Oracle11gR2和Oracle12c
  8. 配置并初始化oracle的网络环境
  9. 数字电路基础知识(三) 复位设计-异步复位,同步释放
  10. Knowledge Distillation via Route Constrained Optimization
  11. mapping的介绍和实战
  12. 密码要包含大小写字母+数字+符号,提这个建议的人刚刚承认他错了
  13. 停用所有计算机管理员权限,win10管理员权限被禁用怎么办_win10电脑管理员账户被禁用如何解开-win7之家...
  14. 红帽子Linux7安装Oracle,RedHat Enterprise Linux7.0安装Oracle 12C
  15. 1. 遥控器-华科尔Devo7e 改造成为支持 dsm2/dsmx 的多制式遥控器
  16. 【转载】linux修改文件的所有者权限[root权限更改为用户权限]
  17. 【云原生】还不会使用linux?快看这里,在window快速安装centos系统
  18. windows 快捷键
  19. 论文阅读 [CVPR-2022] BatchFormer: Learning to Explore Sample Relationships for Robust Representation Lea
  20. 教师计算机基础教学考核制度,ArticleView

热门文章

  1. 处理Session中的图片文件
  2. MySQL的常用聚合函数
  3. vue项目实现鼠标拖拽功能
  4. VS2017 Web项目添加引用项目后,引用上有黄色的感叹号小图标
  5. Windows实例搭建FTP站点
  6. 拼多多无货源模式新玩法(采集淘宝天猫京东等平台商品上传拼多多店铺)
  7. aspx与aspx.cs的关系
  8. 最长公共子序列与最长公共子串
  9. python 大数据开发框架有哪些_入门大数据开发行业!必备的十大基础
  10. 【LeetCode】62、63