SQL server 基本语句

--查询数据库是否存在

if exists ( select * from sysdatabases where [name]='TestDB')

print 'Yes, the DB exists'

else

print 'No, need a new one?'

 

--新建一个数据库

create database TestDB on

(

    name = 'TestData',

    filename = 'G:\DBS\KeyTest.mdf',

    size = 3,

    filegrowth = 2

)

log on

(

    name = 'TestLog',

    filename = 'G:\DBS\KeyTest.ldf',

    size = 3,

    filegrowth = 10

)

 

--drop database TestDB

 

use TestDB

go

 

--新建一个表

create table [Scores]

(

    [ID] int identity(1,1) primary key,

    [Student] varchar(20) ,

    [Subject] varchar(30),

    [Score] float

)

 

--drop table [Scores]

 

--修改表中的一列

alter table Scores alter column [Student] varchar(20) not null

 

--新增一列

alter table Scores add Birthday datetime 

 

--删除一列

alter table Scores drop column Birthday

 

--往表中插入单条数据,方法:带列名

insert into Scores(Student,Subject,Score)

values('张三','语文','90')

 

--往表中插入单条数据,方法:不带列名,但要求值的类型要和列字段类型对应

insert into Scores

values('张三','英语','95')

 

--插入多条数据:union或者union all

insert into Scores(Student,Subject,Score)

select '李四','语文','89'

union all

select '李四','英语','78'

 

--删除表中数据,没有条件时,删除所有

delete from Scores where ID in(7,8)

 

--修改表中数据

update Scores 

set Student='王五',Score='94'

where ID=10

 

--查看数据

select * from Scores

 

--查看表中最大的identity

select @@identity

 

--查找两个表中列的值是否相同,相同则不显示,不相同的则查出结果

select * from B_PowerStation a where not exists(select * from B_PowerPile b where a.ID=b.ID)

 

--或者利用dbcc命令查看表中最大的identity

dbcc checkident('Scores',noreseed)

 

--创建视图,全部省略视图的属性列名,由子查询目标列的字段组成

create view StudentView

as

select Student,Subject,Score

from Scores

 

--加上with check option,以后对视图的操作(增,改,删,查)都会自动加上where ID>3

/*

create view StudentView

as

select Student,Subject,Score

from Scores

where ID>3

with check option

*/

 

--创建视图,全部定义属性列名,需要定义列名的情况:

----某个目标列(子查询)不是单纯的属性列,而是聚集函数或列表达式

----多表连接时选出了几个同名列

----需要在视图中为某个列启用新的更合适的名字

create view IS_Student(Student,Subject,MaxScore)

as

select Student,Subject,Score

from Scores

where Score=(select max(Score) from Scores)

 

 

--查询视图,和基本表完全样,只不过如果视图中有with check option,会自动加上那个条件

select * 

from StudentView

 

--查询自定义列名的视图

select * 

from IS_Student

 

--对视图的insert/delete/update,和对基本表的操作一样,并且最终都是用RDBMS自动转换为对基本表的更新

--并不是所有的视图都是可更新的,因为有些视图的更新不能有意义的转换成对相应基本表的更新

 

--删除视图

drop view StudentView

 

1.  SQL常用命令使用方法

(1)数据记录筛选

select*from Products查询出Products表里面的所有信息

select ProductID,ProductName from Products查询出Products表里面所有ProductID,ProductName

select ProductID,ProductName from Products where ProductID=1查询出Products表里ProductID=1的所有ProductIDProductName

select* from employee where fname='Paul' and job_id=5 查询出employee表中fname=Paul并且job_id=5的所有记录

select*from Products where ProductID in(4,5,6)查询出Products表中ProductID,5,6的所有信息

select*from Products where UnitPrice>10 and UnitPrice<30 order by UnitPrice查询出Products表中<UnitPrice<30的所有信息并按照UnitPrice的大小由小到大排序

select*from Products where UnitPrice between 10 and 30 order by UnitPrice上面的另外一种写法

select * from Employees where FirstName like 'A%'查询出EmployeesFirstName里面第一个字母是A的所有人信息

select*from Employees where FirstName like '%A%'查询出EmployeesFirstName里面中间有A的所有人信息

select*from Employees where FirstName like '%A'查询出EmployeesFirstName里面最后一个字母是A的所有人信息

