一、SQL CREATE INDEX 语句概述CREATE INDEX 语句的主要作用是在数据库表中创建索引,通过创建索引可以提高数据查询的速度。...二、SQL CREATE INDEX 语法及示例以下是在表上创建一个简单索引(允许使用重复的值)的基本语法形式:收起sql复制CREATE INDEX index_name ON table_name...(column_name);其中:CREATE INDEX:这是创建索引的关键字指令。...收起sql复制CREATE INDEX idx_last_name ON employees (last_name);在上述代码中,我们创建了一个名为 “idx_last_name” 的索引,它基于 “...假设还是前面的 “employees” 表,我们可以这样创建复合索引:收起sql复制CREATE INDEX idx_department_last_name ON employees (department
SQL命令 CREATE QUERY 创建Query 大纲 CREATE QUERY queryname(parameter_list) [characteristics] [ LANGUAGE...SQL ] BEGIN code_body ; END CREATE QUERY queryname(parameter_list) [characteristics] LANGUAGE...CREATE QUERY创建的查询可能作为存储过程公开,也可能不作为存储过程公开。 要创建公开为存储过程的查询,必须指定procedure关键字作为其特征之一。...还可以使用CREATE PROCEDURE语句创建作为存储过程公开的查询。 为了创建查询,必须拥有%CREATE_QUERY管理权限,如GRANT命令所指定的。...它不声明任何参数,设置SELECTMODE特征,并采用默认语言(SQL): ClassMethod CreateQuery() { &sql( CREATE QUERY DocTestPersonState
大纲 CREATE USER user-name IDENTIFY BY password CREATE USER user-name IDENTIFIED BY password 参数 user-name...描述 CREATE USER命令使用指定的密码创建用户帐户。 用户名可以是最多160个字符的任何有效标识符。用户名必须遵循标识符命名约定。用户名可以包含Unicode字符。用户名不区分大小写。...要创建角色,请使用CREATE ROLE命令。 如果调用CREATE USER来创建已经存在的用户,SQL会发出SQLCODE-118错误,并显示%msg值“名为‘name’的用户已存在”。...权限 CREATE USER命令是特权操作。在嵌入式SQL中使用CREATE USER之前,必须以具有适当权限的用户身份登录。否则将导致SQLCODE-99错误(特权冲突)。...("BillTest") if x = 0 { &sql( CREATE USER BillTest IDENTIFY BY Carl4SHK
SQL命令 CREATE ROLE 创建角色 大纲 CREATE ROLE role-name 参数 role-name - 要创建的角色的名称,它是一个标识符。角色名称不区分大小写。...如果调用CREATE ROLE来创建已经存在的角色,SQL会发出SQLCODE-118错误。...权限 CREATE ROLE命令是特权操作。在嵌入式SQL中使用CREATE ROLE之前,需要以具有%Admin_Secure:USE权限的用户身份登录。...第二个示例中的用户“_system”确实拥有CREATE ROLE权限。...ClassMethod CreateRole() { d $SYSTEM.Security.Login("yao","YaoPassword") &sql( CREATE
ROW_NUMBER() OVER()函数用来为每条记录返回一个行号,可以用来对记录进行排序并返回该序号,序号从1开始排序。...这里的over()是聚集函数,可以给记录进行分组、排序;row_number()不能单独使用,必须搭配over()才能使用,否则会报错。...简单地返回的行号 1 2 给student的每条记录进行排序并返回序号 select *, row_number() over() from student; num class name row_number...1000 1 小明 1 1001 2 小白 2 1002 2 小黑 3 给返回的行号起个别名 1 select *, row_number() over() rank from student;...1 1001 2 小白 2 1002 2 小黑 3 配合partition by/order by 1 2 给每个班的学生按照学号递减的顺序返回行号 select *, row_number() over
SQL命令 CREATE TABLE(二) 全局临时表 指定GLOBAL TEMPORARY关键字将表定义为全局临时表。表定义是全局的(对所有进程都可用);表数据是临时的(在进程期间持续存在)。...可以使用INFORMATION.SCHEMA.TABLES或INFORMATION.SCHEMA.COLUMNS的DESCRIPTION属性显示%DESCRIPTION文本。...例如: SELECT COLUMN_NAME,DESCRIPTION FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='MyTable' SQL提供了一个...仅支持兼容性选项 SQL仅接受以下CREATE TABLE选项用于解析,以帮助将现有SQL代码转换为 SQL。 这些选项不提供任何实际的功能。...通常, SQL(如CREATE TABLE命令)指定数据类型。
示例 下面的示例使用带有SQL代码的Create方法在Sample.Employee类中生成UpdateSalary方法: CREATE METHOD UpdateSalary ( IN SSN VARCHAR...CREATE METHOD RandomLetter() RETURNS INTEGER PROCEDURE LANGUAGE OBJECTSCRIPT { :Top SET x=$RANDOM(91...示例使用带有ObjectScript代码的Create方法在SQLUser.MyStudents类中生成方法TraineeTitle,并返回一个Title值: ClassMethod CreateMethod...() { &sql( CREATE METHOD TraineeTitle ( IN SSN VARCHAR(11),...在ObjectScript代码中有嵌入式SQL代码,用&sql标记,用括号括起来。
() { d $SYSTEM.Security.Login("_SYSTEM","SYS") &sql(DROP TABLE Sample.MyTest) &sql(DROP VIEW...Sample.MyTestView) CreateTable &sql(CREATE TABLE Sample.MyTest ( TestNum...,"创建表" } else { w "创建表错误 SQLCODE=",SQLCODE } CreateView &sql( CREATE VIEW...(DROP TABLE Sample.MyTest) &sql(DROP VIEW Sample.MyTestView) CreateTable &sql( CREATE...,"创建表" } else { w "创建表错误 SQLCODE=",SQLCODE } CreateView &sql( CREATE VIEW
SQL命令 CREATE TABLE(六) WITH子句,%CLASSPARAMETER关键字,STORAGETYPE关键字 可选的WITH子句可以在表格元素逗号结尾的圆括号之后和Shard Key定义...定义分片表的CREATE TABLE不能定义DEFAULTGLOBAL、DSINTERVAL、DSTIME或VERSIONPROPERTY类参数。...示例:动态SQL和嵌入式SQL 下面的示例演示了使用动态SQL和嵌入式SQL创建表。...注意,在动态SQL中,可以在同一个程序中创建一个表并将数据插入到表中; 在嵌入式SQL中,必须使用单独的程序来创建表并将数据插入到表中。 最后一个程序示例删除表,以便可以重复运行这些示例。...} } 以下嵌入式 SQL 示例创建表 SQLUser.MyStudents: ClassMethod CreateTable8() { &sql(CREATE TABLE SQLUser.MyStudents
用户必须具有%CREATE_VIEW管理权限才能执行CREATE VIEW。否则将导致%msg用户‘name’没有%CREATE_VIEW权限的SQLCODE-99错误。...,0,.oldval); 要确定当前设置,调用$SYSTEM.SQL.CurrentSettings()方法,该方法显示启用SQL安全的设置。...要确定当前设置,调用$SYSTEM.SQL.CurrentSettings(),它为现有的表或视图设置显示一个Allow DDL CREATE TABLE或CREATE VIEW。...这与先执行DROP VIEW,然后执行CREATE VIEW非常相似。 注意,此设置同时影响CREATE VIEW和CREATE TABLE。...&sql( CREATE VIEW MyView (vname,vstate) AS SELECT t1.name,t1.home_state
要确定当前设置,请调用$SYSTEM.SQL.CurrentSettings()方法,该方法显示a Do classes created by a DDL CREATE TABLE statement...如果在创建位图索引后,对自动定义位图范围索引的表调用CREATE BITMAPEXTENT INDEX,则先前定义的位图范围索引将重命名为CREATE BITMAPEXTENT INDEX语句指定的名称...CreateTable5() { d $SYSTEM.Security.Login("_SYSTEM","SYS") &sql( CREATE TABLE Employee...定义主键有三种语法形式: CREATE TABLE MyTable (Field1 INT PRIMARY KEY, Field2 INT) CREATE TABLE MyTable (Field1...例如,下面的CREATE TABLE语句: CREATE TABLE MyTable (f1 VARCHAR(16), CONSTRAINT MyTablePK PRIMARY KEY (f1)) 创建主键
SQL命令 CREATE INDEX(二) UNIQUE关键字 使用UNIQUE关键字,可以指定索引中的每条记录都有一个唯一的值。...如果Sample.Patient已具有%%DDLBEIndex位图区索引,则此示例将该索引重命名为SQL MapName Patient: &sql(CREATE BITMAPEXTENT INDEX...ClassMethod CreateIndex() { &sql( CREATE TABLE Fred ( TESTNUM INT...,"SQL表创建错误代码: ",SQLCODE q } &sql( CREATE INDEX Fred_Index ON TABLE Fred...,"SQL索引创建错误代码是: ",SQLCODE q } } 下面的示例在Staff表的City字段上创建了一个名为“CityIndex”的索引: CREATE INDEX
SQL命令 CREATE METHOD(一) 在类中创建方法。...大纲 CREATE [STATIC] METHOD name (parameter_list) [ characteristics ] [ LANGUAGE SQL ] BEGIN...LANGUAGE OBJECTSCRIPT ,LANGUAGE SQL - 可选—用于代码体的编程语言。指定语言对象脚本(对于对象脚本)或语言SQL。...描述 CREATE METHOD语句创建一个类方法。 这个类方法可能是存储过程,也可能不是。 要在公开为SQL存储过程的类中创建方法,必须指定procedure关键字。...默认情况下,CREATE METHOD不会创建一个同时也是存储程序的方法; CREATE PROCEDURE语句总是创建一个同时也是存储过程的方法。
此引用的最简单形式如下例所示,其中外键显式引用Customers表中的主键字段CustID: CREATE TABLE Orders ( OrderID INT UNIQUE NOT NULL,...如果通过动态SQL或xDBC执行CREATE TABLE,则需要REFERENCES权限。 指称动作子句 如果一个表包含外键,对一个表的更改会对另一个表产生影响。...相反,当DELETE或UPDATE操作遇到这些相互矛盾的外键定义时, SQL会发出错误。 下面是一个嵌入式SQL示例,它发出一条使用两个引用动作子句的CREATE TABLE语句。...ClassMethod CreateTable6() { d $SYSTEM.Security.Login("_SYSTEM","SYS") &sql( CREATE TABLE...SQL查询处理器可以使用外键来优化表之间的联接。但是,如果将外键定义为NOCHECK,则SQL查询处理器不会将其视为已定义的外键。NOCHECK外键仍然作为外键报告给xDBC目录查询。
SQL命令 CREATE INDEX(一) 为表创建索引。...仅支持兼容性选项 SQL仅接受以下``CREATE INDEX选项用于解析目的,以帮助将现有SQL代码转换为 SQL。 这些选项不提供任何实际的功能。...管理门户SQL接口Catalog Details显示每个索引的SQL索引名称(SQL Map name)和相应的索引属性名称(index name)。...要确定当前设置,调用$SYSTEM.SQL.CurrentSettings(),它为现有索引设置显示一个Allow DDL CREATE INDEX for existing index。...SQL示例如下: CREATE INDEX HistIdx ON TABLE Sample.Person (MedicalHistory) AS %iFind.Index.Basic (LANGUAGE
CREATE语句 CREATE语句在SQL语言中是非常重要的一环。要知道SQL语法基本划分为四大类:增、删、改、查。...CREATE语句的用法是非常多的,可以用来创建数据库,可以用来创建表,可以用来创建视图,也可以用来创建一些临时表用来计算使用等等。...基础语法 创建数据库: CREATE DATABASE 数据库名称 创建表: CREATE TABLE 表名称 ( 列名1 数据类型, 列名2 数据类型, 列名3 数据类型, .... ) 创建视图:...CREATE VIEW 视图名 AS SELECT 列(*) FROM 表名称 WHERE 筛选条件 创建临时表: CREATE TABLE 临时表名称 ( 列1 数据类型, 列2 数据类型,........CREATE DATABASE Backup_TPT [1240] 结果返回如下: [1240] 从结果上看失败了,但是我们返回SQL数据库查看如下: [1240] 已经创建成功。
SQL过程调用现有的例程; 不能在CREATE PROCEDURE语句中用这些语言编写代码。 这些语言中的存储过程库存储在IRIS外部,因此不必在IRIS内打包、导入或编译。...它没有声明任何参数,并接受特征和语言的默认值: ClassMethod CreateProcedure() { &sql( CREATE PROCEDURE PersonStateSP...它使用CREATE PROCEDURE在Sample.Employee类中生成方法UpdateSalary: CREATE PROCEDURE UpdateSalary ( IN SSN VARCHAR...PROCEDURE示例使用ObjectScript调用%SQL.Statement结果集类: CREATE PROCEDURE Sample_Employee.GetTitle( INOUT...下面的示例将CREATE PROCEDURE与调用嵌入式SQL的ObjectScript代码一起使用。
SQL命令 CREATE TABLE(三) 字段数据约束 数据约束控制字段允许使用的值、字段的默认值以及数据值使用的排序规则类型。所有这些数据约束都是可选的。...DEFAULT函数在准备/编译CREATE TABLE语句时(而不是在执行语句时)使用有效的时间精度设置。...CREATE TABLE mytest ( TestId INT NOT NULL, CREATE_DATE DATE DEFAULT CURRENT_TIMESTAMP(2),...在ObjectScript代码中,可以使用大括号分隔符指定SQL字段名称。ObjectScript代码可以由多行代码组成。它可以包含嵌入式SQL。...计算机代码中的嵌入式SQL被自动编译并以逻辑模式运行。 以下示例定义了Birthday COMPUTECODE字段。
如果语言是SQL, CREATE TRIGGER语句可以选择包含引用子句、WHEN子句和/或UPDATE OF子句。...带有LANGUAGE OBJECTSCRIPT的CREATE TRIGGER语句不能包含这些子句。 SQL触发器代码作为嵌入式SQL执行。...,"SQL触发器代码为: ",SQLCODE } 以下示例演示了使用SQL INSERT触发器的CREATE TRIGGER。第一个嵌入式SQL程序创建表、该表的插入触发器和日志表以供触发器使用。...,"SQL表编码为: ",SQLCODE &sql( CREATE TABLE TestDummyLog ( entry CHAR (60...,"SQL日志表编码为: ",SQLCODE &sql( CREATE TRIGGER TrigTestDummy AFTER INSERT ON TestDummy
如果省略LANGUAGE子句,则默认为SQL。在这些子句之后,指定一行或多行SQL触发器代码或ObjectScript触发器代码,指定在执行触发器时要执行的操作。...权限和锁 CREATE TRIGGER命令是特权操作。用户必须具有%CREATE_TRIGGER管理权限才能执行CREATE TRIGGER。...定义触发器的其他方式 可以将SQL触发器定义为类对象,如触发器定义中所述。...这个选项定义了一个统一触发器,之所以这么叫,是因为它是由通过SQL或对象访问发生的数据更改触发的。...一个可选的LANGUAGE子句,可以是LANGUAGE SQL或LANGUAGE OBJECTSCRIPT。 默认为LANGUAGE SQL。 在触发器执行时执行的用户编写的代码。
领取专属 10元无门槛券
手把手带您无忧上云