贴一下SQL的笔记

来源:互联网 发布:小火箭翻墙软件 编辑:程序博客网 时间:2024/04/28 14:34

1

CREATETABLE orders(price MONEY DEFAULT $38.00,

quantityINT DEFAULT 50,

entrydateDATETIME DEFAULT GETDATE())


缺省值为日期时间 defaultgetdate()



2

清除表中的所有数据但不删除这个表,使用TRUNCATE TABLE语句




3

ALTERTABLE mytable ADD mynewcolumn INT NULL

这个语句向表mytable中增加了一个新字段mynewcolumn。当你增加新字段时,你必须允许它接受空值

,因为表中原来可能已经有了许多记录。


4

CREATECLUSTERED INDEX mycolumn_clust_index ONmytable(mycolumn)

clusteredindex 聚簇索引

index 非聚簇索引



CREATECLUSTERED INDEX mycolumn_cindex ONmytable(mycolumn)

WITHALLOW_DUP_ROW

这个语句建立了一个允许重复记录的聚簇索引。


CREATEUNIQUE COUSTERED INDEX myclumn_cindex ONmytable(mycolumn)

这是你将经常使用的索引建立语句。无论何时,只要可以,你应该尽量对一个对一个表建立唯一聚簇

索引来增强查询操作。



CREATEINDEX name_index ON username(firstname,lastname)

这个例子对两个字段建立了单个索引。在一个复合索引中,你最多可以对16个字段进行索引。



5

select 是不选择重复项 用 DISTINCT



6

函数

count()avg() sum() min() max()


7

SELECTCONVERT(CHAR(8),price)+’US Dollars’ FROM orders

函数CONVERT()带有两个变量。第一个变量指定了数据类型和长度。第二个变量指定了要进行转换的

字段。在这个例子中,字段price被转换成长度为8个字符的CHAR型字段。字段price要被转换成字符型

,才可以在它后面连接上字符串USDollars’


8

通配符

%多个字符

[a-z] 表示a-z之间的单个字符

[abc] 表示abc中的单个字符

[C-FY] 表示c-f之间或者y的单个字符

脱字符(^)来排除特定的字符


#_ 表示"_"#为转义符


9、范式

实体:现实世界中客观存在并可以被区别的事物。比如一个学生一本书一门课等等。值得强调的是这里所说的事物不仅仅是看得见摸得着的东西,它也可以是虚拟的,不如说老师与学校的关系

 

属性:教科书上解释为:实体所具有的某一特性,由此可见,属性一开始是个逻辑概念,比如说,性别的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是表的一

 

元组:表中的一行就是一个元组。

 

分量:元组的某个属性值。在一个关系数据库中,它是一个操作原子,即关系数据库在做任何操作的时候,属性是不可分的。否则就不是关系数据库了。

 

码:表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码。

 

全码:如果一个码包含了所有的属性,这个码就是全码。

 

主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。

 

非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。

 

外码:一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。


第一范式(1NF):属性不可分。

第二范式(2NF):符合1NF,并且,非主属性完全依赖于码。

--找出码,然后所有非主属性都完全依赖于码。把部分依赖于码的关系独立出来一个表。

第三范式(3NF):符合2NF,并且,消除传递依赖

--把非主属性之间的依赖关系独立出来一个表。

BC范式(BCNF):符合3NF,并且,主属性不依赖于主属性,即只有一个码




10

升序ASC 降序DESC



11

前几行记录 TOPn

selecttop 3 * from testDB --选择前3行数据


12

SELECT语句中WHEREGROUPBYHAVING子句和统计函数的执行次序如下:WHERE子句从数据源中去

掉不符合

其搜索条件的数据行;GROUPBY 子句搜集数据行到各个组中;统计函数为各个组计算统计值;HAVING

子句去掉不符合共组搜索条件的各组数据行。



13


内部链接 连接的结果是从两个或两个以上的表的组合中挑选出符合连接条件的数据,如果数据无法满足连接条件则将其丢弃。通常称这种方法为内部连接(InnerJoin)。在内部连接中,参与连接的表的地位是平等的。



select a.a1b.b1 from a join b on a.a2=b.b2

与内部连接相对的方式称为外部连接(OuterJoin)。在外部连接中,参与连接的表有主从之分,以主表的每行数据去匹配从表的数据列,符合连接条件的数据将直接返回到结果集中,对那些不符合连接条件的列,将被填上NULL 值后再返回到结果集中(对BIT 类型的列,由于BIT 数据类型不允许NULL 值,因此将会被填上0 值再返回到结果中)。

外部连接分为左外部连接(Left OuterJoin)和右外部连接(Right OuterJoin)两种。以主表所在的方向区分外部连接,主表在左边,则称为左外部连接,主表在右边,则称为右外部连接。



0 0
原创粉丝点击