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 ...
随机推荐
- Vue第一个自定义组件:数字输入框(number-input)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- pycaffe︱caffe中fine-tuning模型三重天(函数详解、框架简述)
本文主要参考caffe官方文档[<Fine-tuning a Pretrained Network for Style Recognition>](http://nbviewer.jupy ...
- 一句python,一句R︱模块导入与查看、数据读写出入、数据查看函数、数据类型、遍历文件
先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas中有类似R中的read.table的功能,而 ...
- MySQL通过localhost无法连接数据库的解决
问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常.MySQL的权限设置正确,且通过mysql命令行客户端 ...
- Rweibo , wordcloud
利用Rweibo ,wordcloud做词云 #导入需要的包,不存在则下载 require(Rweibo) #必须先调用rJava不然Rwordseg 无法使用 library(rJava) requ ...
- MyEclipse之Widget is disposed
1 错误描述 2 错误原因 3 解决办法
- PCI设备内存操作函数总结
1. ExAllocatePool() 函数说明: ExAllocatePool allocates pool memory of the specified type and returns a ...
- Linux 显示权限
Linux 显示权限 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -lh 总用量 56K -rw-r--r-- 1 youhaidong youhai ...
- 通过ajax记录网站UV、PV数
1.通过jquery记录网站UV.PV数据 util.track = { log: function () { var referrer = util.browser.getReferrer(), h ...
- Octave 命令积累
Octave Learning : puts all elements into a single vector :put B at A's right :put B at A's Bottom :将 ...