MYSQL数据库学习五 表的操作和约束
5.1 表的基本概念
表示包含数据库中所有数据的数据库对象。一行代表唯一的记录,一列代表记录的一个字段。
- 列(Columns):属性列,创建表时必须指定列名和数据类型。
- 索引(Indexes):根据指定列建立起来的顺序,提供了快速访问数据的途径。
- 触发器(Triggers):用户定义的事务命令的集合。
5.2 表的操作
创建表
CREATE TABLE table_name(
属性名 数据类型,
属性名 数据类型,
.
.
.
属性名 数据类型
);
查看表定义
DESCRIBE table_name;
查看表详细定义
SHOW CREATE TABLE table_name\G
注意:sql语句可以使用";","\g","\G"符号来结束,使用"\G"可以使结果显示更加美观。
删除表
DROP TABLE table_name;
修改表名
ALRET TABLE old_table_name RENAME [TO] new_table_name;
增加字段
ALERT TABLE table_name
ADD 属性名 数据类型;//在表的最后一个位置增加字段
ALERT TABLE table_name
ADD 属性名 数据类型 FIRST;//在表的第一个位置增加字段
ALERT TABLE table_name
ADD 属性名 数据类型
AFTER 属性名;//在表的最后一个位置增加字段
删除字段
ALERT TABLE table_name
DROP 属性名;
修改字段
ALERT TABLE table_name
MODIFY 属性名 数据类型;//修改字段的数据类型
ALERT TABLE table_name
CHANGE 旧属性名 新属性名 旧数据类型;//修改字段的名字
ALERT TABLE table_name
MODIFY 旧属性名 新属性名 旧数据类型 新数据类型;//修改字段的名字和属性
修改字段的顺序
ALERT TABLE table_name
MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
5.3 操作表的约束
5.3.1 MySQL支持的完整性约束
完整性是指数据的准确性和一致性。MySQL提供了一致机制来检查数据库表中的数据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是约束。
| 完整性约束关键字 | 含义 |
| NOT NULL | 约束字段的值不为空 |
| DEFAULT | 设置字段的默认值 |
| UNIQUE KEY(UK) | 约束字段的值是唯一 |
| PRIMARY KEY(PK) | 约束字段为表的主键,可以作为改表记录的唯一标识 |
| AUTO_INCREAMENT | 约束字段的值为自动增加 |
| FOREIGN KEY(FK) | 约束字段为表的外键 |
注意:在为约束设置标识符时,推荐使用“约束缩写_字段名”。例如uk_uname。
1. 设置主键约束:
CREATE TABLE table_name(
属性名 数据类型 PRIMY KEY,//单字段主键
......
); CREATE TABLE table_name(
属性名 数据类型,
......
【CONSTRAINT 约束名】 PRIMARY KEY(属性名1,属性名2),//属性1和属性2为联合主键
);
2.设置外键约束:
子表中某个字段的取值由父表决定。例如,表示每个部门有多个雇员,有雇员表和部门表,雇员表(字表)中有一个表示部门编号的字段depno(外键),其依赖于部门表(父表)的主键。
CREATE TABLE table_name(
属性名 数据类型,
......
CONSTRAINT 外键约束名 FOREIGN KEY(属性名1)
REFFERENCES 表名(属性名2)
);
属性名1为子表中设置外键的字段名,属性名2为父表中设置主键约束的字段名。
MYSQL数据库学习五 表的操作和约束的更多相关文章
- Mysql数据库 的库表简易操作
一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8; charset uft8 可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...
- socketserver模块、MySQL(数据库、数据表的操作)
一.socketserver实现并发 基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环. socketserver模块中分两大类:server类(解决链接问题)和request类(解决 ...
- 黑马MySQL数据库学习day02 表数据CRUD 约束CRUD
/* 基础查询练习: 1.字段列表查询 当查询全部字段时,一种简便方式,使用*代替全部字段(企业中不推荐使用) 2.去除重复行 DISTINCT,注意修饰的是行,也就是整个字段列表,而不是单个字段. ...
- MYSQL数据库学习八 触发器的操作
8.1 触发器 在表发生更改时,自动进行一些处理.例如,学生表中每增加一条关于学生记录时,学生的总数就必须同时改变,同时需要检查电话号码格式是否正确,地址缩写是否正确. 以下语句会激活触发器: DEL ...
- MYSQL数据库学习七 视图的操作
7.1 视图 视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务.提高了数据库中数据的安全性. 视图的特点如下: 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系. 视图是由基 ...
- MYSQL数据库学习六 索引的操作
6.1 索引 由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个或多个字段生成的键组成,这些键存储在数据结构(B-树或哈希表)中,通过索引可以快速有效地查找与键值相关联的字段.根 ...
- MYSQL数据库学习九 数据的操作
9.1 插入数据记录 1. 插入完整或部分数据记录: INSERT INTO table_name(field1,field2,field3,...fieldn) VALUES(value1,valu ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL/MariaDB数据库的多表查询操作
MySQL/MariaDB数据库的多表查询操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.单表查询小试牛刀 [root@node105.yinzhengjie.org.cn ...
随机推荐
- iOS.Animations.by.Tutorials.v2.0汉化
翻译自:iOS.Animations.by.Tutorials.v2.0 前五章将向你介绍动画API-UIKit框架.这个API是专门设计来帮助你轻松轻而易举的为视图控件赋予生命,同时避免了核心动画的 ...
- __proto__ 与 prototype
先来做个复习,ES5中有有几种数据类型呢? 5种基本数据类型 Undefined Null Boolean Number String 1种复杂数据类型 Object 除了基本数据类型,万物皆对象,记 ...
- Android 进程常驻、进程守护、进程保活技术的总结
转载自:http://blog.csdn.net/marswin89/article/details/50917098 这是一个轻量级的库,配置几行代码,就可以实现在Android上实现进程常驻,也就 ...
- vc6.0转vs2005中字符串的问题
简单一点:就是project->Property->Configuration Property-->general-->Character Set:No Set即可.详细分析 ...
- 【php】DIRECTORY_SEPARATOR的作用
DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用. 在windows下路径分隔符是/(当然/在部分系统上也是可以正常运行的),在li ...
- 如何开发jQuery插件
一:普及JQuery知识 知识1:用JQuery写插件时,最核心的方法有如下两个: $.extend(object) 可以理解为,为JQuery 类添加一个静态方法. $.fn.extend(obje ...
- Keras官方中文文档:序贯模型
快速开始序贯(Sequential)模型 序贯模型是多个网络层的线性堆叠,也就是"一条路走到黑". 可以通过向Sequential模型传递一个layer的list来构造该模型: f ...
- Emacs配置(考场必备)(Emacs)
最近有几次离开自己一直坐着的座位,去别的机房考试了. 于是猛然想起来要记一记Emacs的简洁配置了. 算是把NOIP残存的记忆再拾一点起来...... 附上一些解释 (global-set-key [ ...
- 【BZOJ1483】【HNOI2009】梦幻布丁(启发式合并,平衡树)
[BZOJ1483][HNOI2009]梦幻布丁 题面 题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1 ...
- angular+ionic+cordova(实战项目开发中,持续更新自己学到的和遇到的)
最近公司开始准备做app了,大佬选择了angular+ionic+corvoda的开发结构,但是对于刚刚才开始对angular才有一点点感觉的我,就像是被一击闷棍敲了,半天没反应过来,emmm,怎么办 ...