Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第三章《数据表的基本操作》

第三章《数据表的基本操作》

作者头像
互联网-小阿宇
发布于 2022-11-21 09:22:56
发布于 2022-11-21 09:22:56
1.2K0
举报
文章被收录于专栏:互联网-小阿宇互联网-小阿宇

1.关于表 表示数据库存储数据的基本单位。一个表可以包含若干个字段或者是记录。表的操作包括创建表、修改表、删除表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性约束的过程。 1.创建表: 数据表属于数据库,在创建数据表之前,应该使用“USE <数据库名>”移动到指定的数据库下。 如果没有选择数据库,创建表时会报错; 创建表的语法: CREATE TABLE table_name ( 字段1 数据类型 [完整性约束条件], 字段2 数据类型 [完整性约束条件], );

mysql> create table hahaha //创建表 -> ( -> id INT(10), -> name VARCHAR(25), -> sex VARCHAR(10) -> );

mysql> show tables; //查看表 ±-------------+ | Tables_in_hy | ±-------------+ | hahaha | ±-------------+

mysql> desc hahaha; //查看表的结构 ±------±------------±-----±----±--------±------+ | Field | Type | Null | Key | Default | Extra | ±------±------------±-----±----±--------±------+ | id | int(10) | YES | | NULL | | | name | varchar(25) | YES | | NULL | | | sex | varchar(10) | YES | | NULL | | ±------±------------±-----±----±--------±------+

2.什么是完整型约束条件? 完整性约束条件对字段进行限制,要求用户只能向字段中写入符合条件的数据,如果不满足约束条件数据库将不执行该数据的写入操作。

常用的约束条件: PRIMARY KEY(primary key): 标识该字段为该表的主键,可以唯一的标识数据。(特点:非空、唯一); FOREIGN KEY(foreign key): 表示该字段为该表的外键,是与之联系的某表的主键。 NOT NULL(not null): 非空,标识该字段的值不能为空; UNIQUE(unique): 唯一,标识该字段的值是唯一的; AUTO_INCREMENT(auto_increment): 自增,表示该字段的值自动增加。一般对应数据类型INT,默认从1开始递增 DEFAULT(default):为该字段设置默认值; UNSIGNED(unsigned):无符号,值从0开始,无负数; ZEROFILL(zerofill):零填充,当数据的显示长度不够的时候可以使用在前面补0的效果填充值指定长度, 字段会自动添加UNSIGNED约束;

2.1使用主键约束 主键是一个特殊字段,每一个表只能设置一个主键,主键约束要求主键列的数据唯一,可以唯一的标识表中的数据并且不能为空(非空且唯一)。 添加主键的语法: 1.在创建数据表的时候设置主键; (1)单字段主键; 语法:字段名 数据类型 PRIMARY KEY mysql> create table hahaha2 -> ( -> id int(11) PRIMARY KEY, -> name VARCHAR(10), -> sex VARCHAR(10) -> );

mysql> desc hahaha2; ±------±------------±-----±----±--------±------+ | Field | Type | Null | Key | Default | Extra | ±------±------------±-----±----±--------±------+ | id | int(11) | NO | PRI | NULL | | | name | varchar(10) | YES | | NULL | | | sex | varchar(10) | YES | | NULL | | ±------±------------±-----±----±--------±------+

语法:在所有字段都规定好了之后,在所有字段的最后面来设置主键 字段1 数据类型 [完整性约束], 字段2 数据类型 [完整性约束], 字段N 数据类型 [完整性约束], [CONSTRAINT<主键名>] PRIMARY KEY (字段1,字段2,字段3,…)

2.用修改表的方法也可以添加主键: ALTER TABLE 表名 ADD PRIMARY KEY (字段名)

2.3使用外键: 外键用来在两个数据表之间建立连接,它可以是一列,也可以是多列; 语法: 在创建表的时候添加 字段1 数据类型 [完整性约束], 字段2 数据类型 [完整性约束], 字段N 数据类型 [完整性约束], [CONSTRAINT <外键名>]FOREIGN KEY (字段1,字段2,字段N) REFERENCES 主表(主键列)

修改表的方式添加外键: ALTER TABLE 子表名 ADD CONSTRAINT 外键名 FOREIGN KEY (字段) REFERENCES 父表名 (父表主键列)

注意; 1.关联的父表列,一定是父表的主键列 2.关联的父表如果为联合主键是,先关联联合主键中的第一个字段 3.关联父表时,被关联的外键的数据类型要和父表主键的数据类型一致,否则关联失败 4.关联父表时,父表和子表的存储引擎必须为InnoDB,MyISAM引擎不支持外键功能。 5.要避免书写错误 6.如果两个表之间有外键关联,如果我们想要删除父表,必须先解除外键的关系,或者先删除掉子表, 否则无法删除父表

2.4使用非空约束 非空约束指字段的值不能为空 语法: 在创建表时 字段名 数据类型 NOT NULL

2.5 唯一约束: 给字段的值添加唯一属性,添加之后,该字段不能插入重复的值 语法; 1.直接在创建表时,再要设置唯一性的字段数据类型后添加UNIQUE 2.在所有字段后面添加:[CONSTRAINT 约束名] UNIQUE (字段);

