联合主键的查询语句怎么写

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);