精华内容
下载资源
问答
  • 创建数据库时需要注意的事项

    千次阅读 2016-05-27 11:40:10
    创建数据库时需要注意字段不要使用数据库的关键字。 比如enable、name之类的, 因为项目中遇到过使用hibernate的merge方法时,如果enable中的值为空就会出现一直卡住的现象,导致 数据一直未保存到数据库中。占...

    创建数据库时,需要注意字段不要使用数据库的关键字。

    比如enable、name之类的,

    因为项目中遇到过使用hibernate的merge方法时,如果enable中的值为空就会出现一直卡住的现象,导致

    数据一直未保存到数据库中。占着数据库链接一直不释放,直到数据库链接超时,如果还未到超时就已经达到数据库链接最大值,那系统就挂掉了。

    所以设计数据库时,一定要谨慎再谨慎。

    至于为什么关键字为空时,使用merge方法会出现一直卡住的现象,后续还要继续研究下。

     

    展开全文
  • DDL的基础语法及设计工具 DDL的英文全称Data Definition Language,中文是数据定义语言。 在DDL中,常用的功能是... // 创建一个名为nba的数据库 DROP DATABASE nba; // 删除一个名为nba的数据库 2.对数据表进行...

    DDL的基础语法及设计工具

    DDL的英文全称时Data Definition Language,中文是数据定义语言。

    在DDL中,常用的功能是增删改,分别对应的命令是CREATE、DROP和ALTER。

    1.对数据库进行定义

    CREATE DATABASE nba;  // 创建一个名为nba的数据库
    DROP DATABASE nba;   // 删除一个名为nba的数据库
    

    2.对数据表进行定义

    创建表结构的语法

    CREATE TABLE [table_name](字段名 数据类型, ......)
    

    创建表结构

    创建一个球员表,表名为player,两个字段,一个是player_id(int类型),另一个player_name字段是varchar(255)类型。

    CREATE TABLE player (
        player_id int(11) NOT NULL AUTO_INCREMENT,
        player_name varchar(255) NOT NULL
    );
    

    注:语句最后以分号(;)作为结束符,最后一个字段的定义结束后没有逗号。

    修改表结构

    在创建表结构之后,对表结构进行修改。

    1.添加字段,比如我在数据表中添加一个age字段,类型为int(11)

    ALTER TABLE player ADD (age int(11));
    

    2.修改字段名,将age字段改成player_age

    ALTER TABLE player RENAME COLUMN age to player_age
    

    3.修改字段的数据类型,将player_age的数据类型设置为float(3,1)

    ALTER TABLE player MODIFY (player_age float(3,1));
    

    4.删除字段,删除刚才添加的player_age字段

    ALTER TABLE player DROP COLUMN player_age;
    
    数据表的常见约束

    当我们创建数据表的时候,还会对字段进行约束,约束的目的在于保证RDBMS里面数据的准确性和一致性。

    主键约束:

    主键起的作用是唯一标识一条记录,不能重复,不能为空,及UNIQUE+NOT NULL。

    外键约束:

    外键确保了表与表之间引用的完整性。一个表中的外键对应另一张表的主键。外键可以是重复的,也可以为空。

    除了对键进行约束,还有字段约束。

    NOT NULL约束

    对字段定义了NOT NULL,即表名该字段不应为空,必须有取值。

    DEFAULT

    表明了字段的默认值。如果在插入数据的时候,这个字段没有取值,这个字段没有取值,就设置成默认值。

    CHECK约束

    用来检查特定字段取值范围的有效性,CHECK约束的结果不能为FALSE,比如对身高height的数据进行CHECK约束,必须>=0,且<3。

    设计数据表的原则

    三少一多原则

    1.数据表的个数越少越好

    RDBMS的核心在于对实体和联系的定义,也就是E—R图,数据表越少,证明实体和联系设计得越简洁,既方便理解又方便操作。

    2.数据表中的字段个数越少越好

    字段个数越多,数据冗余的可能性越大。

    3.数据表中联合主键的字段个数越少越好

    设置主键是为了确定唯一性,当一个字段无法确定唯一性的时候,就需要采取联合主键的方式(也就是用多个字段来定义一个主键)。

    4.使用主键和外键越多越好

    数据库的设计实际上就是定义各种表,以及各种字段之间的关系。

    小结

    在这里插入图片描述

    展开全文
  • 数据表时需要注意什么? 了解 DDL 的基础语法; 使用 DDL 定义数据表时,都有哪些约束性。 使用 DDL 设计数据库时,都有哪些重要的原则。 DDL的基础语法及设计工具 DDL(Data Definition Language)数据定义语言。...

    使用DDL创建数据库&数据表时需要注意什么?

    1. 了解 DDL 的基础语法;
    2. 使用 DDL 定义数据表时,都有哪些约束性。
    3. 使用 DDL 设计数据库时,都有哪些重要的原则。

    DDL的基础语法及设计工具

    DDL(Data Definition Language)数据定义语言。它定义了数据库的结构和数据表的结构。

    DDL 中,我们常用的功能是增删改,分别对应命令是 create、drop 和 alter。需要注意的是,在执行 DDL 的时候,不需要 commit,就可以完成执行任务。

    1. 对数据库进行定义

    CREATE DATABASE mydb;	// 创建一个名为 mydb 的数据库
    DROP DATABASE mydb;   	// 删除一个名为 mydb 的数据库
    

    2. 对数据表进行定义

    CREATE TABLE table_name  	// 创建一个名为 table_name 的表结构
    

    创建表结构

    创建一个球员表,表名为 player,里面有两个字段:

    • 一个是 player_id,它是 int 类型,自增长。
    • 另一个是 player_name 字段是varchar(255)类型。两字段都不为空。
    CREATE TABLE player (
    	player_id int(11) NOT NULL AUTO_INCREMENT,
    	player_name varchar(255) NOT NULL
    );
    
    • 字符集是 utf8
    • 排序规则是 utf8_general_ci 代表对大小写不敏感
    • 如果设置为 utf8_bin 代表对大小写敏感

    修改表结构

    1. 添加字段
    ALTER TABLE player ADD (age int(11));
    
    1. 修改字段名,将 age 字段改成 player_age
    ALTER TABLE player RENAME COLUMN age to player_age
    
    1. 修改字段的数据类型,将player_age 的数据类型设置为 float(3,1)
    ALTER TABLE player MODIFY (player_age float(3,1));
    
    1. 删除字段,删除刚添加的player_age字段
    ALTER TABLE player DROP COLUMN player_age;
    

    设计数据表的原则

    三少一多的原则:

    1.数据表的个数越少越好

    RDBMS 的核心在于对实体和联系的定义,也就是E-R图(Entity Relationship Diagram),数据表越少,证明实体和联系设计得越简洁,既方便理解又方便操作。

    2.数据表中的字段个数越少越好

    字段个数越多,数据冗余的可能性越大。设置字段个数少的前提是各字段相互独立,而不是某个字段的取值可以由其它字段计算出来。

    3.数据表中联合主键字段个数越少越好

    设置主键是为了确定唯一性,当一个字段无法确定唯一性的时候,就需要采用联合主键的方式(也就是用多个字段来定义一个主键)。

    联合主键中的字段越多,占用的索引空间越大,不仅会加大理解难度,还会增加运行时间和索引空间,因此联合主键的字段个数越少越好。

    4.使用主键和外键越多越好

    “三少一多”原则的核心就是“简单可复用”。

    • 简单指的是用更少的表、更少的字段,更少的联合主键字段来完成数据表的设计。
    • 可复用则是通过主键、外键的使用来增强数据表之间的复用率。
    展开全文
  • DDL的基础语法及设计工具DDL的英文全称是Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。在DDL中,常用的功能是增删改(CREATE、DROP...//创建一个名为nba的数据库DROP DATABA...

    c0b187d4681349375b8eee61a3d6e27b.png

    DDL的基础语法及设计工具

    DDL的英文全称是Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。

    在DDL中,常用的功能是增删改(CREATE、DROP和ALTER)。在执行DDL的时候,不需要COMMIT,就可以完成执行任务。

    对数据进行定义

    CREATE DATABASE nba; // 创建一个名为nba的数据库DROP DATABASE nba; // 删除一个名为nba的数据库

    对数据表进行定义

    CREATE TABLE [table_name](字段名 数据类型,......)

    创建表结构

    示例

    - 创建一个球员表,表名为player,里面有两个字段,一个是play_id(int类型),另一个是player_name(varchar(255)类型。两个字段不能为空,player_id是递增的。

    CREATE TABLE player  (  player_id int(11) NOT NULL AUTO_INCREMENT,  player_name varchar(255) NOT NULL);

    - 数据类型中int(11)代表整数类型,显示长度为11位,括号中的参数11代表的是最大有效显示长度,与类型包含的数值范围大小无关;

    - varchar(255)代表的是最大长度为255的可变字符串类型;

    - NOT NULL表明整个字段不能是空值,是一种数据约;

    - AUTO_INCREMENT代表主键自动增长。

    通常情况下,会使用一些可视化工具来创建和操作数据库和数据表。

    caf2dda62be251b34ce348ce551ff93b.png

    使用Navicat软件进行设计

    ba9ef656a515ef1b2fb66a8afa991c4f.png

    对player_name字段进行索引,索引类型为Unique。

    da751c2b0c10c49bf1ce49445b84f2ee.png

    可以在Navicat中查看这张表,对应的SQL语句。

    DROP TABLE IF EXISTS `player`;CREATE TABLE `player`  (  `player_id` int(11) NOT NULL AUTO_INCREMENT,  `team_id` int(11) NOT NULL,  `player_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `height` float(3, 2) NULL DEFAULT 0.00,  PRIMARY KEY (`player_id`) USING BTREE,  UNIQUE INDEX `player_name`(`player_name`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

    - SQL文件中的DDL处理,首先先删除player表(如果数据库中存在该表的话),然后再创建player表,里面的数据库和字段都使用了反引号,为了避免它们的名称与MySQL保留字段相同,对数据表和字段名都加上了反引号。

    - player_name字段的字符编码是utf-8,排序规则是utf8_general_ci,代表对大小写不敏感。

    - player_id设置为主键,DDL中使用PRIMARY KEY进行规定

    - 对player_name字段进行索引,设置了UNIQUE INDEX(唯一索引)

    修改表结构

    添加字段

    示例

    - 添加一个age字段,类型为int(11)

    ALTER TABLE player ADD (age int(11));

    修改字段名

    示例

    - 将age字段修改成player_age

    ALTER TABLE player RENAME COLUMN age to player_age

    修改字段的数据类型

    示例

    - 将player_age的数据类型设置为float(3, 1)

    ALTER TABLE player MODIFY (player_age float(3,1));

    删除字段

    示例

    - 删除添加的player_age字段

    ALTER TABLE player DROP COLUMN player_age;

    数据表的常见约束

    当创建数据表的时候,会对字段进行约束,来保证RDBMS里面数据的准确性和一致性。

    主键约束

    主键起的作用是唯一标识一条记录,不能重复,不能为空,即UNIQUE+NOT NULL。一个数据表的主键只能有一个。主键可以是一个字段,也可以由多个字段符合组成。

    外键约束

    外键确保了表与表之间的引用完整性。一个表中的外键对应另一张表的主键。外键可以是重复的,也可以为空。

    唯一性约束

    唯一性约束表明了字段在表中的数值是唯一的,即使有了主键,还可以对其他字段进行唯一约束。例如在player表中给player_name设置唯一约束,就表明任何两个球员的姓名不能相同。

    NOT NULL约束

    对字段定义了NOT NULL,即表明该字段不应为空,必须有取值

    DEFAULT

    表明了字段的默认值。如果在插入数据的时候,这个字段没有取值,就设置为默认值。

    CHECK约束

    用来检查特定字段取值范围的有效性,CHECK约束的结果不能为FALSE。

    设计数据表的原则

    数据表的个数越少越好

    RDBMS的核心在于对实体和联系的定义,也就是E—R图,数据表越少,证明实体和联系设计的越简洁,既方便理解又方便操作。

    数据表中的字段个数越少越好

    字段个数越多,数据冗余的可能性越大。设置字段个数少的前提是各个字段相互独立,而不是某个字段的取值可以由其他字段计算出来。字段个数少是相对的,会在数据冗余和检索效率中进行平衡。

    数据表中联合主键的字段个数越少越好

    设置主键是为了确定唯一性,当一个字段无法确定各唯一性的时候,就需要采用联合主键的方式(多个字段定义一个主键)。联合主键中的字段越多,占用的索引空间越大,还会增加运行时间和索引空间。

    使用主键和外键越多越好

    数据库的设计实际上就是定义各种表,以及各种字段之间的关系。关系越多,证明实体之间的冗余度越低,利用度越高。这样做不仅保证了数据表之间的独立性,还能提升相互之间的关联使用率。

    总结

    d1442c23786a0aac263b68f1339625c7.png

    展开全文
  • 优化数据库的方法有很多,最近在看面试题,总结了一些优化数据库的方法。 优化数据库的方法 ...例如,在定义邮政编码这个字段,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚...
  • mysql 创建时注意事项mysql 想必大家都不会陌生吧 是我学习中第一个接触的的数据库已学习就很快上手的 这是一个关系型数据库 不懂什么是关系型数据库啊哈哈哈 现在知道啦 因为自己学习了 非关系型数据库 (redis)...
  • 2. 注意索引的大小,有一些表可以建成索引组织表 3. 索引的列不要太多,要选择一些selective比较低的列建B-tree索引,选择selective高的列建bitmap索引(在更新比较多的表不不要建bitmap索引) 4. 将selective较低的列...
  • 非空字段:应该指定列为NOT NULL,因为含有空值的列很难进行查询优化,因为他们使得索引、索引的统计...索引字段越小越好:数据库的数据存储以页为单位,一页存储的数据越多,一次IO操作获取的数据越大,效率越高 ...
  • 在.NET 2.0框架下动态创建Access数据库和表注意事项 //z 2012-08-10 19:33:37 IS2120@csdn.T2247216201[T74,L793,R28,V696] 在以前的文章《如何在.NET框架下创建Access数据库和表?》中提供的方法,在.NET ...
  • 在以前的文章《如何在.NET框架下创建Access数据库和表?》中提供的方法,在.NET 2.0下无效,所有的字段类型都变成了文本类型,不知道微软改变了什么东西。提醒大家注意需要加ADOX.ColumnClass.Type = ...
  • SQLite数据库创建与增删查改

    千次阅读 2012-09-07 01:14:13
    什么是 SQLiteDatabase?  一个 SQLiteDatabase 的实例代表中,了一个SQLite 的数据库,通过SQLiteDatabase 实例的一些方法,我们可以执行SQL 语句...因此,在使用需要创建数据库,直接创建表就可以进行生成数
  • 数据库升级后,需要做一些额外的事情么,比如运行建立数据字典的脚本,等等,因为我们碰到了一点问题,就是数据库从81700升级到81740,然后就不能创建数据库触发器,创建报错: ORA-00604: error occur...
  • 1、了解你将要对数据进行的操作 为你的数据库创建一个健壮的索引,那可是功德一件。可要做到这一点简直就是一门艺术。每当你为一个表添加一个索引,SELECT会更快了,可INSERT和DELETE却大大的变慢了,因为创建了...
  • python处理一个上千万的csv文件需要注意什么前言数据库存储1. 建表的数据类型选取2. 建表的编码类型选取3. 建表添加索引和自增问题4. navicat导入与程序导入的比较5. 程序导入pandas的读取编码选取6.多个同...
  • 文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限...创建索引的原则(重中之重)创建索引的三种方式,删除索引创建索引时需要注意什么?使用索引查询一定能提高查询
  • springboot默认就支持国际化的,而且不需要你过多的做什么配置,只需要在resources/下创建国际化配置文件即可,注意名称必须以messages开始。 messages.properties (默认的语言配置文件,当找不到其他语言的配置的...
  • mysql命令行客户端快速建立数据库

    千次阅读 2017-12-14 01:05:45
    教你如何通过mysql客户端快速创建数据库并建立表单(这里一定要注意是mysql客户端,而不是windows命令行窗口)前言序锦当你将需要用到数据库操作的时候,你总是在想一个方法能快速创建一个自己想要的数据库,并创建...
  • 今天说数据库主要是刚建立数据库的时候需要注意什么。新建数据库时考虑到数据库需要升级的问题所以数据库需要判断app的版本号,这样就可以在升级app的时候同时升级数据库,从而防止数据库的升级遇到不可修复的bug...
  • 有两部分,请分别下载。...实务13 创建数据库时,出现错误“ora-03113: end-of-file on 实务13 communication channel” 实务14 安装oracle时,报告错误“ora-27102:out of memory” 实务15 在linux(unix)环境...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 375
精华内容 150
关键字:

创建数据库时需要注意什么