2.6使用默认约束条件; 默认约束是给字段设置默认值,如果在插入数据的时候没有给改列赋值,则系统会自动将默认值插入到该列。 添加语法: 字段名 数据类型 DEFAULT(默认值)

2.7 设置自增约束 要求字段的数据类型为数字类型, 语法; 字段 数据类型 AUTO_INCREMENT

3.修改数据表; 3.1修改表名 一个数据库里的每一个数据表的名称都是唯一的。 语法: ALTER TABLE <旧表名> RENAME [TO] <新表名>; 例如:

注意: 还可以通过修改表名的语法把A库里面的teacher表移动到B库里。 ALTER TABLE teacher RENAME TO B.teacher 例子:

3.2 修改字段名; 语法; ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新的数据类型>; mysql> DESC teacher; ±------±------------±-----±----±--------±------+ | Field | Type | Null | Key | Default | Extra | ±------±------------±-----±----±--------±------+ | name | varchar(20) | NO | PRI | | | | sex | varchar(20) | YES | | NULL | | | age | int(11) | YES | | NULL | | ±------±------------±-----±----±--------±------+ 3 rows in set (0.00 sec)

mysql> ALTER TABLE teacher CHANGE age id INT(11); Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC teacher; ±------±------------±-----±----±--------±------+ | Field | Type | Null | Key | Default | Extra | ±------±------------±-----±----±--------±------+ | name | varchar(20) | NO | PRI | | | | sex | varchar(20) | YES | | NULL | | | id | int(11) | YES | | NULL | | ±------±------------±-----±----±--------±------+ 3 rows in set (0.00 sec)

3.3修改字段的数据类型: 语法: ALTER TABLE 表名 MODIFY <字段名> <新数据类型>; 例子; mysql> DESC teacher; ±------±------------±-----±----±--------±------+ | Field | Type | Null | Key | Default | Extra | ±------±------------±-----±----±--------±------+ | name | varchar(20) | NO | PRI | | | | sex | varchar(20) | YES | | NULL | | | id | int(11) | YES | | NULL | | ±------±------------±-----±----±--------±------+ 3 rows in set (0.00 sec)

mysql> ALTER TABLE teacher MODIFY id VARCHAR(20); Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC teacher; ±------±------------±-----±----±--------±------+ | Field | Type | Null | Key | Default | Extra | ±------±------------±-----±----±--------±------+ | name | varchar(20) | NO | PRI | | | | sex | varchar(20) | YES | | NULL | | | id | varchar(20) | YES | | NULL | | ±------±------------±-----±----±--------±------+ 3 rows in set (0.00 sec)

3.4添加新的字段 语法; ALTER TABLE <表名> ADD <新字段名> <数据类型> <约束条件> [first/after 已存在的字段名];

3.5修改字段的摆列位置; 语法: alter table <表名> modify <字段名> <数据类型> first/after <字段2>

3.6删除字段: 语法: alter table <表名> drop 字段名;

3.7 创建表的时候选择不同的存储引擎; 语法: create table <表名> ( 字段1 数据类型 约束条件, 字段2 数据类型 约束条件, 。。。 )ENGINE=InnoDB/MyISAM;

查看表详细结构;

3.8更改表的存储引擎; alter table <表名> ENGINE=更改后的引擎;

3.9 删除数据表; 语法 : drop table 表1,表2,表N… [IF EXISTS]:不加这个,如果我们要删除的表不存在就会报错,加上呢,不存在也会执行删除操作,不会返回错误信息

注意:如果我们要删除的表是另一个设置了外键的表的父表,无法直接删除,我们需要先删除外键或者是把子表删掉,才可以删除这个表;

3.10 删除表的外键约束: 语法: alter table <表名> drop foreign key <外键名> ; 注意:如果没有设置外键名,外键名就是字段名;

3.11 删除表的主键约束; 语法: alter table <表名> drop PRIMARY KEY;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mysql-5-数据表的基本操作
1.创建表:之前需要use database database_name 然后create table 表名(); 例:创建员工表tb_employee1,结构如下表所示 字段名称 数据类型 备注 id int(11) 员工编号 name varchar(25) 员工名称 depld int(11) 所在部门编号 salary float 工资 mysql> create database
用户1173509
2018/01/17
1.7K0
MySQL基本操作
表是数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录。表的操作 包括创建表、查看表、修改表和删除表。
星哥玩云
2022/08/18
2.1K0
MySQL基本操作
2.MySQL表操作
表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段
changxin7
2019/09/10
1.3K0
SQL学习笔记三之MySQL表操作
https://www.cnblogs.com/JetpropelledSnake/p/9094125.html
Jetpropelledsnake21
2019/02/15
3850
MySQL的库表详细操作
  关于库的内容,咱们就说这些吧,哈哈,有点少是吧,不是咱们的重点,来看下面的表操作~~~
