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 ...
随机推荐
- 【前端】诸葛io收集前端js报错信息
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/zhuge_error.html 一.什么是诸葛io 诸葛io就是通过分析用户的操作事件对用户数据,行为路径等进行分 ...
- 关于 target="_blank"漏洞的分析
创建: 于 八月 30, 2016 关于 target="_blank"漏洞的分析 一.漏洞详情:首先攻击者能够将链接(指向攻击者自己控制的页面的,该被控页面的js脚本可以对母页 ...
- Linux CentOS7下安装python3
在CentOS7下,默认安装的就是python2.7,我现在来教大家如何安装python3: 1.首先安装python3.6可能使用的依赖 # yum -y install openssl-devel ...
- 【mysql】mysql主从复制
mysql主从复制配置 主服务器:192.168.0.100 从服务器 192.168.0.101 主服务器配置 my.ini(window下 linux 下是my.cnf) #开启二进制日志 log ...
- Adobe RIA 开发工程师认证考试大纲
AdobeRIA 开发工程师认证考试大纲 考题数量:共90道题,考试通过正确率:60% 考试时间:120分钟 试题种类:单选题.多选题和判断题 1. Adobe RIA基础知识(2道题) ...
- OpenStack_I版 4.Dashboard部署
由python的DjangoWeb框架开发的 使用keystone默认的角色来访问各种服务 Dashboard安装 Dashboard是openstack的Web管理界面,需要将它 ...
- lvy打包到本地
图解
- js中的回调函数的理解
一,常见的但是不是特别注意的回调方法. 1.1,ajax $.ajax({ url:"test.json", type: "GET", data: {usern ...
- ssm+maven多模块项目整合
我的项目一共会分为4个模块:entity.dao.service和web 一.创建父模块 填写GroupId与ArtifactId 填写项目名称和项目保存路径 因为是父模块所以src包可以删除 二.创 ...
- Python Cookbook(第3版)中文版:15.14 传递Unicode字符串给C函数库
15.14 传递Unicode字符串给C函数库¶ 问题¶ 你要写一个扩展模块,需要将一个Python字符串传递给C的某个库函数,但是这个函数不知道该怎么处理Unicode. 解决方案¶ 这里我们需要考 ...