长度:可选项 。指定使用列前的 length 个字符来创建索引 。使用列的一部分创建索引有利于减小索引文件的大小,节省索引列所占的空间 。在某些情况下,只能对列的前缀进行索引 。索引列的长度有一个最大上限 255 个字节(MyISAM 和 InnoDB 表的最大上限为 1000 个字节),如果索引列的长度超过了这个上限 , 就只能用列的前缀进行索引 。另外,BLOB 或 TEXT 类型的列也必须使用前缀索引 。
ASC|DESC:可选项 。ASC指定索引按照升序来排列,DESC指定索引按照降序来排列 , 默认为ASC 。
2) 使用 CREATE TABLE 语句
索引也可以在创建表(CREATE TABLE)的同时创建 。在 CREATE TABLE 语句中添加以下语句 。语法格式:
CONSTRAINT PRIMARY KEY [索引类型] (列名,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的主键 。
语法格式:
KEY | INDEX [索引名] [索引类型] (列名,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的索引 。
语法格式:
UNIQUE [ INDEX | KEY] [索引名] [索引类型] (列名,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的唯一性索引 。
语法格式:
FOREIGN KEY 索引名 列名
在 CREATE TABLE 语句中添加此语句 , 表示在创建新表的同时创建该表的外键 。
在使用 CREATE TABLE 语句定义列选项的时候,可以通过直接在某个列定义后面添加 PRIMARY KEY 的方式创建主键 。而当主键是由多个列组成的多列索引时,则不能使用这种方法 , 只能用在语句的最后加上一个 PRIMARY KRY(列名 , …) 子句的方式来实现 。
在MySQL中如何创建一个带输出参数为一个表类型的存储过程在MySQL中如何创建一个带输出参数为一个表类型的存储过程
首先需要知道“另一个存储过程”的结果集的所有列的类型 。
假设“另一个存储过程”的名字是sp1,没有参数,返回的结果集共3列,全部为int型,那么“存储过程”里添加一个与结果集列数相同的临时表或表变量用于接收“另一个存储过程”的结果集
如下
CREATE
PROCEDURE
sp2
AS
DECLARE
@t
table(a
int,b
int,c
int)
INSERT
INTO
@t(a,b,c)
EXEC
sp1
SELECT
*
FROM
@t
使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用 。
创建存储过程
和数据表一样,在使用之前需要创建存储过程,它的简明语法是:
引用:
Create
PROC
存储过程名称
[参数列表(多个以“,”分隔)]
AS
SQL
语句
例:
引用:
Create
PROC
upGetUserName
@intUserId
INT,
@ostrUserName
NVARCHAR(20)
OUTPUT
--
要输出的参数
AS
BEGIN
--
将uName的值赋给
@ostrUserName
变量 , 即要输出的参数
Select
@ostrUserName=uName
FROM
uUser
Where
uId=@intUserId
END
其中
Create
PROC
语句(完整语句为Create
PROCEDURE)的意思就是告诉SQL
SERVER,现在需要建立一个存储过程,upGetUserName
就是存储过程名称,@intUserId
和
@ostrUserName
分别是该存储过程的两个参数,注意,在SQL
SERVER中,所有用户定义的变量都以“@”开头 , OUTPUT关键字表示这个参数是用来输出的,AS之后就是存储过程内容了 。只要将以上代码在“查询分析器”里执行一次 , SQL
推荐阅读
- a350飞行游戏,a350飞行视频
- postgresql转date的简单介绍
- 国外连R星服务器,steam连接r星服务器
- 直播配饰工具有哪些类目,直播配件有哪些
- php避免重复数据库查询 php防止订单重复处理
- 海信电视怎么扫描u盘,海信电视怎么扫描u盘文件
- 阿里云服务器退款流程,阿里云服务器退货
- 服务器部署工具,服务器部署是谁的工作
- 水文数据管理gis图,gis数据管理工具英文