changxin7
2022/05/06
1.1K0
MySQL的库表详细操作
【云原生进阶之数据库技术】第一章MySQL-2.2-数据库表基本操作
语法:create table table_name(col_name1 data_type1,col_name2 data_type2,....); 创建t_test数据表,字段为id,name(数据类型中的数字是字段长度)
江中散人_Jun
2024/02/23
1660
【云原生进阶之数据库技术】第一章MySQL-2.2-数据库表基本操作
MariaDB 表的基本操作
在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位,数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的、每一行代表一条唯一的记录,每一列代表记录中的一个域.
王瑞MVP
2022/12/28
1.4K0
MySQL常见的库操作,表操作,数据操作集锦及一些注意事项
一 库操作(文件夹) 1 数据库命名规则 可以由字母、数字、下划线、@、#、$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 2 数据库相关操作 创建库 create database 数据库名 ;    (注意要引号结尾)    (默认latin1) 在创建数据库的时候也可指定编码格式,如: create database 数据库名 charset utf8;  选择数据库 use 数据库名    切换到指定数据库下  查看库 show database
用户1214487
2018/01/24
1K0
MySQL之库表操作详述
创建库 create database 库名(charset utf8 对库的编码进行设置,不写就用默认值) 库名可以由字母、数字、下划线、特殊字符,要区分大小写,唯一性,不能使用关键字,不能用数字开头,最长128位 查看数据库 注意:在cmd中输入指令是不区分大小写的 show databases;  #这查看的是所有的库 show create database db1;  #这是查看指定的库 select database();      #这是查看当前的库 选择数据库 USE 数据库名          #相当于在电脑上双击文件夹,进入文件夹 删除数据库 DROP DATABASE 数据库名; 修改数据库 alter database db1 charset utf8;    #只能修改库的编码格式
星哥玩云
2022/08/17
7140
MySQL之库表操作详述
MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解
在MySQL数据库中,约束是一种对数据表中数据进行限制和检查的方法,可以保证数据表中数据的完整性和一致性。本文将深入剖析MySQL中的各种约束,包括非空约束、唯一性约束、主键约束、自增列、外键约束、默认值约束以及CHECK约束等等,同时结合开发场景给出约束使用和实践的技巧和方法,帮助读者更好地掌握MySQL中数据表相关操作的技巧和方法。
默 语
2024/11/20
3380
MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解
Mysql常用sql语句(2)- 操作数据表
https://www.cnblogs.com/poloyy/category/1683347.html
小菠萝测试笔记
2020/06/09
5400
Mysql常用sql语句(2)- 操作数据表
Python 高级笔记第二部分:数据库的概述和MySQL数据表操作
SQL结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
杨丝儿
2022/02/24
1.8K0
Python 高级笔记第二部分:数据库的概述和MySQL数据表操作
MySQ-表关系-外键-修改表结构-复制表-03
查找表关系,一定要分别站在两张表的角度全部考虑完毕才能下结论,否则无法得出正确答案
suwanbin
2019/09/26
1.2K0
MySQ-表关系-外键-修改表结构-复制表-03
MySQL快速入门(二)
ps:modify只能改字段数据类型完整约束,不能改字段名,但是change可以!
HammerZe
2022/03/24
2.6K0
MySQL快速入门(二)
1-3 SQL与建立关系型数据表
SQL(Structured Query Language结构化查询化语言)不仅仅具有查询功能。它是一个通用性的数据库操纵、定义语言,被普遍使用在信息系统的应用中。SQL的数据定义语句首先是针对基本表、视图和索引的创建、删除和修改,具体的定义包括:
py3study
2020/01/06
1.4K0
1-3  SQL与建立关系型数据表
【MySQL】:约束全解析
在为字段添加约束时,我们只需要在字段之后加上约束的关键字即可,需要关注其语法。我们执行上面的SQL把表结构创建完成,然后接下来,就可以通过一组数据进行测试,从而验证一下,约束是否可以生效。
屿小夏
2024/03/04
3340
【MySQL】:约束全解析
第13章_约束
数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
程序员Leo
2023/08/07
4690
第13章_约束
《MySQL入门很轻松》第5章:数据完整性及其分类
数据库不仅要能存储数据,它也必须能够保证所保存的数据的正确性,为此MySQL 为用户提高了完整性约束条件。
炒香菇的书呆子
2022/02/17
9050
《MySQL入门很轻松》第5章:数据完整性及其分类
MySQL数据库、数据表的基本操作及查询数据
存储引擎比较 |功能|MyISAM|Memory|InnoDB|Archive| |---|---|---|---|---| |存储限制|256TB|RAM|64TB|None| |支持事务|No|No|Yes|No| |支持全文索引|Yes|No|No|No| |支持数索引|Yes|Yes|Yes|No| |支持哈希索引|No|Yes|No|No| |支持数据缓存|No|N/A|Yes|No| |支持外键|No|No|Yes|No|
星哥玩云
2022/08/17
3.2K0
数据库之表操作
表(TABLE) 是一种结构化的文件,可用来存储某种特定类型的数据。表中的一条记录有对应的标题,标题 称之为 表的字段。
全栈程序员站长
2022/07/21
4740
数据库之表操作
相关推荐
Mysql-5-数据表的基本操作
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档