oracle联合主键怎么写
1.Oracle中怎么设置联合主键
建表时候设置
CREATE TABLE TAB
ID1 NUMBER(10)
ID2 NUMBER(4),
CREDIT NUMBER(2),
CONSTRAINT PK_TAB PRIMARY KEY (ID1,ID2) -- 主键
或者建表之后追加
alter table tab add constraint pk_tab2 primary key (id1,id2);
甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。
1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。
2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。 2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
2.oracle联合主键怎么简历查询
Oracle数据库表的联合查询包括交叉联合、等值联合和不等值联合、内部联合与外部联合:
1、交叉联合:
使你对于“联合”的概念开始产生最直观的印象,因为交叉联合的结果就是两个表的笛卡尔积。
code example:select * from T1, T2;
假如表1有2条记录,表2有3条记录,那么查询结果就是2*3=6条记录。
2、等值联合与不等值联合:
等值联合:只显示表1中的数据,以及表2中的、存在于表1中的数据。顾名思义,查询条件/表达式中以等号(“=”)连接。
code example:
1 select T1.sectionA, T1.sectionB, T2.sectionC from T1, T2
2 whereT1.sectionA =T2.sectionA (and 。);
不等值联合:与等值联合查询类似,只不过在where子句中使用除等号以外的比较符连接,此处不以例详述。
3、内部联合与外部联合
内部联合:产生的结果行数取决于参加联合的行数,也就是说内部联合的行数取决于 WHERE 子句的结果。
code example:
1 SELECT P.PARTNUM, P.DESCRIPTION, P.PRICE, O.NAME, O.PARTNUM
2 FROM PART P JOINORDERS OONORDERS.PARTNUM =54;
在这里你使用的语法中的 JOIN ON 不是 ANSI 标准中所指定的,而是我们所使用的解释器的附加语法,你可以用它来指明是内部联合还是外部联合,大多数解释器对些都进行了类似的扩充,注意这种类型的联合没有 WHERE 子句。
4、表的自我联合:
由于联合查询也常被译为“连接”,因此在有些资料中看到的“自连接”查询指的也是这个概念。它并无特别之处,是指表1与表2均为同一表名。其用处在于检查表中数据的一致性。
比如T1表中两条记录的sectionA字段是同值的,这可能是由于数据录入错误造成的,如果按正常数据使用它,可能造成不可预料的灾难。
code example:
1 SELECT F.PARTNUM, F.DESCRIPTION, S.PARTNUM, S.DESCRIPTION
2 FROM PART F, PART S
3 WHEREF.PARTNUM =S.PARTNUM
4 AND F.DESCRIPTION S.DESCRIPTION
如果不存在上述异常数据,那么查询结果应该为空;否则1条异常记录对应两条查询结果。可以此来检查数据的一致性。
3.Oracle中复合主键怎么写
创建成绩表T_GRADE,并把学号S_ID+课程编号C_ID设为复合主键。
Create Table T_GRADE( --学生成绩表
S_ID Number(8), --学生编号
C_ID number(4), --课程编码
G_PS varchar2(6), --平时成绩
G_KS varchar2(6), --考试成绩
Constraint Grade_pk Primary Key (S_ID,C_ID)); --表级复合主键
可以设置复合外键。设置方法与复合主键一样,Primary Key(。) 换成
FOREIGN KEY(。) REFERENCES 主表(。)
或 ALTER TABLE 表 ADD CONSTRAINT 外键名
FOREIGN KEY(复合外键) REFERENCES 主表(主键|唯一键);
联合主键的查询语句怎么写
1.联合主键,SQL语句怎么写
建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
1.在数据库提供的GUI环境中建立(以SQL7为例)。
输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3字段名N )建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null字段名3字段名N)GOALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED([字段名1],
2.联合主键,SQL语句怎么写
建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
1.在数据库提供的GUI环境中建立(以SQL7为例)。
输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3字段名N )建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null字段名3字段名N)GOALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED([字段名1],
3.数据库中复合主键如何查询,sql 语句如何写
zwb12340 说的就是错的
首先来说一下你的这两种写法
1.这一个比较快,其实这是把两个SQL 拼接成1个SQL,但是在拼接的时候使用了UNION ,这个过程会排序去重复,这一点上会影响性能。可以把UNION 改成UNION ALL,UNION ALL不会排序去重,可能效率会更好一点
2.这一个不会太快,因为使用in的话,默认是不使用索引的,那么这一个过程会全表扫描,那么就很慢了(我这里说的索引是默认的B+树索引,是自动屏蔽的,如果是BITMAP索引的话,是会使用的),
对于你这个问题的解决,我给以下几个意见
1.首先把UNION改成UNION ALL试一试,看效率怎么样
2.检查是否在product上有没有索引,尽量建一个索引
3.如果以上两个改进之后,还没效果的话,可以在这个表上,基于product建立分区表,使用分区表的话,那么效果会比较明显
4.hibernate 联合主键怎么做查询
联合主键时,先做一个联合主键类:
import java.io.Serializable;
public class NamePK implements Serializable{
//主键类private static final long serialVersionUID = 8313037022835155821L;
private String firstName;
private String lastName;
// getter/setter方法略。你的实体类,假设是UserInfo,就这么写了:
public class UserInfo {
private NamePK namePk;
private String sex;
private int age;
// getter/setter方法略。
}配置映射文件UserInfo.hbm.xml的关键部分应该这么写:
<composite-id name="namePk">
<key-property name="firstName" column="first_name" length="12"/>
<key-property name="lastName" column="last_name" length="12"/>
</composite-id>
然后,查询时就对上面的类对象进行赋值,然后用session的get, load方法查:
NamePK namePk = new NamePK();
namePk.setFirstName("Zhang");
namePk.setLastName("san");
UserInfo ui = (UserInfo) session.get(UserInfo.class, namePk);
System.out.println(ui.getAge());
System.out.println(ui.getSex());
转载请注明出处育才学习网 » 数据库联合主键怎么写
育才学习网