精华内容
下载资源
问答
  • Access扫盲 怎么设置双主键

    千次阅读 2019-05-14 11:19:07
    选择多行后,在点击 工具菜单栏上的 主键

    选择多行后,在点击  工具菜单栏上的 主键 。

    展开全文
  • 并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点...主键的选取非常重要:主键不要带有业务含义,而应该使用BIGINT自增或者GUID类型。主键也不应该允许...
    点击蓝色字aa1e44f4be33d6a03a63851152d7feae.png免费订阅,每天收到这样的好信息

    前言:最近有不少粉丝关注本公众号。并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧。大家想买什么书扫描下方的加他拉你加群。最后,非常感谢大家的关注。

    f8a37c970d3ffe8991f8c897eaccc835.png

    ebdcfad52e809929f79904cc4f2ce702.gif

    干货: 主键是关系表中记录的唯一标识。主键的选取非常重要:主键不要带有业务含义,而应该使用BIGINT自增或者GUID类型。主键也不应该允许 NULL。可以使用多个列作为联合主键,但联合主键并不常用。
    关系数据库通过 外键可以实现一对多、多对多和一对一的关系。外键既可以通过数据库来约束,也可以不设置约束,仅依靠应用程序的逻辑来保证。
    通过对数据库表创建 索引,可以提高查询速度。通过创建唯一索引,可以保证某一列的值具有唯一性。数据库索引对于用户和应用程序来说都是透明的。

    一、SQL(Structured Query Language)

    数据模型:层次模型、网状模型、关系模型

    数据类型:

    0872baee29d4b56571a5f86d5a28e4d5.png

    关系型数据库:MYSQL

    非关系型数据库:NoSQL、MongoDB、Cassandra、Dynamo

    主流关系数据库:

    • 商用数据库,例如:Oracle,SQL Server,DB2等;

    • 开源数据库,例如:MySQL,PostgreSQL等;

    • 桌面数据库,以微软Access为代表,适合桌面应用程序使用;

    • 嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。

    SQL语言定义了三种操作数据库的能力:

    • DDL: Data Definition Language
      DDL允许用户定义数据,即创建表、删除表、修改表结构这些操作。通常,DDL由数据库管理员执行

    • DML: Data Manipulation Language
      DML为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。

    • DQL: Data Query Language
      DQL允许用户查询数据,这也是通常最频繁的数据库日常操作。

    语法特点:SQL语言关键字不区分大小写,但是,针对不同的数据库,对于表名和列名,有的数据库区分大小写,有的数据库不区分大小写。同一个数据库,有的在Linux上区分大小写,有的在Windows上不区分大小写。

    二、关系模型

    关系数据库是建立在关系模型上的,而关系模型本质上是若干个存储数据的二维表,可以把它们看做很多Excel表。

    表的每一行称为记录(Record),记录是一个逻辑意义上的数据;

    表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段。

    字段定义了数据类型(整型、浮点型、字符串、日期等),以及是否允许为NULL。注意NULL表示字段数据不存在。一个整型字段如果为NULL不表示它的值为0,同样的,一个字符串型字段为NULL也不表示它的值为空串''

    和Excel表有所不同的是,关系数据库的表和表之间需要建立“一对多”,“多对一”和“一对一”的关系,这样才能够按照应用程序的逻辑来组织和存储数据。

    1.主键

    对于关系表,有个很重要的约束,就是任意两条记录不能重复。不能重复不是指两条记录不完全相同,而是指能够通过某个字段唯一区分出不同的记录,这个字段被称为主键

    选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。

    因此,身份证号、手机号、邮箱地址这些看上去可以唯一的字段,均不可用作主键。

    作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。常见的可作为id字段的类型有:

    • 自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键;

    • 全局唯一GUID类型:使用一种全局唯一的字符串作为主键,类似8f55d96b-8acc-4636-8cb8-76bf8abc2f57。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。

    对于大部分应用来说,通常自增类型的主键就能满足需求。我们在students表中定义的主键也是BIGINT NOT NULL AUTO_INCREMENT类型。

    如果使用INT自增类型,那么当一张表的记录数超过2147483647(约21亿)时,会达到上限而出错。使用BIGINT自增类型则可以最多约922亿亿条记录。

    联合主键

    关系数据库实际上还允许通过多个字段唯一标识记录,即两个或更多的字段都设置为主键,这种主键被称为联合主键。

    对于联合主键,允许一列有重复,只要不是所有主键列都重复即可:

    id_numid_typeother columns…1A…2B…3B…

    如果我们把上述表的id_numid_type这两列作为联合主键,那么上面的3条记录都是允许的,因为没有两列主键组合起来是相同的。

    没有必要的情况下,我们尽量不使用联合主键,因为它给关系表带来了复杂度的上升。

    2.外键

    students表中,通过class_id的字段,可以把数据与另一张表关联起来,这种列称为外键

    创建外键

    外键并不是通过列名实现的,而是通过定义外键约束实现的:

    ALTER TABLE students
    ADD CONSTRAINT fk_class_id
    FOREIGN KEY (class_id)
    REFERENCES classes (id);

    其中,外键约束的名称fk_class_id可以任意,FOREIGN KEY (class_id)指定了class_id作为外键,REFERENCES classes (id)指定了这个外键将关联到classes表的id列(即classes表的主键)。

    通过定义外键约束,关系数据库可以保证无法插入无效的数据。即如果classes表不存在id=99的记录,students表就无法插入class_id=99的记录。

    由于外键约束会降低数据库的性能,大部分互联网应用程序为了追求速度,并不设置外键约束,而是仅靠应用程序自身来保证逻辑的正确性。这种情况下,class_id仅仅是一个普通的列,只是它起到了外键的作用而已。

    删除外键

    ALTER TABLE students
    DROP FOREIGN KEY fk_class_id;

    注意:删除外键约束并没有删除外键这一列。删除列是通过DROP COLUMN ...实现的。

    多对多

    通过一个表的外键关联到另一个表,我们可以定义出一对多关系。有些时候,还需要定义“多对多”关系。例如,一个老师可以对应多个班级,一个班级也可以对应多个老师,因此,班级表和老师表存在多对多关系。

    多对多关系实际上是通过两个一对多关系实现的,即通过一个中间表,关联两个一对多关系,就形成了多对多关系。

    一对一

    一对一关系是指,一个表的记录对应到另一个表的唯一一个记录。

    例如,students表的每个学生可以有自己的联系方式,如果把联系方式存入另一个表contacts,我们就可以得到一个“一对一”关系:

    idstudent_idmobile11135xxxx630022138xxxx220935139xxxx8086

    那为啥不给students表增加一个mobile列,这样就能合二为一了?

    如果业务允许,完全可以把两个表合为一个表。但是,有些时候,如果某个学生没有手机号,那么,contacts表就不存在对应的记录。实际上,一对一关系准确地说,是contacts表一对一对应students表。

    还有一些应用会把一个大表拆成两个一对一的表,目的是把经常读取和不经常读取的字段分开,以获得更高的性能。例如,把一个大的用户表分拆为用户基本信息表user_info和用户详细信息表user_profiles,大部分时候,只需要查询user_info表,并不需要查询user_profiles表,这样就提高了查询速度。

    3.索引

    例如:

    对于students表:

    idclass_idnamegenderscore11小明M9021小红F9531小军M88

    如果要经常根据score列进行查询,就可以对score列创建索引:

    ALTER TABLE students
    ADD INDEX idx_score (score);

    使用ADD INDEX idx_score (score)就创建了一个名称为idx_score,使用列score的索引。索引名称是任意的,索引如果有多列,可以在括号里依次写上,例如:

    ALTER TABLE students
    ADD INDEX idx_name_score (name, score);

    索引的效率取决于索引列的值是否散列,即该列的值如果越互不相同,那么索引效率越高。反过来,如果记录的列存在大量相同的值,例如gender列,大约一半的记录值是M,另一半是F,因此,对该列创建索引就没有意义。

    可以对一张表创建多个索引。索引的优点是提高了查询效率,缺点是在插入、更新和删除记录时,需要同时修改索引,因此,索引越多,插入、更新和删除记录的速度就越慢。

    对于主键,关系数据库会自动对其创建主键索引。使用主键索引的效率是最高的,因为主键会保证绝对唯一。

    唯一索引

    在设计关系数据表的时候,看上去唯一的列,例如身份证号、邮箱地址等,因为他们具有业务含义,因此不宜作为主键。

    但是,这些列根据业务要求,又具有唯一性约束:即不能出现两条记录存储了同一个身份证号。这个时候,就可以给该列添加一个唯一索引。例如,我们假设students表的name不能重复:

    ALTER TABLE students
    ADD UNIQUE INDEX uni_name (name);

    通过UNIQUE关键字我们就添加了一个唯一索引。

    也可以只对某一列添加一个唯一约束而不创建唯一索引:

    ALTER TABLE students
    ADD CONSTRAINT uni_name UNIQUE (name);
    136d092affd25f56bae0dd8165cd3a8f.png 打油诗 我不在乎我的作品文章是被现在的人读还是由子孙后代来读。既然上帝花了六千年来等一位观察者,我可以花上一个世纪来等待读者。 6c6fa4e0ee0bbb2e878863b458bc3c6a.png 

    永久激活方案~

    2020-07-29

    68535e2d0e57f4a3e6772308f5a8ed57.png

    spring 状态机

    2020-05-12

    0062d5d9ec2cd7886522aebc13932663.png

    mybatis用到的设计模式

    2020-07-02

    7d2a2c33319d6d6badc32ed10e25ee09.png

    jvm高级面试题(必须看)

    2020-07-23

    140d971fb98e7b2c6ff71a179e8c45c7.png

    MySQL索引实现原理分析

    2020-05-19

    ecf81565a2088392aeb785e383816511.png

    Spring中的用到的设计模式

    2020-04-23

    12521a54987e34902f999d4280851191.png

    Spring 和 SpringBoot 之间到底有啥区别?

    2020-05-29

    8ef4f4e971b9452779987f15573d73cb.png

    如何快速搭建一个免费的 鉴黄 平台

    2020-08-15

    7fe8cb1ffe1b2ee7622b9dbe6b9e663f.png

    美国也就那么回事吧

    2020-08-15

    ecfbc77780badd7dcccf001e73ded4e9.png

    5T的Java视频教程全部免费获取

    2020-08-14

    7d100d3d5cbf1e6c40ac8a6f5d34f3cb.png
    展开全文
  • 基于主键的映射策略:指一端的主键生成器使用 foreign 策略,表明根据”对方”的主键来生成自己的主键,自己并不能独立生成主键. <param> 子元素指定使用当前持久化类的哪个属性作为 “对方” 采用...

    一、基于主键的双向1对1
    1.介绍:

    • 基于主键的映射策略:指一端的主键生成器使用 foreign 策略,表明根据”对方”的主键来生成自己的主键,自己并不能独立生成主键. <param> 子元素指定使用当前持久化类的哪个属性作为 “对方”

    • 采用foreign主键生成器策略的一端增加 one-to-one 元素映射关联属性,其one-to-one属性还应增加 constrained=“true” 属性;另一端增加one-to-one元素映射关联属性。

    • constrained(约束):指定为当前持久化类对应的数据库表的主键添加一个外键约束,引用被关联的对象(“对方”)所对应的数据库表主键

    2.实体类
    Department .java

    public class Department {
    
        private Integer dId;
        private String dName;
    
        private Manager manager;
        //忽略getter和setter方法
        ...
    }

    Manager.java

    public class Manager {
    
        private Integer mId;
        private String mName;
    
        private Department department;
        //忽略getter和setter方法
        ...
    }

    3.映射文件
    Department.hbm.xml

    <hibernate-mapping package="com.withXml.bothOneToOne.entity.withPrimaryKey" auto-import="false">
        <class name="Department" table="BOTH_DEPARTMENTS_PRIMARY">
            <id name="dId" type="java.lang.Integer" access="field">
                <column name="D_ID" />
                <!-- 使用外键的方式来生成当前主键 -->
                <generator class="foreign" >
                    <!-- property属性指定使用哪一个持久化类的那个属性的主键作为外键 -->
                    <param name="property">manager</param>
                </generator>
            </id>
            <property name="dName" type="java.lang.String" access="field">
                <column name="D_NAME" />
            </property>
            <!-- 
                基于主键的映射策略:指一端的主键生成器使用 foreign 策略,表明根据”对方”的主键来生成自己的主键,
                自己并不能独立生成主键. <param> 子元素指定使用当前持久化类的哪个属性作为 “对方”
                采用foreign主键生成器策略的一端增加 one-to-one 元素映射关联属性,其one-to-one属性还应
                            增加 constrained=“true” 属性;另一端增加one-to-one元素映射关联属性。
                constrained(约束):指定为当前持久化类对应的数据库表的主键添加一个外键约束,引用被关联的对象
            (“对方”)所对应的数据库表主键
    
             -->
            <one-to-one name="manager" class="Manager" constrained="true"></one-to-one>
        </class>
    </hibernate-mapping>
    

    Manager.hbm.xml

    <hibernate-mapping package="com.withXml.bothOneToOne.entity.withPrimaryKey" auto-import="false">
        <class name="Manager" table="BOTH_MANAGERS_PRIMARY">
            <id name="mId" type="java.lang.Integer" access="field">
                <column name="M_ID" />
                <generator class="native" />
            </id>
            <property name="mName" type="java.lang.String" access="field">
                <column name="M_NAME" />
            </property>
    
            <one-to-one name="department" class="Department"></one-to-one>
    
        </class>
    </hibernate-mapping>

    4.CRUD测试

    /**
    * 保存操作
     */
    @Test
    public void testOneToOneSave(){
        //新建部门对象
        Department department = new Department();
        department.setdName("财务部");
    
        //新建管理者对象
        Manager manager = new Manager();
        manager.setmName("张铭");
    
    
        //设定关联关系
        department.setManager(manager);
        manager.setDepartment(department);
    
        //执行保存,先保存哪一个都可以
        session.save(manager);
        session.save(department);
    
    }
    
    /**
     * 查询操作
     */
    @Test
    public void testOneToOneGet(){
        //默认情况下,对关联属性使用懒加载,所以会出现懒加载异常
        Department department = (Department) session.get(Department.class, 1);
        System.out.println(department.getdName());
    
        //出现懒加载异常
    //      session.close();
    //      Manager managerName = department.getManager();
        //无异常,仅仅是显示对象的类型
    //      System.out.println(managerName.getClass());
        //有异常,使用到了对象的属性
    //      System.out.println(managerName.getmName());
    
        Manager managerName = department.getManager();
        System.out.println(managerName.getmName());
    }
    
    /**
     * 查询操作
     */
    @Test
    public void testOneToOneGet2(){
        //在查询没有外键的一端对象时,使用左外连接一并查出其关联的对象,并已经初始化
        Manager manager = (Manager) session.get(Manager.class, 1);
        System.out.println(manager.getmName());
    }

    5.总结
    ①实体类:双方各自添加对方实体类型的属性
    ②映射文件:在其中一方的映射文件中主键的生成策略使用foreign,同时指定使用哪个一个持久化类的那个属性的主键作为外键
    详细如下:

    <!-- 使用外键的方式来生成当前主键 -->
     <generator class="foreign" >
    <!-- property属性指定使用哪一个持久化类的那个属性的主键作为外键 -->
        <param name="property">manager</param>
     </generator>
    
    <!-- 
        基于主键的映射策略:指一端的主键生成器使用 foreign 策略,表明根据”对方”的主键来生成自己的主键,
        自己并不能独立生成主键. <param> 子元素指定使用当前持久化类的哪个属性作为 “对方”
        采用foreign主键生成器策略的一端增加 one-to-one 元素映射关联属性,其one-to-one属性还应
                       增加 constrained=“true” 属性;另一端增加one-to-one元素映射关联属性。
    constrained(约束):指定为当前持久化类对应的数据库表的主键添加一个外键约束,引用被关联的对象
    (“对方”)所对应的数据库表主键
    
        -->
       <one-to-one name="manager" class="Manager" 
            constrained="true">
       </one-to-one>

    另一端

    <one-to-onename="department" class="Department">
    </one-to-one>
    展开全文
  • 定义对Entity中属性变量的访问  JPA的注解既可以写在属性上,也可以写在get方法上,两者有何区别?... 复杂Entity类是指在...EJB3持久化规范中,针对可持久化属性定义了两种属性访问方式(access): FIELD和...
    • 定义对Entity中属性变量的访问
      JPA的注解既可以写在属性上,也可以写在get方法上,两者有何区别?
       复杂 Entity 类是指在 Entity 类的 getter/setter 中包含比较复杂的业务逻辑而不是仅仅返回某个属性。 在绝大部分的商业应用,开发人员都可以忽略这部分无需关心。 EJB3 持久化规范中, 针对可持久化属性定义了两种属性访问方式 (access): FIELD PROPERTY
      如果采用access=FIELD, EJB3 Persistence运行环境直接访问对象的属性变量,而不是通过getter。这种访问方式也不要求每个属性必须有getter/setter。如果需要在getter中包含商业逻辑,应该采用access=FIELD的方式。
      如果采用access=PROPERTY, EJB3 Persistence运行环境将通过Entity类上的getter来访问对象的属性变量,这就要求每个属性变量要有getter/setter方法。在EJB3中,默认的属性访问方式是PROPERTYgetter/setter方法的逻辑应该尽量简单。
      一个简单的例子如下:
    @Entity
    public class User {
    	private int id;
    	// @Column(length=10) // 注解在此处则表中字段为name
    	private String name;
    	
    	public User() {}
    
    	@Id @GeneratedValue
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	
    	@Column(length=10)	// 注解在此处则表中字段为name1
    	public String getName1() {
    		return name;
    	}
    	public void setName1(String name) {
    		this.name = name;
    	}
    }
    • 双向一对一关系配置
      每个公民都对应一个身份证号,两者的关系是一对一关系,构建实体Person和PID:
    @Entity
    public class Person {
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int id;
    
    	@Column(length=10,nullable=false)
    	private String name;
    	
    	@OneToOne(optional=false,cascade=CascadeType.ALL)
    	@JoinColumn(name="pid_id")
    	private PID id;
    
            public Person() {
    		this.name = "lzz";
    	}
    	public Person(String name) {
    		this.name = name;
    	}
    	// getter and setter
    }
    @Entity
    public class PID {
    
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int id;
    	
    	private String pid;
    	
    	@OneToOne(mappedBy="pid",cascade={CascadeType.PERSIST
    			 ,CascadeType.MERGE,CascadeType.REFRESH}
    	         ,optional=false)//指定为关系的被维护端,这里的optional可以去掉,因为外键不允许为空
    	private Person person;
    
    	public PID(String pid) {
    		this.pid = pid;
    	}
            public PID() {
    		this.pid = "xxx";
    	}
    	// getter and setter
    }
    • 双向一对多关系配置
      每次购物总会购买多样商品,订单和商品是一对多的关系,构建实体Order和Item
    @Entity
    public class Order_ {
    	
    	/**
    	 * 双向的一对多关系里面,多的一方为关系的维护端。 关系的维护端负责外键字段(记录)的更新; 关系的被维护端是没有权力更新外键字段(记录)的。
    	 */
    	@Id	@GeneratedValue
    	private int id;
    
    	@Column(nullable = false)
    	private float amount;
    
    	/**
    	 * 延迟加载必须保证em是开着的 如果是ToMany则默认延迟加载 如果是ToOne则默认是立即加载
    	 * 通过mappedBy声明关系的维护端,这里是指明在OrderItem类里面的哪个属性来维护关系
    	 * 在哪个类出现mappedBy则表明该实体是关系被维护端。
    	 */
    	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "order")
    	private List<Item> items = new ArrayList<Item>();
    
    	// 建立关系维护
    	public void addOrderItem(Item item) {
    		item.setOrder(this);// 关系维护端orderItem来设置,维护关系
    		this.items.add(item);
    		amount += item.getPrice();
    	}
            // getter and setter
    }
     注:在试验过程中,如果该实体取名Order时总是无法生成表,不知何故?
    @Entity
    public class Item {
    	/**
    	 * 双向的一对多关系里面,多的一方为关系的维护端。 关系的维护端负责外键字段(记录)的更新; 关系的被维护端是没有权力更新外键字段(记录)的。
    	 */
    	@Id	@GeneratedValue
    	private int id;
    
    	@Column(nullable = false)
    	private String name;
    
    	@Column(nullable = false)
    	private float price;
    
    	@ManyToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, optional = false)
    	@JoinColumn(name="order_id")
    	private Order_ order;
    
    	// getter and setter
    }
    • 双向多对多关系配置
    老师和学生是多对多关系,一个学生有多个老师,一个老师也有多个学生,构建实体Teacher和Student:
    @Entity
    public class Teacher {
    	@Id	@GeneratedValue
    	private Integer id;
    	
    	@Column(length = 30, nullable = false)
    	private String name;
    	
    	// 关系被维护端
    	@ManyToMany(mappedBy = "teachers", cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
    	private Set<Student> student = new HashSet<Student>();
    
            // getter and setter
    }

     

    @Entity
    public class Student {
    	@Id 	@GeneratedValue
    	private Integer id;
    	
    	@Column(length=30,nullable=false)
    	private String name;
    	
    	//一般在多对多很少用到级联的操作。
    	/**
    	 * inverseJoinColumns关系被维护端的外键在中间表中的定义
    	 * JoinColumns       关系维护端的外键在中间表中的定义
    	 */
    	@ManyToMany(cascade=CascadeType.REFRESH)
    	@JoinTable(name="student_teacher"
    	           ,inverseJoinColumns=@JoinColumn(name="teacherid")
    	           ,joinColumns=@JoinColumn(name="studentid"))
    	private Set<Teacher> teachers=new HashSet<Teacher>();
    
            // getter and setter
    }
    • 复合主键
    @Entity
    public class Couple {
    
    	@EmbeddedId
    	private CouplePK couple;
    	private String address;
    	
            // getter and setter
    }
    
       复合类:必须为public,实现 Serializable,由无参构造函数
    @Embeddable
    public class CouplePK implements Serializable {
    	
    	private Person husband;
    	private Person wife;
    		
    	public CouplePK() {}
    
            //getter and setter
    }
     构建好实体后,通过Persistence.createEntityManagerFactory("test")加载hibernate即可创建对应的表。
     
    展开全文
  • 上面两篇博客介绍了cascade和inverse级联关系作用,而constrained属性是在主键映射一对一关系的时候会用到的一: 建立公民对象People与身份证对象IDcard一对一主键关联 公民表与身份证表的关联关系 公民实体对象与...
  • 全国计算机等级考试二级...在Access中,设置为主键的字段由系统自动设置索引。2.在Access数据库中创建一个新表,应该使用的SQL语句是Create Table;创建索引是Create Index;修改表是Alter Table;创建数据库是Create ...
  • SQL主键设置

    2020-04-18 17:10:58
    P,LastName) -- 设置双主键: CREATE TABLE Persons01 ( Id_P int NOT NULL, LastName varchar(225) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY ...
  • Access笔记

    2015-07-09 10:27:23
    5 : "Float", // 精度型 6 : "Money", // 货币 7 : "DateTime", // 日期时间  11 : "Bit", // 是否  13 : "TimeStamp",  17 : "TinyInt", // 字节  72 : "UniqueIdentifier", // 同步复制...
  • 数值越界 Access

    千次阅读 2013-11-07 17:10:54
    引言:今天在向access数据库插入数据的时候,后台出现了[Microsoft][ODBC Microsoft Access Driver]数值越界 (null),网上查了下感觉也没有找到很好的回复,大家的回复差不多都类似... 以下是Access 字段类型-数字类型
  • access数据类型

    千次阅读 2013-01-09 15:18:17
    定义主键 和自动编号 CREATE TABLE guestbook(id IDENTITY(1,1) PRIMARY KEY,visitor VARCHAR(40),comments TEXT,entrydate DATETIME access数据类型大全 ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节] ALTER ...
  • 2017年计算机等级考试已经结束,出国留学网为考生们整理了2018年计算机二级考试Access试题及答案,希望能帮到大家,想了解更多资讯,请关注小编的及时更新哦。2018年计算机二级考试Access试题及答案二第1章 数据库...
  • 全国计算机二级ACCESS第2章 数据库和表一、创建数据库1、创建据管理的2种方法:(1) 创建空白数据库(常用方法)(2) 作用“向导”创建数据库2、数据库的打开和关闭操作。二、建立表1、 表的组成:由表结构和表记录组成...
  • ACCESS数据库使用sql语句创建表

    万次阅读 2014-06-09 15:27:23
    Access中使用sql语句创建表时指定字段类型 长度为255的文本varchar 长度为20的文本varchar(20) 日期时间datetime 数字byte或smallint或integer,或bit 自动编号:counter(1,1) 外健:constraint外健名 主键...
  • Access词汇表

    2011-10-27 09:15:22
    A -------------------------------------------------------------------------------- ActiveX 对象 一个通过自动(以前的 OLE...例如,MicrosoftAccess 可以在 Microsoft Word 或 MicrosoftExcel 内创建和处理
  • 今天分享一下我所学习的MySQL中的主键问题,和赋权限问题。MySQL中的主键问题1、Mysql的两种主键。Primary key 和not null auto_incriment在建立mysql表时,给一个字段添加了主键primary key在insert数据时可以不用...
  • 第二章 数据库和表(4%-10%)一、 创建数据库Access数据库是一个独立的文件,其扩展名是mdb。它是由七个对象构成的,各对象是相互联系的,而不是独立的文件。二、 建立表1. 表的组成:字段和记录2. 字段的命名规则:...
  • Access数据类型

    万次阅读 2009-11-16 17:54:00
    关于 Access 数据库数据类型根据以下条件决定字段应使用哪种数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant...
  • Access的数据类型

    千次阅读 2009-07-22 13:04:00
    Access的数据类型说明2007年10月18日 星期四 23:30文本 nvarchar(n)备注 ntext数字(长整型) int数字(整型) smallint数字(单精度) real数字(精度) float数字(字节) tinyint货币 money日期 smalldatetime布尔 bit...
  • 关于 Access 数据库数据类型

    千次阅读 2017-08-16 20:52:26
    关于 Access 数据库数据类型根据以下条件决定字段应使用哪种数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant...
  • Access数据库SQL操作

    2007-08-11 01:52:00
    Access数据库SQL操作 一 更改表1.向表添加一个新列alter table 表名add column 列名 数据类型;oracle SQL :alter table --add -- --//--表示与上的相同PS:alter table **add column ^要大写,否则access中的执行不...
  • Access数据库SQL操作

    千次阅读 2007-08-09 16:28:00
    Access数据库SQL操作 一 更改表1.向表添加一个新列alter table 表名add column 列名 数据类型;oracle SQL :alter table --add -- --//--表示与上的相同PS:alter table **add column ^要大写,否则access中的执行不...
  • access主数据字段类型

    2011-02-16 01:11:00
    近来使用asp写程序时需要即时创建access字段,网上的资料很多,但是仍旧多为复制,作为字段类型的各种资料繁复不一,很让人困惑到底哪个是可以用的。后来从access2007的帮助系统中找到答案(这应该算是标准的...
  • 1、一般来说每个表都应该建立一个主键主键也是主索引,大部分主键都建立在一个字段之上,但并不是说主键就只能是一个字段,它也可以建立在多个字段上。比如订单我们分成了“订单表”和“订单明细表”两个表,在...
  • 1.在运行iBatis的Update时,如果Access表的主键是自增型主键时,即“自动编号 + 长整型 + 递增”型主键,对应的JavaBean的属性值只能是int型,不能设置为long型,否则,会报告“java.sql.SQLEx...
  • 前言: 在多线程、高并发情况下,某些业务场景需要创建唯一标识的主键(订单)Id;通常情况下都是一个请求创建一个,考虑到性能和QPS我们会提前生成好一堆随机id保存到redis;从redis进行poll。 1、创建一个redis队列...
  • access 和SQL有什么不同

    千次阅读 2012-09-27 16:07:22
    Access中提供查询对象,在设计时可以采用设计视图和SQL视图,非常方便,SQL视图中的SQL语句可以在SQL SERVER中使用,但是否完全可用呢?答案是否定的,表1中总结了 Microsoft Access 和 Microsoft SQL Servers 的 ...
  • 文章目录创建数据库创建表字段数据类型字段属性输入掩码格式 创建数据库 数据库为单个文件:DatabaseName.accdb 创建表 设计视图创建表 ...ID:自动编号数据类型,可用作主键,即使某纪录被删除也不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,993
精华内容 3,597
关键字:

access双主键