SQL server 基础

来源:互联网 发布:创建表时外键的sql语句 编辑:程序博客网 时间:2024/06/07 20:55

#入门

SQL和NoSQL                                                                                     /*以后研究*/

5NF(唯一性,关系单纯性,无函数关系性),BCNF                                /*解决冗余*/

E-R图(方块-◇)                                                                                                /*简单*/

四大模块(数据库引擎;报表服务,分析服务Analysis Services,集成服务Integration Services)   /*安装程序里有*/

IIS管理器 家庭普通版里没有。。要anytime upgrade。                                        /*nice*/

模板资源管理器                                                                                                    /*不错*/

配置管理器上我的网络调试貌似会出问题                                                   /*隐患*/

集成模块,调用VS2008报表?                                                            /*以后再说*/

架设sqlServer2008报表服务器                                          /*架设的貌似可以再web上看报表?*/

#基本操作

select DATABASEPROPERTYex('maibo0308','version')                           /*查询属性*/

exec sp_helpdb

exec sp_helpindex                                  /**查询索引,是一个单独的系统/

exec proc usp_name                /*存储过程,可编译直接执行*/

系统名  exec sp_help 表名 

模板-指定模板参数值                                          /*打基础无益,但最快,maya时就希望有模板该参数*/

快照

本地全局临时表,文件名加“##”                         /*临时表*/

自定义数据类型                                                        /*挺方便的,怎么都没有?*/

自定义规则            create rule  rulename as 规则       sp_bandrule                                      /*新知识*/

架构,安全架构权限    create schema    schemaname                                  /*架构师就是这个?安全部分,对应DBO*/

#数理知识

一般用varchar和nvarchar,有固定要求的比如身份证,邮编等用vachar和char                 /*硬盘大*/

int类型存不了电话                                                                                 /*汗*/

comute sum()   order by

#单表 创建、插入、约束、删除

declare @i=int  set i=20                                                              /*变量*/

insert into 表名 values (按列输内容)                                         /*输单行。。*/

insert 表名 select * from 表2 where 列名 like “”

select 列名 into 新建表 from 表名                                          /*新建表,多用于临时表*/

updata 表1 set  列名=,列名=   from 表1 jion 表2  on 表1_列=表2_列            /*from   jion   on     ==from   表1   表2   where  */

alter table 表名 add 列名

creat table 表名(列名   int)

constrant 表名 primary key(列名)                           /*Google有关?索引   create nonconclustered index  IX_表名 on表名*/

truncate table表名

drop table 表名

关系约束操作

select count(*), 性别,年龄 from 表  

group by 性别

group by 年龄      group by  rollup                                 /*select 聚合函数 group  by,rollup略陌生*/

having count(*)>10 

order by  count(*) desc                                        /*having 聚合函数   order by  聚合函数  desc*/

@多表内连和外连

select 表名.列名 from 表 where 关联列=关联列                                       /*标准模式,同等连接不熟。所属班级=primary班级编号*/

select 表名.列名 from 表1 inner join  表2 on  关联列=关联列                 /*做的乘法,不是很理解,可以直接视图view操作!修改数据,inner可省*/

                                                             /*where search_condition;on join_condition,b列匹配a列,一样吗?;等值关系,消除不匹配行*/

select 表名.列名 from 表1 left  join  表2 on  关联列=关联列                     /*表一行数全有,返回主表所有行,where和on有很大不同*/

select 表名.列名 from 表1 full outer join  表2  按 关联列=关联列            /*全外连接*/

cross join                                                                                              /*交叉连接,意义?和基本连接一样的!*/

内连接                                                            /*九九乘法表*/

SFW   union  all   SFW                                      /*连接上下表,挺有用的。合计。列名、类型、列数*/

SFW intersect  SFW                           /*查询 1  且  查询2 */

SFW expect SFW                                /*bool左值*/

S_data xml                                                         /*XML语句  不熟    <学生信息><姓名>刘倩</姓名><性别>女</性别></学生信息> */

