数据索引及函数

一、索引

(1)、簇索引

建主键时建成的索引

(2)、非簇索引

可以设置多个,最多249个

创建索引命令格式:

CREATE [UNIQUE] [CLUSERED] [NONCLUSTERED] INDEX index_name   --UNIQUE 唯一索引 CLUSERED 簇索引 NONCLUSTERED 普通索引

   ON table (column[ ASC | DESC ])

二、视图

操作:

视图——>右键新建——>在最下边的框中输入SQL语句执行——>保存

可以像表一样使用、操作视图

例:1、将select xinxi.Code,xinxi.Name ,minzu.name ,xinxi.Sex,xinxi.Birthday from xinxi join minzu on xinxi.Code=minzu.Code  这条语句在视图中执行得

2、保存,输入一个新名XueSheng

3、然后,XueSheng相当于一个新表一样,可以查询,可以进行和其他的表一样的操作。

  

三、函数

1、LEN  (判断字符串的长度)

格式:

LEN(string expression)

2、LEFT 和 RIGHT   (截取)

LEFT:  左字符串函数

格式:LEFT(列名,个数) from 表名

RIGHT:  右字符串函数

格式:RIGHT(列名,个数) from 表名

3、LOWER和UPPER

格式:

LOWER(character_expression) : 将所有字母转换为小写字母

UPPER : 将所有字母转换为大写字母

4、DATEDIFF

功能:求两个日期之间的差值

格式:DATEDIFF(datepart,startdape,enddate)    --相当于enddate-startdape

例:检索学生年龄

SELECT  DATEDIFF(YEAR,CSRQ,GETDATE())AS AGE,CSRQ FROM  STUDENT

5、DAY、MONTH、YEAR

格式:DAY(data)

去指定日期的日 

格式:MONTH(data)

去指定日期的月

格式:YEAR(data)

去指定日期的年 

例:检索学生年龄

SELECT  YEAR(GETDATE()-YEAR(CSRQ))AS AGE,CSRQ FROM  STUDENT

6、数值函数

(1)、CEILING  天花板数  (返回大于或等于所给数字的最小整数)

          FLOOR  地板数  (返回小于或等于所给数字的最大整数) 

(2)、RAND

  返回0到1之间的随机float数

 (3)、CAST...AS函数     (类型转换)  --也可以用CONVERT

  格式:CAST(expression AS data_type)

例:BIRTHDAY=1997-8-28

CAST ( YEAR(BIRTHDAY) AS varchar(10) +'年'+MOUTH(BIRTHDAY) AS varchar(10) +'月'+DAY(BIRTHDAY) AS varchar(10) +'日') 

执行完后日期变为:1997年8月28日

存储过程

操作:打开表所在的数据库——>打开可编程性(看到存储过程)——>在存储过程上右击新建——>从CREATE PROCEDURE开始写程序 

1、创建

CREATE PROCEDURE  函数名            

  ...... (相当于函数的形参)......                  --格式: @变量名   变量类型

AS

BEGIN

    .....函数体...

END

2、调用

存储过程名  '.... ','...插入内容...','......',......           --插入的内容与上边格式里的形参一一对应

3、存储过程的类型:

(1)、无参数

(2)、带参数

(3)、指定参数默认值

(4)、使用输出参数:

程序代码:

执行语句:

输出结果为:5

4、动态查询:

程序代码:做一个分页的程序

执行语句:

 执行结果:

例:现有FRUIT、Login、OrderDetails三个表

要求写一个购物车的存储过程:输入用户名、密码、水果代号、水果数量

1、如果用户名或密码不正确,输出'用户名或密码错误'

2、如果水果数量不足,显示'水果库存不足'

3、如果账户余额不足,显示'余额不足'

4、如果以上问题都没有,就向OrderDetails表中添加数据,其中OrderCode设成 '用户名+当前时间

表如下

FRUIT表:

Login表:

   '

OrderDetails表:

存储过程程序如下:

执行存储过程:

FRUIT表变为:

Login表变为:

OrderDetails表变为:

原文地址:https://www.cnblogs.com/dawasai/p/4217668.html