SQL Server 笔记
第一章数据库的基本操作:
1>创建数据库:
create database my_db(逻辑名称)
on primary
(
name='my_db.mdf',(物理名称)
filename='F:\exercise\my_db.mdf',
size=5mb,
maxsize=50mb,
filegrowth=10%
)
2> 改变数据库的容量:
alter database my_db
modify file
(
name='my_db',
size=15mb
)
3>收缩数据库:
Dbcc shrinkdatabase(‘my_db’,1)
1为收缩比
4>更改数据库名称:
exec sp_renamedb 'my_db' ,'my_db1'
5>删除数据库:
drop database my_db1
第二章表的基本操作:
1>创建表:
Create table my_ta
(
学号 int primary key identity,
名称 char(6) not null,
专业方向 varchar(10) not null,
系部代码 char(2) not null,
备注 varchar(50)
)
2>用存储过程查看表的信息:
Exec sp_help my_ta
3>修改表的列名:
exec sp_rename 'my_ta.[my_ta.其他]','其他'
4>增加表的列:
alter table my_ta add home varchar(100) not null
5>修改表的数据类型:
alter table my_ta alter column home varchar(80)
6>删除表的列:
alter table my_ta drop column home
7>删除表中的所有数据:
Truncate table my_ta
8>删除表:
Drop table my_ta
9>将一个表中数据查出插入到另外一个表中:
select * into t11 from t1
第三章数据的完整性:
1>主键和外键,创建主键和外键:
alter table t1
add constraint pk
primary key clustered(name)
alter table t2
add constraint fk
foreign key(name)
references t1(name)
2>创建唯一约束:
alter table t1
add constraint uq
unique nonclustered (name)
3>创建check约束:
alter table t1
add constraint ch
check(age>10 and age<100)
4>默认约束 :
alter table t1
add constraint de
default '这是默认可以不填' for 其他
5>删除约束:
Alter table t1 drop constraint de
6>创建规则:
创建规则:
create rule ru
as
@a>300 and @a<600
绑定规则:
execute sp_bindrule 'ru','t1.age'
解除规则绑定 :
execute sp_unbindrule 't1.age'
删除规则:
Drop rule ru
7>创建默认:
Create default def
As ‘男’
绑定默认:
execute sp_bindefault 'def' ,'t1.gendar'
解除默认的绑定
Execute sp_unbindefault 'def' ,'t1.gendar'
删除绑定:
drop default def 必须先解除绑定才能删除
第四章 索引
1>创建索引
--create [unique][clustered][nonclustered] index 索引名
--on 表名(列名)
create clustered index ind
on t1(name)
2>查看索引信息:
exec sp_helpindex t1
3>删除索引
drop index t1.ind
第五章 视图
1>创建视图
create view v1
with[encryption][schemabinding]可选
as
select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称
from 学生
join 班级 on 学生.班级代码=班级.班级代码
join 专业 on 班级.专业代码=专业.专业代码
join 系部 on 专业.系部代码=系部.系部代码
create view v1
with encryption 加密视图
as
select name ,age t1
create view v1
with schemabinding 架构绑定 可选
as
select name ,age from dbo.t1
2>可以在视图上进行增删改操作
3>查看视图的信息:
Exec sp_helptext 视图名
4>删除视图
Drop view 视图名
第五章 存储过程
1>创建存储过程
create proc p
as
select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称
from 学生
join 班级 on 学生.班级代码=班级.班级代码
join 专业 on 班级.专业代码=专业.专业代码
join 系部 on 专业.系部代码=系部.系部代码
create proc p3
@sex varchar(10),
@id varchar(10)
as
select 学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称
from 学生
join 班级 on 学生.班级代码=班级.班级代码 and 学生.性别=@sex
join 专业 on 班级.专业代码=专业.专业代码
join 系部 on 专业.系部代码=系部.系部代码 and 系部.系部代码=@id
2>执行存储过程
Execute p
execute p3 '男',''
3>变量
create proc p4
@name varchar(10),
@getnum varchar(10) output
as
select @getnum=学号 from 学生 where 姓名=@name
execute p4 '刘德华' ,''在这里会输出参数
4>查看存储过程的信息
execute sp_helptext p4
execute sp_depends p4
execute sp_help p4
5>删除存储过程
Drop procedure p4
第六章触发器
1>创建触发器
create trigger myinsert
on 产品
for insert
as
declare @a char(10)
select @a=产品编号 from inserted
insert into 产品销售 values(@a,0)
insert into 产品 values(007,'萝卜')
当我们执行在产品中插入数据的时候,那会就会级联得对产品销售中插入数据,这是同时的。
create trigger tr1
on 产品
for delete
as
declare @产品编号 varchar(10)
select @产品编号=产品编号 from deleted
delete from 产品销售 where 产品编号=@产品编号
2>查看触发器
execute sp_helptrigger 产品
3>删除触发器
delete from 产品 where 产品编号=''
第七章函数
1> 1、聚合函数
AVG ()--平均值
COUNT ()--返回行中项目的数量
MAX ()--最大值
MIN ()--最小值
SUM ()--求和
2、数学函数
ABS (x)--返回绝对值
CEILING(x)--返回大于或等于所给数字的最小整数
PI ()--pi值
POWER (x,y)--返回x的y次方
RAND ()--返回~1之间的随机数
3、 配置函数
SELECT @@VERSION --获取当前数据库版本
SELECT @@LANGUAGE --当前语言
4、时间函数
select getdate() --当前时间
select day(getdate()) --取出天
select month(getdate()) --取出月
select year(getdate()) --取出年
select dateadd(d,3,getdate()) as wawa_dateadd --加三天, ‘d’表示天,‘m’表示月,‘yy’表示年
select datename(d,'2010-07-15') --取出时间的某一部分
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
5、字符串函数
Select LEN('str1111')--返回字符串的字符个数
Select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') --转换大小写
select ltrim(' 左边没有空格') --去空格
select rtrim('右边没有空格 ') --去空格
select ltrim(rtrim(' 左右都没有空格 ')) --去空格
select left('sql server',3),right('sql server',6) --取左或者取右
Select replace('原字符串','原','这是一个')--字符串替换
Select replicate('go',5)--指定的次数重复字符
select reverse('这是字符串') --将定字符串返序排列
select substring('这是一个原字符串',2,3)--指定截取指字字符串
6、排名函数
rank()返回结果集的分区内每行的排名
rank() over (order by 列名)
select 姓名,rank() over(order by(高考分数) desc) 名次,高考分数 from 学生
--------------------------------------------------------------------------------------------
SELECT TOP(2) majoy,COUNT(*) AS 人数 FROM stuclass GROUP BY majoy ORDER BY 人数 ASC
SQL Server 笔记的更多相关文章
- SQL Server笔记
SQL Server所能读取的最小单位是页,每个页8KB,8个物理上连续的页就是一个区,这样数据库中每MB就包含有16个区 堆是没有聚集索引的表.如果表格上没有聚集索引,数据行将不按任何特殊顺序存储, ...
- SQL Server笔记-语法
1.USE <DatabaseName> //选择数据库 例:USE [master] //master是系统默认数据库 2.字段或表名与保留字或关键字重名时需要加. 3.COMPATIB ...
- SQL Server笔记——sql语句创建数据库
MS SQLServer的每个数据库包含: 1个主数据文件(.mdf)必须. 1个事务日志文件(.ldf)必须. 可以包含: 任意多个次要数据文件(.ndf) 多个事务日志文件 CREATE DATA ...
- sql server 笔记(数据类型/新建、修改、删除数据表/)
1.数据类型: Character 字符串 / Unicode 字符串 / Binary 类型 / Number 类型 / Date 类型 / 其他数据类型 详解:http://www.w3sc ...
- sql server 笔记1--case、WAITFOR、TRY CATCH
一.case 转自:http://blog.csdn.net/add8849/article/details/576424 深入使用:http://blog.csdn.net/akuoma/artic ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- SQL Server 2012 数据库笔记
慕课网 首页 实战 路径 猿问 手记 Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...
- SQL SERVER 数据库表同步复制 笔记
SQL SERVER 数据库表同步复制 笔记 同步复制可运行在不同版本的SQL Server服务之间 环境模拟需要两台数据库192.168.1.1(发布),192.168.1.10(订阅) 1.在发布 ...
- .NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)
原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数 ...
随机推荐
- openresty + lua 3、openresty http 调用
http 的话,openresty 已经集成,ng 的话,自己引入即可. github 地址:https://github.com/pintsized/lua-resty-http github 里提 ...
- Codeforces Beta Round #27 E. Number With The Given Amount Of Divisors 含n个约数最小数
http://codeforces.com/problemset/problem/27/E RT,求含n个约数的最小的数 我们设答案p = 2^t1 * 3^t2 * -- * p^tk(其中p是第k ...
- What mind mapping software applications do you recommend.
选自 https://members.iqmatrix.co/creative-mind-maps I personally use Mindjet MindManager. This is one ...
- Java学习--循环语句
1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...
- StringBuilder 详解 (String系列之2)
本章介绍StringBuilder以及它的API的详细使用方法. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/string02.html StringB ...
- Method not found: 'System.Data.Entity.ModelConfiguration.Configuration.XXX
使用EF flument API 修改映射数据库字段的自增长 modelBuilder.Entity<Invoice>().Property(p => p.Id).HasDatab ...
- 【转】JS浮点数运算Bug的解决办法
37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一 ...
- ubuntu下sqlite命令
介绍 Linux上的小巧的数据库,一个文件就是一个数据库. 安装Sqlite3 要安装 Sqlite3,可以在终端提示符后运行下列命令: sudo apt-get install sqlite3 检查 ...
- MariaDB 备份与日志管理(13)
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...
- MySQL 中文字符集排序
SELECT 字段名 FROM 表 ORDER BY CONVERT(字段名 USING gbk) ASC;