for xml    raw?/auto?                                       /**/

第7章   

#子查询                                                                  /*从《名单ID-名单-年龄表》、《货物ID-货物-型号表》、《订单号-名单-货物表》*/

select  distinct 年龄  from 《名单ID-名单-年龄表》where 名单 in

(select  名单  from 《订单号-名单-货单表》where 货物 in

(select 货物 from 《货物ID-货物-型号表》 where 型号=ME525)                   /*查买这个型号的顾客的年龄*/

#exisis子查询                                        /*判断登录情况*/

if exisis ((有me525的手机)and amount >3)

begin     update 订单信息 set  金额=金额*0.8 where 订单编号 in(有me525的手机  and amoun>3)

end

#逻辑

<>any  与 not in区别:前者一个一个计算,后者整组计算


第8章 t-SQL编程
waitfor delay '00:00:00'
标量值函数——select
表值函数——select from
存储过程的区别——exec,output参数
游标——declare/open/fetch * for/close/deallocate 五大步骤
if @@fecth_status=0
1、显式事务commit/rollback/save? transaction
2、自动提交事务
3、隐式事务:触发器
4、批处理级事务模式 
s共享锁/x独占锁/u更新锁/死锁(循环等待)

第9章 存储过程
各种函数的定义,执行,逻辑 while begin end goto print""
1、存储过程begin^end 可以不要就是执行语句的,
2、是针对某一具体,不能use datebase,不能创建schema/function/prc/view/xml
3、#局部存储过程
4、嵌套存储过程最多32层,@@nestlevel

第10章  触发器
是触发被执行,存储过程是主动调用
dml(3种)/ddl/
create on 触发点 for insert as update  i++  where 外键  from inserted
                               select                   from deleted
                               if update()  begin   end
ddl  on database
嵌套:删除新,insert旧。

/**********安全性******************************/
1、创建Windows/SQL用户的时候,映射证书?
2、数据库用户:映射数据库=房屋钥匙
3、服务器角色:bulkman可导入/DBcreater开发/Diskadmin助理DBA/sysadmin所有权限
4、角色(1)数据库角色
            a、固定某个数据库的某个角色
            b、自定义数据库角色,权限到列
       (2)应用程序角色
权限:到列

/******************备份恢复********************/
备份设备
完整-差异-事务日志

/**********************自动化SQL*****/
配置文件——远程调用失败?
邮件发送设置发送 msdb.dbo.sysmail_event_log,及其管理
代理-操作员
创建作业作业(步骤-计划-警报-通知)步骤创建完不能再改了??
报警级别22
维护计划向导

/**************集成服务**********************/
在VS创建SSIS包,并执行,或者用SQL导入执行
看到的那个应该就是在做集成服务
包配置的生成——似乎很有用
包的安装
似乎还不知道具体作用

/***********报表服务*******************/
数据库——VS初步显示
报表设计器-组头/组尾
报表服务器配置-部署

/************分析服务****************/
数据源/数据源视图/多维数据集/维度
部署
多维数据集运行后-KPI-浏览器-筛选
数据挖掘技术??

/***********.net************/
dataset通过数据库和dataAdapter处理
connect命令
commond命令

********监视SQL***********/
创建跟踪   //应该很有用
优化向导

/*****CLR函数*****************/
在VS中创建SQL
.cs用户自定义CLR函数
函数/存储过程/触发器

/***********SMO访问****************/
server management operation?

/*********其他操作********/
内存配置
power shell
复制(发布-订阅)
                                                             //inner join 某种意义上等于联合查询  left join 才有意义 
                                                              / 表 值函 数 定义 @p/返回table/ begin with? as (select)
/***********排序函数***同义词*****************************/
row number() over (order by分数) as排名
rank ()                               --考虑并列情况,跳过重复排名
dennis_rank  ()                       --考虑并列情况,不跳过重复排名
ntile(6) ()                         --每6个一组
创建同义词
______________
((control)myctrl).checked



0 0
原创粉丝点击