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 提供给程序员和数据分析 ...
随机推荐
- 关于 linux中TCP数据包(SKB)序列号的小笔记
关于 SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq 一直没有找到seq 不清楚在那里初始化了,就 ...
- 【SSH系列】spring中为什么要使用IOC
开篇前言 在前面的博文中,小编主要简单的介绍了spring的入门知识,随着学习的深入,我们知道spring最核心的两大技术,IOC和AOP,这两个技术也是spring最耀眼的地方,在后续的博文中小编将 ...
- XML Condition And
<Target Name="CustomBuildStep" Condition="'@(CustomBuildStep)' != '' and '$(Select ...
- PHP 验证码 浅析
拓展 背景图 imagecreatetruecolor imagecolorallocate imagepng imagedestoryimage 简易数字验证码 imagecolorallocate ...
- 【BAT经典算法面试题系列】求和为n的连续正整数
马上就要到9月份了,意味着一年一度的秋招就要开始了,相信不论是正在实习的童鞋还是马上就要找工作的童鞋,BAT无疑是国内的"明星企业",是每个学计算机的小伙伴们心之向往的企业,但是呢 ...
- EBS开发性能优化之查找需要优化的程序
1.登陆数据库LINUX环境 使用 top 命令查看进程状况 [oratest@ebsdb~]$top top - 15:58:59 up 8 days, 22:04, 1 user, load ...
- Java之继承深刻理解
1.关于私有成员变量 无论父类中的成员变量是私有的.共有的.还是其它类型的,子类都会拥有父类中的这些成员变量.但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protecte ...
- 20 ViewPager Demo3指示器
MainActivity.java package com.qf.day20_viewpager_demo3; import java.util.ArrayList; import java.util ...
- [ExtJS5学习笔记]第十八节 Extjs5的panel的dockeditems属性配置toolbar
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39156321 官方例子:http://docs.sencha.com/extjs/5. ...
- iOS中 语音识别功能/语音转文字教程详解 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 原文地址:http://blog.csdn.net/qq_31810357/article/details/5111 ...