- 浏览: 758531 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (663)
- Eclipse&MyEclipse (40)
- PHP (3)
- Java (72)
- CSS (3)
- MySQL (35)
- Oracle (68)
- Red Hat Linux (23)
- Tomcat (26)
- Oracle10gAS (1)
- Spring (28)
- MyBatis&iBatis (13)
- JS (47)
- JQuery (23)
- Editplus (2)
- 其他 (4)
- Html (15)
- SQL (5)
- Ant (2)
- Hadoop (2)
- Servlet (9)
- Windows (11)
- Flex (1)
- CentOS Linux (7)
- Microsoft SQL Server (2)
- DB2 (3)
- Mysql char 与 varchar 区别 (0)
- excel (5)
- jsp (8)
- FreeMarker (1)
- EasyUI (5)
- WebShpere MQ (1)
- Maven2 (6)
- 浏览器缓存 (2)
- visio (1)
- XML (2)
- 物联网 (1)
- Maven (3)
- JSTL (2)
- HTTP (1)
- Fourinone (1)
- IP知识 (1)
- MyBatis (1)
- 项目管理 (2)
- office2003+2007 (1)
- DOS (1)
- JProfiler (1)
- Thinpad T440p (1)
- ActiveMQ (10)
- MongoDB (5)
- Vert.x3 (1)
- Ngnix (3)
- Spark (2)
- BigData (1)
- 性能概念公式 (1)
- RocketMQ (3)
- IT名词术语 (1)
- Java编程工具 (1)
- RabbitMQ (2)
- MetaMQ (1)
- 架构 (6)
- KafkaMQ (7)
- Redis (4)
- OAuth (1)
- Gradle (1)
- CentOS (5)
- Microsoft_Toolkit (1)
- git (5)
- IntelliJ Idea (4)
- Nginx (3)
- docker (12)
- VMware (2)
- 算法 (1)
- JDBCPool (1)
- spring-cloud (7)
- netbean (1)
- 微信小程序 (2)
- CURL (2)
- Java生成二维码 (1)
- 区块链 (2)
- 机器学习 (1)
- SpringBoot (3)
- Android (9)
- 微服务架构 (1)
- Kubernetes (2)
- OpenProject (0)
- 测试 (1)
- https (1)
- 开源许可证 (1)
- ServiceMesh (2)
- NET (0)
- .NET (1)
- TEST (1)
- iOS (2)
- thymeleaf (4)
- lombok (1)
- 浏览器设置 (1)
- 富文本编辑器 (1)
- 搜索引擎 (1)
- IT常识 (1)
- UML (0)
- Axure (1)
- appstore无法联网 (0)
- apk无法安装 (1)
- SQLServer (2)
- 卸载弹窗软件 (1)
- jenkins (1)
- TortoiseGit (1)
- eureka (1)
- ajax (1)
- spyder (0)
最新评论
http://www.5idev.com/p-php_mysql_column_property.shtml
主键
表的主键(primary key,主关键字)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。一个表不能有多个主关键字,并且主关键字的列不能包含空值和重复值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
语法:
PRIMARY KEY (column_name)
uid
username
password
email
regdate
1
admin
b7e591c246d010bb2ccd77d52490c85e
admin@5idev.com
1277992339
2
小明
a193686a53e4de85ee3f2ff0576adf01
xiao@163.com
1278063917
3
Jack
0193686a35e4de85ee3f2ff0567adf490
jack@gmail.com
1278061380
在这个表中,uid 这个字段就是该表的主键。
建立主键应该遵循的一般原则
1.主键应当是对用户没有意义的
2.永远也不要更新主键,如果主键需要更新,则说明主键应对用户无意义的原则被违反了
3.主键不应包含动态变化的数据,如时间戳、创建时间等
4.主键应当由系统自动生成
外键
在两个表的关系中,当一张表(如表A )的主关键字被包含在另一张表(如表B)中时,A 表中的主关键字便成为 B 表的外键(外关键字)。B 表称为主表,A 表称为从表。
外键主要用于保持数据一致性,完整性,避免冗余数据,使两张或多张表形成关联。
cid
uid
comment
createtime
clientip
1
1
评论测试。。
1278011380
123.123.123.123
2
1
写得很详细呀,谢谢!
1278063917
123.123.123.123
3
3
学习了!
1278069380
123.123.123.123
在这个文章评论表 comment 样例中,uid 便是外键,它是 user 表的主键。在该表中记录了用户对文章的评论,关于用户信息,只需对应 user 表的主键 uid 即可。在数据一致性方面,比如当 comment 表没有 uid 为 3 的评论后,才可以删除 user 表中 uid = 3 的记录。
自动递增
在 MySQL 数据库中,提供了字段的自动递增(AUTO_INCREMENT)属性,即将该字段设置为 int 类的数据类型,每向数据表添加一条记录,该字段的值会自动加1 。设置了自动递增后,该列不用再设置默认值和唯一性约束。
例子:
uid mediumint(8) NOT NULL auto_increment
非空
因为逻辑上的一些要求,有时候需要把字段属性设置为非空(NOT NULL),如记录用户名、密码等非空值的字段。
设置为非空的列,虽然不是必须,但最好设定一个默认值,以防止意外的错误和减少增加数据时的 SQL 语句复杂度。当向数据表增加数据记录时,如果设置为非空的字段不写入数据,系统将会以默认值写入。
例子:
username char(20) NOT NULL default ''
//将NOT NULL 改为 NULL
ALTER TABLE user CHANGE username username char(20) NULL
提示
在上面的例子中 CHANGE 后面 username username ,前者表示更改的字段名,后者表示新字段名。在本例中,只更改了字段属性为 NULL ,不涉及到字段名称的更改,因此二者一致。
空
与非空相反,可以将字段属性设置为空,如果字段属性没有设置为非空(NOT NULL)属性,那么系统默认就是可以为空(NULL)值的。
将NULL 改为 NOT NULL:
ALTER TABLE user CHANGE username username char(20) NOT NULL DEFAULT ''
唯一性约束
有时候某些字段数据不允许重复,如用户名,这时候就需要增加唯一性约束(UNIQUE)。
语法:
UNIQUE (column_name)
//给表字段增加 UNIQUE
ALTER TABLE tb_name ADD UNIQUE (column_name)
//去掉 UNIQUE
ALTER TABLE tb_name DROP INDEX column_name
主键(PRIMARY KEY)会强制性的拥有自动定义的唯一性约束,不用额外定义 UNIQUE 。
索引
数据库索引(index)是为了增加查询速度而对字段附加的一种标识。我们对表的某些可能需要经常查询的字段建立适当的索引,那么在查询该字段数据时,便会显著的加快查询速度。
语法:
KEY key_name (column_name)
KEY 后面的字符为索引名称,括号内为建立索引的字段名。
改进后的建表 SQL
CREATE TABLE user (
uid mediumint(8) unsigned NOT NULL auto_increment,
username char(15) NOT NULL default '',
password char(32) NOT NULL default '',
email varchar(40) NOT NULL default '',
regdate int(10) unsigned NOT NULL default '0',
PRIMARY KEY (uid),
UNIQUE KEY username (username),
KEY email (email)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
补充说明
在建表语句正文后面还附加了建表的其它几个属性:
1.ENGINE:表示存储引擎类型,分为 MyISAM 和 InnoDB 两种类型。MyISAM 不支持事务处理等高级处理,强调表的性能,执行也比 InnoDB 快。而 InnoDB 提供事务支持已经外部键等高级数据库功能,性能上比 MyISAM 差。默认为 MyISAM 类型
2.CHARSET:表示数据表表字符集,一般为 gbk 或 utf8 以及 big5 等,为了兼容性考虑,我们设置为 utf8 字符集
3.AUTO_INCREMENT:设置主键默认增长的开始数
主键
表的主键(primary key,主关键字)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。一个表不能有多个主关键字,并且主关键字的列不能包含空值和重复值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
语法:
PRIMARY KEY (column_name)
uid
username
password
regdate
1
admin
b7e591c246d010bb2ccd77d52490c85e
admin@5idev.com
1277992339
2
小明
a193686a53e4de85ee3f2ff0576adf01
xiao@163.com
1278063917
3
Jack
0193686a35e4de85ee3f2ff0567adf490
jack@gmail.com
1278061380
在这个表中,uid 这个字段就是该表的主键。
建立主键应该遵循的一般原则
1.主键应当是对用户没有意义的
2.永远也不要更新主键,如果主键需要更新,则说明主键应对用户无意义的原则被违反了
3.主键不应包含动态变化的数据,如时间戳、创建时间等
4.主键应当由系统自动生成
外键
在两个表的关系中,当一张表(如表A )的主关键字被包含在另一张表(如表B)中时,A 表中的主关键字便成为 B 表的外键(外关键字)。B 表称为主表,A 表称为从表。
外键主要用于保持数据一致性,完整性,避免冗余数据,使两张或多张表形成关联。
cid
uid
comment
createtime
clientip
1
1
评论测试。。
1278011380
123.123.123.123
2
1
写得很详细呀,谢谢!
1278063917
123.123.123.123
3
3
学习了!
1278069380
123.123.123.123
在这个文章评论表 comment 样例中,uid 便是外键,它是 user 表的主键。在该表中记录了用户对文章的评论,关于用户信息,只需对应 user 表的主键 uid 即可。在数据一致性方面,比如当 comment 表没有 uid 为 3 的评论后,才可以删除 user 表中 uid = 3 的记录。
自动递增
在 MySQL 数据库中,提供了字段的自动递增(AUTO_INCREMENT)属性,即将该字段设置为 int 类的数据类型,每向数据表添加一条记录,该字段的值会自动加1 。设置了自动递增后,该列不用再设置默认值和唯一性约束。
例子:
uid mediumint(8) NOT NULL auto_increment
非空
因为逻辑上的一些要求,有时候需要把字段属性设置为非空(NOT NULL),如记录用户名、密码等非空值的字段。
设置为非空的列,虽然不是必须,但最好设定一个默认值,以防止意外的错误和减少增加数据时的 SQL 语句复杂度。当向数据表增加数据记录时,如果设置为非空的字段不写入数据,系统将会以默认值写入。
例子:
username char(20) NOT NULL default ''
//将NOT NULL 改为 NULL
ALTER TABLE user CHANGE username username char(20) NULL
提示
在上面的例子中 CHANGE 后面 username username ,前者表示更改的字段名,后者表示新字段名。在本例中,只更改了字段属性为 NULL ,不涉及到字段名称的更改,因此二者一致。
空
与非空相反,可以将字段属性设置为空,如果字段属性没有设置为非空(NOT NULL)属性,那么系统默认就是可以为空(NULL)值的。
将NULL 改为 NOT NULL:
ALTER TABLE user CHANGE username username char(20) NOT NULL DEFAULT ''
唯一性约束
有时候某些字段数据不允许重复,如用户名,这时候就需要增加唯一性约束(UNIQUE)。
语法:
UNIQUE (column_name)
//给表字段增加 UNIQUE
ALTER TABLE tb_name ADD UNIQUE (column_name)
//去掉 UNIQUE
ALTER TABLE tb_name DROP INDEX column_name
主键(PRIMARY KEY)会强制性的拥有自动定义的唯一性约束,不用额外定义 UNIQUE 。
索引
数据库索引(index)是为了增加查询速度而对字段附加的一种标识。我们对表的某些可能需要经常查询的字段建立适当的索引,那么在查询该字段数据时,便会显著的加快查询速度。
语法:
KEY key_name (column_name)
KEY 后面的字符为索引名称,括号内为建立索引的字段名。
改进后的建表 SQL
CREATE TABLE user (
uid mediumint(8) unsigned NOT NULL auto_increment,
username char(15) NOT NULL default '',
password char(32) NOT NULL default '',
email varchar(40) NOT NULL default '',
regdate int(10) unsigned NOT NULL default '0',
PRIMARY KEY (uid),
UNIQUE KEY username (username),
KEY email (email)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
补充说明
在建表语句正文后面还附加了建表的其它几个属性:
1.ENGINE:表示存储引擎类型,分为 MyISAM 和 InnoDB 两种类型。MyISAM 不支持事务处理等高级处理,强调表的性能,执行也比 InnoDB 快。而 InnoDB 提供事务支持已经外部键等高级数据库功能,性能上比 MyISAM 差。默认为 MyISAM 类型
2.CHARSET:表示数据表表字符集,一般为 gbk 或 utf8 以及 big5 等,为了兼容性考虑,我们设置为 utf8 字符集
3.AUTO_INCREMENT:设置主键默认增长的开始数
发表评论
-
MySQL 大文本类型(转)
2021-03-10 22:03 1059MySQL大文本类型 CHAR(n) ... -
Specified key was too long; max key length is 767 bytes(转)
2020-03-30 18:09 305今天生产上遇到上述的bug: 系统变量 ... -
MYSQL慢查询优化方法及优化原则(转)
2020-02-20 14:45 3911、日期大小的比较, ... -
MySQL 删除重复记录(转)
2019-09-06 11:12 383用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在 ... -
mysql dblink(转)
2019-02-25 09:50 680mysql也有dblink哟,小姐 ... -
MySQL 5.7 常用操作(转)
2018-07-10 09:01 3801、登录,查询数据 Shell代码 收藏代码 mysql ... -
MySQL 5.7 关键字和保留字(转)
2018-03-09 14:22 854设计数据库时,尽量避免使用MySQL的关键字和保留字 ... -
mysql插入表情报错(转)
2016-12-03 14:39 814今天做的了个获取微信粉丝的功能,发现将昵称插入数据库报错.长 ... -
Mysql 修改密码或忘记密码(转)
2016-06-04 15:08 467方法1: 用SET PASSWORD命令 mysql ... -
各种数据库对表名长度的限制(转)
2016-05-11 15:07 2168数据库表名默认允许长度限制: SQLSERVER ... -
mysql 赋予用户权限 grant命令 (转)
2016-02-24 16:50 805本文实例,运行于 MySQL 5.0 及以上版本。MySQL ... -
CentOS下以RPM方式安装MySQL5.5(转)
2015-08-06 16:50 825首先去mySQL官网下载页面: http://dev. ... -
linux下mysql默认安装目录和常用命令 (转)
2015-07-03 16:33 638MySQL安装完成后不象SQL Server默认安装在一个 ... -
Mysql 远程连接支持
2014-12-15 14:36 749在远程连接mysql的时候应该都碰到过,root用户无法远 ... -
GoldenGate的复制原理和Quest公司的SharePlex产品一样
2014-11-20 23:23 1328GoldenGate的复制原理和 ... -
GoldenGate 与 DataGuard 对比
2014-11-20 23:05 676GoldenGate TDM容灾方案与DataGuard容灾 ... -
Oracle GoldenGate 读写分离
2014-11-20 22:41 1244使用 Oracle GoldenGate 进行实时数据集成 ... -
Oracle读写分离的实现!DSG RealSync同步软件的实现
2014-11-20 22:23 1275原作者:http://wujiang ... -
数据库范式第一范式、二范式、三范式、BCNF(转)
2014-06-13 11:13 796数据库的设计范式是数据库设计所需要满足的规范,满足这些规范 ... -
Mysql 创建索引(转)
2014-06-05 22:54 577YSQL索引用来快速地寻找那些具有特定值的记录,所有MySQ ...
相关推荐
MySQL 表字段属性 MySQL 表字段属性是指在 MySQL 数据库中,表的每个字段所具有的特性和约束,包括主键、外键、自动递增、非空、唯一性约束等。 1. 主键(PRIMARY KEY) 主键是表中的一个或多个字段,它的值用于...
在MySQL数据库管理系统中,了解如何查看表字段信息是日常数据库管理的重要部分。这涉及到查询数据库模式,获取关于数据表结构的详细信息,如列名、数据类型、约束等。本教程将详细介绍如何进行这一基本操作。 首先...
为了提高开发效率,各种自动化工具应运而生,其中“根据数据库表字段自动生成JavaBean工具”便是其中之一。这个工具能够帮助开发者快速地从数据库表结构生成对应的JavaBean类,极大地减少了手动编写代码的工作量,...
在MySQL数据库管理中,有时我们需要将表的结构信息导出,包括字段名、数据类型、长度、是否可为空、默认值以及备注等属性,以便于文档化或迁移数据。以下是一个详细步骤,指导如何完成这一任务: 1. **确定目标...
这些字段定义了学生实体的属性,符合数据库规范化原则,确保数据的一致性和完整性。 5. **数据库连接池**:为了提高性能和资源利用率,通常会使用数据库连接池(如C3P0、HikariCP、Druid等),预先创建并维护一定...
powerdesigner 设置公共基础属性,统一给表增加公共基础属性,vbs脚本
本主题将深入探讨如何自定义数据库表字段,以及它的重要性、实现方式和最佳实践。 首先,我们要明白数据库表是数据组织的核心,而字段则是表的构成元素,它们决定了表能存储何种类型的数据。自定义字段意味着可以...
- **数据类型不兼容**:检查Shapefile字段类型与MySQL表字段类型是否兼容,如有需要,可以使用 ogr2ogr 的 `-nlt` 参数指定几何类型。 6. **优化与注意事项**:为了提高性能,可以考虑使用InnoDB引擎代替MyISAM,...
实体类通常包含对应于数据库表字段的属性,并且具有getter和setter方法,以及可能的构造函数和注解,如`@Entity`、`@Table`、`@Id`等,以定义表名和主键。 接下来,我们讨论如何自动生成这些实体类。这里提到的工具...
1、在Java开发中,常常需要将数据库表列字段换成Java实体类字段。但是手动实现这个转换过程比较慢,且容易出错,影响开发效率。为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表...
这将返回与`DESC`类似但更丰富的信息,包括每个字段的额外属性。 3. 使用`mysql_fetch_field`函数 `mysql_fetch_field`函数允许在执行查询后逐个获取字段信息,而不是一次获取所有信息。以下是如何使用它的示例: ...
例如,一个简单的实体类模板可能包含类名(对应数据库表名)、属性(对应表字段)等元素。 接下来,你需要配置模板连接到MySQL数据库,提供数据库连接信息,如主机名、用户名、密码和数据库名。然后,选择要生成...
本文将深入探讨如何在SQLAlchemy中动态添加数据表字段。 首先,让我们理解SQLAlchemy的基本用法。通常,我们通过定义一个继承自`Base`的类来创建数据表映射,类的属性对应于数据库中的字段。例如: ```python from...
JFinal的Model是与数据库表进行交互的基础,它定义了表字段及其属性,实现了ORM(对象关系映射)机制。在JFinal中,你可以通过继承`com.jfinal.plugin.activerecord.Model`类并定义相应的字段来创建一个Model。例如...
例如,如果你有一个名为`users`的表,可能会生成一个`User`类,包含与表字段相对应的属性。 “自动生相应的实体类格式的表结构”可能是指反向工程(Reverse Engineering)的过程,通过工具分析数据库表结构,自动...
工具会根据选定的表自动创建相应的实体类,每个实体类通常包含一个与数据库表字段相对应的属性,并且可能会包含一些额外的特性(如Entity Framework的Ignore特性,用于忽略某些字段不进行映射),以便更好地与ORM...
表字段类型包括数值型(如int、float)、字符型(如char、varchar、text)以及日期和时间型(如datetime、timestamp、year)。 数据字段的属性有: 1. **unsigned**:表示数字无符号。 2. **zerofill**:在数字前...
- 在MySQL中,你可以创建一个带有`AUTO_INCREMENT`属性的表字段,这个字段会在每次插入新记录时自动增加。这可以作为序列的替代方案。例如,创建一个名为`sequence`的表,包含一个名为`id`的自增字段。 4. **存储...
为了将数据库中的记录转化为前端友好的格式,通常会定义DTO对象,该对象的属性与数据库表字段一一对应。查询结果转换为DTO对象列表,再转换成JSON,这样前端就可以直接解析并展示。 总结,本项目结合了MySQL数据库...
MySQL是世界上最流行的关系型数据库管理系统之一,其支持多种数据类型和表字段约束,这些是数据库设计的基础。在本文中,我们将深入探讨MySQL的数据类型和字段约束。 首先,MySQL中的数据类型分为四大类:数值类型...