SQLServer 基础
1当设计表时,对表进行结构性的修改(如将原来可以null的改为不可null),直接改则不允许保存修改,需要选择 工具----选项----designers—表设计器和数据库设计器---阻止保持要求重新创建表的更改(将其取消)。
2标识字段:输入数据时,不用输入id,让其主动增加(输入第一行时,id自动显示为1,输入第二行时,id自动显示为2) 列属性---标识规范---选择是标识---设置标识种子(起始点)与标识增量(步长)。
3 字段设置默认值,添加新记录时没有输入时自动填充默认值。列属性---默认值或绑定---设定默认值。添加时出现叹号---右键---执行,则实现填充默认值。
4 创建数据库 :对象资源管理器---数据库---右键---新建
Sql语句 (简单方式) 新建查询--- creat database 名称 (执行)
(完整方式) 新建查询---
Create database ljtdatabase
On ---------创建数据文件
(
name=ljtdatabase_data,
Filename=’d/temp/ljtdatabase_data.mdf’, -----存储路径 格式 .mdf
Size=10,
Maxsize=20,
Filegrowth=10%
)
Log on ---------创建日志文件
(
Name=ljtdatabase_log ,
Filename=’d/temp/ljtdatabase_log.ldf’ ------存储路径 格式 .ldf
Size=6,
Maxsize=10,
Filegrowth=10%
)
删除数据库 drop database 名称1,名称2 (删除多个数据库)
5更改名称:
更改数据库名称 直接重命名
exec sp-renamedb 旧名称 ,新名称。
更改表名称 直接重命名
exec sp-rename 旧名称 , 新名称
6 创建表
Use 数据库名称
create table 表名
(
属性名1 数据类型 identity(1,1) primary key, (定义标识 及主键)
属性名2 数据类型
)
7 查询表
Select * from dbo.表名
Select 属性1,属性2 from dbo.表名
8 修改数据库
增加数据文件
Alter database 数据库名 ------申明修改哪个数据库
Add file
(
Name=名称
Filename=’d:\abc\ljt.mdf’,
Size =10,
Filegrowth=10%
)
增加日志文件
Alter database 数据库名 -------申明修改哪个数据库
Add log file
(
Name=名称
Filename=’d:\abc\ljt.mdf’,
Size =10,
Filegrowth=10%
)
9 删除数据库的文件
Alter database 数据库名
Remove file 文件名 (teacher数据文件 | teacher-log 日志文件)
10 增加表的属性
Use 数据库名 -----申明修改表所属的数据库
Alter table 表名 -----申明修改的表
Add 属性名 数据类型 ( default ‘ 默认值’ ----定义默认值 )
修改属性
Use 数据库名
Alter table 表名
Alter column 属性名 数据类型
删除属性
Use 数据库名
Alter table 表名
Drop column 属性名
11 插入记录
Use 数据库名
Insert into 表名 (需插入的属性名) values (需插入的属性数据值)
将其他表的数据插入到目标表
Insert into 目标表名 select 属性名1,属性名2 from 其他表
12 条件查询
Use 数据库名
Select 属性名 from 表名 where 查询条件
Select 属性名 from 表名 where 条件属性名 not in (条件属性值)
查询空值----Select 属性名 from 表名 where 属性 is null
查询没有重复的属性值
Select distinct 属性名 from 表名
嵌套查询(表之间的查询)
Select 属性名 from 表名 where 条件属性 in |=|> (select 属性名 from 表名 where 条件) -------- 等号后只能有一个值 而 in 后可以是多个值
查询 和 ZZ年龄相同的人
Select *from 好朋友 where age in (select age from 好朋友 where name =’ZZ’)
查询并将结果排序
Select 属性名 from 表名 where 属性条件 order by 第一排序属性,第二属性
asc 升序 desc 降序
13 数据修改
Use 数据库名
Update 表名 set 属性值(属性名=数值) where 修改条件
14 删除记录
Use 数据库名
Delete from 表名 where 删除条件
15 统计行数
Select count (*) as 指定名 from 表名 -----统计所有列的行数
Select count (属性名) as 指定名 from 表名 ----统计某属性不为null的行数
16 统计和
Select sum(属性名) as 指定名 from 表名 ----计算某属性所以列的和(所有员工的工资总额)
17 求平均值
Select avg(属性名) as 指定名 from 表名 ----计算某列的平均值(计算员工的平均年龄)
18 求最值
Select max | min (属性名) as 指定名 from 表名 ----计算最大值(求员工最大年龄)
19求两列和,差,积,商 (列之间的代数运算)
Select 属性名1,属性名2, 属性名3 + 属性名4 as 指定名 from 表名
(查询员工姓名,年龄,及工资和奖金的和(即总工资))
20 模糊查询
Select * from 表名 where 属性名 like ‘%天%’ ----查询某属性值中含有 天 字的记录 李%---以李开头 %李----以李结尾 %李%----含有李字
21 汇总查询
Select *from 表名 order by 属性名1 compute max(属性名) min(属性名) by属性名 1 ----按照属性1,分组计算 max min 然后各组再按属性名1排序(order by属性名1) compute by的属性 必须包含在orderby的属性
计算不同年龄员工群的工资最大值,最小值,工资总和 然后结果按照年龄排序
22 分组查询
Select 属性名1 ,max(属性名),min(属性名) as 指定名 from 表名 group by 属性名 having 查询条件
查询不同院校的员工的工资最大值,最小值 且 只显示工资最大值要求大于3000的
Select 毕业院校, max(工资),min(工资)from 员工表 group by 毕业院校 having
max(工资)>3000
23 条件存在即查询
Select 属性名1,属性名2 from 表名 where exists (条件集合)
条件集合只要非空就可以执行前面的查询操作
Select * from 职员表 where exists (select * from 职员表 where 毕业院校=LIT) -----只要毕业院校是LIT的员工就查询其全部信息 括号内非空就执行前面的查询
Select * from 职员表 where not exists (select * from 职员表 where 毕业院校=LIT)
------ 只要括号内为空就执行前面查询
24 any all 查询
Select *from 表名 where 属性名1> any | all (select …….)
Any 满足条件查询的任意一个即可
All 必须满足条件查询的所有结果
25 只查询全部数据的前 n 条记录 或前 n% 条记录
Select top n 属性名1,属性名2 from 表名
Select top n precent * from 表名
26 将查询结果保存为另一个表
Select * into 另存表名 from 表名where 查询条件
27 查询结果的并-----将两个查询结果显示在同一个表中
Select *from 表名1 union select * from 表名2 -----将从两个不同表中的查询结果放在同一个表中显示
查询结果的交
Select *from 表名1 interset select *from 表名2
28
一般连接查询
Select *from 表名1 ,表名2
分别将表2的每一个记录连接在表一中的所有记录 (表名2 中的每一条记录会和表名1中的所有记录连接)
条件连接
Select *from 表名1,表名2 where 表名1.属性名 = 表名2.属性名(当两个属性名不同时可以直接去掉表名的前缀)-----将两个表中同一人的信息连接 表1.姓名=表2.姓名
超连接查询
Select *from 表名1 inner join 表名2 on 表名1.属性名 = 表名2.属性名
左右连接
Select *from 表名1 left join 表名2 on 表名1.属性名 = 表名2.属性名
-------表名1的记录都会被显示,表名2中只显示符合条件的记录进行连接无对应的用null填充
Select *from 表名1 right join 表名2 on 表名1.属性名 = 表名2.属性名
-------表名2的记录都会被显示,表名1中只显示符合条件的记录进行连接
Select *from 表名1 full join 表名2 on 表名1.属性名 = 表名2.属性名
-------表名1,表名2的记录都会被显示,符合条件的进行连接,没有符合的用null填充
29 check 约束
对属性值进行约束 只有满足约束时才能填充 否则 不能填充
设计----- 要约束属性处右键----check约束----添加----表达式约束
( 年龄>20 and 年龄<30 , 总收入=工资+奖金 )
增加约束
Alter table 表名 add check(约束)
修改约束
Alter table 表名 modify 属性名 check (约束)
30 设置主键
设计----要约束属性处右键-----设置主键
31 唯一性约束 --------唯一性约束用来限制不受主键约束的列上的数据的唯一性
设计---约束属性处---右键---索引键---添加---常规类型选择唯一键---列处选择需要唯一性约束的属性
32 查看索引
Exec sp-helpindex 表名
33创建索引
Create index 索引名 on 表名 (创建索引的属性名 asc | desc)
创建唯一索引
Create unique index 索引名 on 表名 (创建索引的属性名 asc | desc )
34 更改索引名
Exec sp_rename ‘表名.索引名’ ,‘新索引名’ ,‘index’
35 删除索引
Drop index 表名.索引名
36 创建视图
Create view 视图名 as select * from 表名 where 条件
修改视图
Alter view 视图名 as select语句相应的修改查询条件
删除视图
Drop view 视图名
SQLServer 基础的更多相关文章
- Data Base sqlServer基础知识
sqlServer 基础知识 大纲 创建数据库 1 创建表 2 备份表 3 删除表 4 修改表 5 查询出重复的数据 6 增删改查 7 添加约束 8 分页存储过程 9 排序 10 类型转换 11 ...
- sqlServer基础知识
sqlServer 基础知识 大纲 创建数据库 1 创建表 2 备份表 3 删除表 4 修改表 5 查询出重复的数据 6 增删改查 7 添加约束 8 分页存储过程 9 排序 10 类型转换 11 ...
- SqlServer基础语句练习(一)
学了不少东西,感觉自己的sql语句还是很不好,从基础学起吧. 来一段sql脚本: create database tongji go use tongji go create table studen ...
- SqlServer基础语法
历史 有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server. 1989年 Ashton-Tate/Microsoft SQL Serv ...
- SqlServer基础之(触发器)
概念: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触 ...
- SqlServer基础复习
一.数据类型 包括整数类型(可以用来做主键)的如bit,int ,samllint,tinyint,bigint,存储的范围不同,常用的有int,bigint等:树脂类型decimal(p, ...
- SqlServer基础:类型转换Cast和Convert
在SqlServer要对不同类型的数据进行运算时,需要将其转换为相同类型之后再做操作,而SqlServer中有两个函数可以进行数据转换,即:Cast和Convert 1.Cast CAST(expre ...
- SqlServer基础:Bit类型
SqlServer的bit类是只0或者1,默认不输入值时为null,但是如果输入的值不是0和1时,则默认填充的值为1
- SQL从入门到基础–03 SQLServer基础1(主键选择、数据插入、数据更新)
一.SQL语句入门 1. SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法. 2. SQL语句中字符串用单引号. 3. SQL语句中,对于SQL关键字大小写不敏感,对于字符串值大小 ...
- (转)SqlServer基础之(触发器)(清晰易懂)
阅读目录 一:触发器的优点 二:触发器的作用 三:触发器的分类 四:触发器的工作原理 五:创建触发器 六:管理触发器 概念: 触发器(trigger)是SQL server 提供给程序员和数据分析 ...
随机推荐
- 微信小程序基础之表单Form的使用
表单Form的应用很广泛,我们可以利用form设计登录注册,也可以设计一种答题问卷的形式,今天主要讲一下form的使用 form表单,将组件内输入的"switch","i ...
- Swift Review总结:从 Swift Style 开始
每个语言都有自己的推荐风格.显然OC与Swift有着不同的风格.当我们开始写Swift,首先要注意的就是按照Swift的风格写,而不是沿用OC的风格. 省略句末的分号 swift推崇简洁的语法.如果一 ...
- AsnycTask的内部的实现机制
AsnycTask的内部的实现机制 写在前面 我们为什么要用AsnycTask. 在Android程序开始运行的时候会单独启动一个进程,默认情况下所有 这个程序操作都在这个进程中进行.一个Androi ...
- SpriteKit物理引擎碰撞中5个重要信息
我们知道在SpriteKit物理引擎实际是基于Box2D! 在SpriteKit中当你设置好适当的碰撞参数后,通过遵守SKPhysicsContactDelegate,你可以选择实现2各碰撞回调方法: ...
- Android Firebase 服务简介
Firebase初步了解 什么事Firebase?Firebase成立于2011年,在被Google收购之前,Firebase是一个协助开发者快速构建App,能够提供行动应用专用开发平台及SDK的一款 ...
- JAVA面向对象-----继承
类和类之间的常见关系. 既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系 现实生活的整体与部分 举例说明 现实生活 学生 是人 狗 是动物 球队 包含 球员 整体与部分的关系,部分可 ...
- 微软Telnet的回显功能开启
win7和XP系统默认telnet的回显功能是关闭的.启用telnet回显功能:(1)首先进入命令行界面:输入telnet(2)进入Microsoft Telnet>命令提示符下,输入:set ...
- iOS下JS与OC互相调用(四)--JavaScriptCore
前面讲完拦截URL的方式实现JS与OC互相调用,终于到JavaScriptCore了.它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下, ...
- Emojicon表情之快速应用于Android项目
最近在项目中遇到了一个问题,找了半天原因,最后发现是用户在昵称中输入了emojicon表情,导致服务器不识别出现错误,而项目中也未对emojicon表情作支持,因此不得不考虑对emojicon表情做下 ...
- JQuery之DOM操作及常用函数
属性操作 attr(name)获取属性值 var imgSrc = $("img").attr("src") attr(name,value)设置属性值 $(& ...