MySQL表的操作02
【1】设置非空约束(NOT NULL ,NK)--->>>目的是f防止某些字段中的内容为空
CREATE TABLE +table_name (
属性名 数据类型 NOT NULL,
.........
);
【2】设置字段的默认值(DEFAULT)
CREATE TABLE +table_name (
属性名 数据类型 DEFAULT 默认值,
........
);
【3】设置唯一约束(UNIQUE,UK)===>>>保证字段的唯一性,比如记录学生档案信息的时候,要保证学生的学号信息的唯一性。
CREATE TABLE +table_name (
属性名 数据类型 UNIQUE,
.........
);
【4-1】设置单字段主键约束(PRIMARY KEY,PK)===>>>主键约束在表中定义一个主键来唯一确定表中每一行数据的标识符。每张数据表只能存在一个主键;主键保证记录的唯一性;主键自动为NOT NULL(非空)。有类似UNIQUE的效果,来保证字段的唯一性。
CREATE TABLE +table_name
(属性名 数据类型 ,
属性名 数据类型 ,
......
PRIMARY KEY(属性名));
例子:
CREATE TABLE stu_info
(id int ,
name VARCHAR(12),
yeold int,
PRIMARY KEY(id));
若输入与主键重复的字段,则报错!!!
mysql> INSERT INTO stu_info VALUE(1,'jack',25);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
【4-2】多字段主键
CREATE TABLE +table_name
(属性名 数据类型 ,
属性名 数据类型 ,
......
PRIMARY KEY(属性名1,属性名2,.....)); >>>注意:此时表示属性名1和属性名2同时都不重复,是“且”的含义。否则输入命令不报错
【5】设置字段值自动增加(AUTO_INCREMENT) >>>默认下,该字段的值是从1开始增加,每增加一条记录,记录中该字段的值就会在前一条记录的基础上加1。
CREATE TABLE +table_name(
属性名 数据类型 AUTO_INCREMENT,
..........
);
例子:
mysql> DESC stu_info;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(12) | YES | | NULL | |
| yeold | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
【6】设置外键约束(FOREIGN KEY,FK)>>>
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式
将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。外键主要用来保证数据的完整性和一致性.
两个表必须是InnoDB表,MyISAM表暂时不支持外键
外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;
外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以; CREATE TABLE +table_name (
属性名 数据类型,
属性名 数据类型,
.....
CONSTRAINT 外键约束名 FOREIGN KEY (属性名1)
REFERENCES 表名 (属性名2)
MySQL表的操作02的更多相关文章
- Django之mysql表单操作
在Django之ORM模型中总结过django下mysql表的创建操作,接下来总结mysql表记录操作,包括表记录的增.删.改.查. 1. 添加表记录 class UserInfo(models.Mo ...
- MySQL表的操作
一.存储引擎(了解) 前几节我们知道mysql中建立的库===>文件夹,库中的表====>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文 ...
- MySQL基本简单操作02
MySQL基本简单操作 先进入Mysql容器. [root@promote ~]# docker exec -it mysql /bin/bash root@30d60b852cf5:/# mysql ...
- MySQL表的操作01
表在数据库中主要用来实现存储数据记录,其基本操作包括创建表.查看表.删除表和修改表. 表中的数据库对象包括: 1.列(COLUMNS):也称属性列,在具体创建表时,必须指定列的名字和它的数据类型. 2 ...
- MySQL:表的操作 知识点难点总结:表完整性约束及其他常用知识点二次总结🙄
表操作 一 : 修改表表表表表表表表表: ALTER TABLE 语法 1. 改表名rename alter table 表名 rename 新表名 2. 增加字段add alter table 表名 ...
- 整理好的一些mysql表详细操作
一.创建表的完整语法#语法:create table 库名.表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件]);约束条件:是 ...
- MySQL 表的操作语句(2)
一:MySQL支持的数据类型 1:CHAR和TEXT :分别表示定长的和可变长的串. CHAR:1-255个字符的定长串,它的长度必须在创建时指定. TEXT:最大长度为64K的文本 VARCHAR: ...
- mysql 表结构操作
alter table name : alter table table1 to table2;add column : alter table 表名 add column 列名 varchar(); ...
- Mysql:表的操作
1.列的添加 2.列的删除 删除多列只需在DROP id 后加, DROP column_name; 3.显示表属性 4.设置默认值 5.删除默认值
随机推荐
- (转)classload和class.forname()区别
转自:http://carl-java.iteye.com/blog/978680 java中class.forName和classLoader都可用来对类进行加载.前者除了将类的.class文件加载 ...
- 并查集-D - 畅通工程
D - 畅通工程 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通 ...
- 颜色color转为rgb格式
function convertHexToRGB(color) { if (color.length === 4) { let extendedColor = &q ...
- Go源码文件与命令
Go源码文件 文件类型 命令源码文件 : 声明自己属于main包且包含main函数的源码文件,一个包里边不要有多个命令源码文件,虽然用go install ,go run单独执行命令源码文件没有问题, ...
- 素问 - IC移仓换月
摘自<小韭的学习圈> Q 股指期货的合约什么时候换月比较合适? 今天是1908股指期货的交割日,我是这么操作的:我在10:30分把IH1908以2827元卖出,然后马上以2805.8元买入 ...
- Android SDK安装环境变量配置
安卓tool: http://tools.android-studio.org/ SDK下载地址:http://dl.google.com/android/android-sdk_r24.4.1-wi ...
- thinkphp 二级域名绑定模块,导致设置的路由被多域名共用的问题解决方案
问题背景: 在router.php路由配置文件设置了二级域名和路由设置 use think\Route; Route::domain('www','index'); Route::domain('ad ...
- kali linux2019.4安装启动后中文乱码
1.鼠标右键找到黑框框打开终端 2.终端执行后重启,乱码解决. sudo apt-get install ttf-wqy-zenhei
- IMM设置静态ip,安装系统
IMM设置静态ip,安装系统 设置ip: System Setting->Integrated Management Module->Network configuration 修改后选择 ...
- layui-form下隐藏元素的验证问题
1.情景: 设置为display:none的必填字段,在点击提交(form 包含 class="layui-form":button包含属性 lay-submit)的时候,依旧验证 ...