标签:数据库连接 esc 解决方案 关系 连接 constrain script 外键 exists
有次笔试最后一页的三个数据库连接查询,没有写出来,被考官暗讽了下。现在想来,实习初,确实很LOW。现公司刚入职的时候,负责过ETL方面,所以和数据库打了不少交道,五十行的联合查询、上百行的存储过程很常见,游标、视图、索引频频接触,包括在SQL中断点调试,测值等等,在这里将所接触所了解的进行整理,做一个小总结,慢慢的积累,对游标、视图等等也做一个简单的说明。我有时候遇到相同问题,会出现忘记上次是如何解决问题的情况,直到花费大量的时间、精力去重新找到解决方案。这很浪费,所以凡是遇到的问题,所做解决的方案,我强迫自己写个备注,将大致思路进行汇总整理,以方便自己及时回顾。毕竟好记性不如烂笔头,古人诚不欺我也!
1、数据库常见三种数据模型: 层次、网状、关系
2、关系的 三类完整性约束:实体完整性(主键不为空)、参照完整性、用户自定义完整性
3、常用易忘数据类型:
①int 4byte = 32bit 一个汉字2字节,中文标点、全角占两字节;字母、英文标点、半角占一个字节
②char 固定长度的非unicode 字符数据,最大长度为8000个字符
③varchar 可变长度的非unicode 字符数据,最大长度为8000个字符,存储大小为输入数据的实际长度
④nchar 固定长度的unicode 字符数据,最大长度为4000个字符,存储大小为实际长度的两倍
⑤nvarchar 可变长度的unicode 字符数据,最大长度为4000个字符,存储大小为实际长度的两倍
4、常见的查询操作
--查詢第8行到第11行記錄 -- SELECT * FROM IBBC.dbo.Table_1 AS t WHERE IDD BETWEEN 108 AND 111 SELECT TOP 4 * FROM IBBC.dbo.Table_1 AS t WHERE t.IDD NOT IN (SELECT TOP 7 IDD FROM ibbc.dbo.Table_1 ORDER BY ibbc.dbo.Table_1.IDD) --判断表是否存在 IF exists(select * from dbo.sysobjects where id = object_id(N‘[dbo].[Table_22]‘)) --判断表栏位是否存在 IF EXISTS (select * from syscolumns where id=object_id(‘Table_1‘) and name=‘IDD‘) --判断存储过程是否存在 If exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[test]‘)) --判断视图是否存在 if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[v_test]‘))
5、常见的表操作
--增加栏位 ALTER TABLE IBBC.dbo.Table_1 ADD YYY CHAR(5) --删除栏位 ALTER TABLE IBBC.dbo.Table_1 DROP COLUMN YYY --更改栏位类型型 ALTER TABLE IBBC.dbo.Table_1 ALTER COLUMN b_id INT NOT NULL --指定栏位添加描述 exec sp_addextendedproperty N‘MS_Description‘, N‘我是描述信息‘, N‘user‘, N‘dbo‘, N‘table‘, N‘Table_1‘, N‘column‘, N‘YYY‘ --添加主键 ALTER TABLE IBBC.dbo.Table_2 ADD CONSTRAINT test_main PRIMARY KEY(b_id) --删除主键 ALTER TABLE IBBC.dbo.Table_2 DROP CONSTRAINT test_main --添加外键 alter table IBBC.dbo.Table_1 add constraint test_foreign foreign key(bas_id) references IBBC.dbo.Table_2(b_id) --删除外键 ALTER TABLE IBBC.dbo.Table_1 DROP CONSTRAINT test_foreign
标签:数据库连接 esc 解决方案 关系 连接 constrain script 外键 exists
原文地址:http://www.cnblogs.com/Sientuo/p/6245826.html