select count(*) from Employees查询出Employees表中的所有记录数

select min(Unitprice)from Products查询出Products表中Unitprice的最小值

select max(Unitprice)from Products查询出Products表中Unitprice的最大值

select avg(Unitprice)from Products查询出Products表中Unitprice的平均值

select sum(Unitprice)from Products查询出Products表中Unitprice的总和

select * from Products where Unitprice> (select avg(Unitprice) from Products)有子查询查找出比平均值高的商品信息

select top 5* from Products查询出前五条的记录信息

select distinct [name] from Category 查出Category 中不重复的name

select count(distinct name) from Category 查出Category 中不重复的name的数量

 

(2) 更新数据记录

sql="update 数据表set 字段名=字段值where 条件表达式"

sql="update 数据表set 字段=,字段=……字段n=n where 条件表达式"

 

(3) 删除数据记录

sql="delete from 数据表where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

 

(4) 添加数据记录

sql="insert into 数据表(字段,字段,字段…) values (,,…)"

sql="insert into 目标数据表select 字段名from 源数据表" (把源数据表的记录添加到目标数据表)

 

(5) 数据记录统计函数

AVG(字段名得出一个表格栏平均值

COUNT(*&brvbar;字段名对数据行数的统计或对某一栏有值的数据行数统计

MAX(字段名取得一个表格栏最大的值

MIN(字段名取得一个表格栏最小的值

SUM(字段名把数据栏的值相加

引用以上函数的方法

sql="select sum(字段名) as 别名from 数据表where 条件表达式"

set rs=conn.excute(sql)

 rs("别名"获取统的计值其它函数运用同上

 

(6) 数据表的建立和删除

CREATE TABLE 数据表名称(字段 类型(长度),字段 类型(长度) …… )

CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

 

2. 记录集对象的方法

rs.movenext 将记录指针从当前的位置向下移一行

rs.moveprevious 将记录指针从当前的位置向上移一行

rs.movefirst 将记录指针移到数据表第一行

rs.movelast 将记录指针移到数据表最后一行

rs.absoluteposition=N 将记录指针移到数据表第N

rs.absolutepage=N 将记录指针移到第N页的第一行

rs.pagesize=N 设置每页为N条记录

rs.pagecount 根据 pagesize 的设置返回总页数

rs.recordcount 返回记录总数

rs.bof 返回记录指针是否超出数据表首端true表示是false为否

rs.eof 返回记录指针是否超出数据表末端true表示是false为否

rs.delete 删除当前记录但记录指针不会向下移动

rs.addnew 添加记录到数据表末端

rs.update 更新数据表记录

 

3.  排序

desc就是用于查询出结果时候对结果进行排序是降序排序asc就是升序。。要用与order by一起用 

例如select * from student order by id desc; 就是把选出的结果经过id从大到小排序把资源返回

还可以select * from student order  by age desc,id desc;“,”号隔开多个排序条件这样先按age 再按 id就是说先按age从大到小排序如果有相同年龄的那么相同年龄的学生再按他们的id从大到小排序

DESC指排序时按降序排序ASC是升序

 

约束篇:

1.主键约束

要对一个列加主键约束的话这列就必须要满足的条件就是分空

因为主键约束就是对一个列进行了约束约束为非空不重复

以下是代码   要对一个列加主键列名为id,表名为emp

格式为

alter table 表格名称 add constraint 约束名称 增加的约束类型 列名

例子

alter table emp add constraint ppp primary key (id)

2.check约束

就是给一列的数据进行了限制

比方说年龄列的数据都要大于的

表名emp 列名age

格式

alter table 表名称 add constraint 约束名称 增加的约束类型 列名

例子

alter table emp add constraint xxx check(age>20)

3.unique约束

这样的约束就是给列的数据追加的不重复的约束类型

格式

alter table 表名 add constraint 约束名称 约束类型列名

比方说可以给ename列加个uniqueename列的数据不重复

例子

alter table emp add constraint qwe unique(ename)

4.默认约束

意思很简单就是让此列的数据默认为一定的数据

格式

alter table 表名称 add constraint 约束名称 约束类型 默认值 for 列名

比方说emp表中的gongzi列默认为

alter table emp add constraint jfsd default 10000 for gongzi

5.外键约束

这个有点难理解了外键其实就是引用

因为主键实现了实体的完整性

外键实现了引用的完整性

应用完整性规定所引用的数据必须存在

其实就是个引用

比方说一个表名称叫dept 里面有列数据 一列是ID一列是ENAME

id表示产品的编号

ename表示产品的名称

另外一个表格名称是emp 里面有列数据一列是ID 一列是DID

id:表示用户号

did表示购买的产品号

要让emp表中的did列去引用dept表中的id

可以用下面的方法

格式

alter table 表名 add constraint 约束名称 约束类型 (列名) references 被引用的表名称列名

例子

alter table emp add constraint jfkdsj foreign key (did) references dept (id

 

修改约束

 

 

转载于:https://www.cnblogs.com/Mzg121584668/p/7081041.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mp4格式

下面的软件下载地址&#xff1a;http://download.csdn.net/source/2607382 ftyp: 这是一个筐&#xff0c;可以装mdat等其他Box。 例&#xff1a;00 00 00 14 66 74 79 70 69 73 6F 6D 00 00 02 00 6D 70 34 31 语义为&#xff1a;ftyp: Major brand: isom Minor version: 5…

MongoDB的快速手动安装

就是关于MongoDB主从库的安装配置和启动。网上关于MongoDB的安装有大量的文章供大家学习。我这里提供一个Windows环境下MongoDB主从库的快速手动安装的方法&#xff0c;只需要三步即可。 先下载的安装包&#xff0c;解压缩后找到bin文件夹&#xff0c;将bin文件夹拷贝至你自己的…

时序图 分支_UML用例图

UML用例图用例图有以下东东:用例参与者关联系统边界用例使用椭圆来表示&#xff0c;椭圆里边写上用例的名称:这里的用例可以理解为一个动作或行为,或者一个对象。参与者用一个小人儿,在小人儿下面写上参与者名称,例如学生:关联用一条线表示:把很多个用例放到一个大的矩形框里。…

自定义封装 banner 组件

1. 效果图预览 2.基本功能 一个简单方便的轮播图组件&#xff0c;基于viewpager 基础上进行的封装。可设置 项目中图片&#xff0c;网络图片&#xff0c; View&#xff1b;支持循环自动播放&#xff0c;手势滑动切换&#xff0c;item点击事件,可设置 点点的样式宽高、颜色、大小…

vb.net服务器启动后cpu占用了70_记一次服务器被异常程序占用的解决过程(怀疑黑客攻击)...

最近在跑实验&#xff0c;但是突然发现程序运行变慢&#xff0c;然后top命令查看程序运行情况&#xff0c;发现有异常进程&#xff0c;名字叫 bash&#xff0c;占用 2400% CPU计算资源。刚开始怀疑是挖矿程序&#xff0c;因实验室网络IP为教育网公网&#xff0c;怀疑被攻击&…

3gp文件格式研究 (转windcao的专栏)

序言 06我开始做3gp文件的播放器,但是关于3gp的文档太少了也很难找,在网友luxh的帮助下,我终于有了第一份关于3gp文件格式的文档《ISO/IEC 14496-12&#xff0c;ISO媒体文件格式》.在此真心感谢luxh的贡献.当然了是英文版的,有文档就不错了.为了便于查阅和理解,我把之后陆续找…

yarn 怎么查看有多个job在跑_flink on yarn 模式下提示yarn资源不足问题分析

背景在实时计算平台上通过YarnClient向yarn上提交flink任务时一直卡在那里&#xff0c;并在client端一直输出如下日志&#xff1a;(YarnClusterDescriptor.java:1036)- Deployment took more than 60 seconds. Please check if the requested resources are available in the Y…

MPEG-2TS码流编辑的原理及其应用(转载

[作者&#xff1a;辽宁电视台 赵季伟] 在当今数字媒体不断发展、新媒体业务不断涌现 的前提下&#xff0c;实践证明襁褓中的新媒体只有两种经营方略可供选择&#xff1a;或是购买并集成整套节目&#xff0c;或是低成本深加工新节目&#xff0c;再不可能去按照传统生产模式…

FLV文件格式(Z)(转载)

刚才在看一些关于demux的东西&#xff0c;在处理flv格式的文件的时候&#xff0c;由于自己对flv文件的格式不了解&#xff0c;所以就比较云头转向&#xff0c;正好看到了一篇讲述flv文件格式的文章&#xff0c;写的比较明白&#xff0c;所以就转过来了。O(∩_∩)O~flv头文件比较…

mysql-5.7中的innodb_buffer_pool_prefetching(read-ahead)详解

一、innodb的read-ahead是什么&#xff1a; 所谓的read-ahead就是innodb根据你现在访问的数据&#xff0c;推测出你接下来可能要访问的数据&#xff0c;并把它们(可能要访问的数据)读入 内存。 二、read-ahead是怎么做到的&#xff1a; 1、总的来说read-ahead利用的是程序的局部…

mp4文件格式解析(一)

原文地址&#xff1a;mp4文件格式解析&#xff08;一&#xff09;作者&#xff1a;可下人间目前MP4的概念被炒得很火&#xff0c;也很乱。最开始MP4指的是音频&#xff08;MP3的升级版&#xff09;&#xff0c;即MPEG-2 AAC标准。随后MP4概念被转移到视频上&#xff0c;对应的是…

shiro身份验证测试

2019独角兽企业重金招聘Python工程师标准>>> 一、登录验证 1、首先在shiro.ini里准备一些用户身份/凭据&#xff0c;后面这里会使用数据库代替&#xff0c;如&#xff1a; [users] [main] #realm jdbcRealmcom.learnging.system.shiro.ShiroRealm securityManager…

shell if多个条件判断_萌新关于Excel VBA中IF条件判断语句的一点心得体会

作者:金人瑞 《Excel VBA175例无理论纯实战教程》学员最近正在学习郑广学老师的VBA 175例教程&#xff0c;这是一篇新手向的文章&#xff0c;也是一个新手的总结&#xff0c;高手可以批评文章中的不足之处&#xff0c;也可以无视&#xff0c;VBA中的IF判断, 判断一般起到控制作…

编程语言难度排名_谷歌排名第一的编程语言,小学生拿来做答题,分分钟钟搞定高难度算法!...

点击上方蓝色文字关注我们吧谷歌排名第一的编程语言时什么&#xff1f;毫无疑问&#xff1a;肯定是 Python。 也难怪&#xff0c;作为大数据时代和人工智能时代的必备语言&#xff0c;Python 的优点太多了&#xff0c;语言简洁、易学、开发效率高、可移植性强...... 另外&#…

【转载】fullpage.js学习

参考网址&#xff1a;http://www.dowebok.com/77.html 上面有详细介绍及案例展示&#xff0c;很不错哦&#xff0c;可以先去看看demo 一、简介 fullPage.js 是一个基于jQuery的插件&#xff0c;它能够很方便、很轻松的制作出全屏网站&#xff0c;主要功能有&#xff1a; 1.支持…

webpack打包测试_webpack入门笔记(一)

webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时&#xff0c;它会递归地构建一个依赖关系图(dependency graph)&#xff0c;其中包含应用程序需要的每个模块&#xff0c;然后将所有这些模块打包成一个或多个 bundle。webp…

mysql中的内置函数

mysql内置函数列表可以从mysql官方文档查询&#xff0c;这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数&#xff0c;使用不同的seed N可以获得不同的随机数 round(x, D)&#xff…

使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)

摘要&#xff1a;首先这个Decorator解释一下这个单词&#xff1a;“装饰器”&#xff0c;我觉得其实可以这样理解&#xff0c;他就像我们用到的Frame&#xff0c;他把每个页面共有的东西提炼了出来&#xff0c;也可能我们也会用各种各样的include标签&#xff0c;将我们的常用页…

安卓开发 新浪微博share接口实现发带本地图片的微博

1.微博share接口 在开始之前&#xff0c;我们先看一下要用到的这个接口&#xff1a; 我们这次是要上传本地图片&#xff0c;可以很明确的知道&#xff0c;除了要用POST方式提交请求&#xff0c;还要采用multipart/form-data编码方式。 那么这个multipart/form-data编码方式是什…

VirtualBox安装Centos6.8出现——E_INVALIDARG (0x80070057)

VirtualBox使用已有的虚拟硬盘出错&#xff1a; 问题描述&#xff1a;UUID已经存在 Cannot register the hard disk E:\system_iso\centos6.8.vdi {05f096aa-67fc-4191-983d-1ed00fc6cce9} because a hard disk E:\system_iso\centos68_02\centos6.8.vdi with UUID {05f096aa-6…