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

Mysql-5-数据表的基本操作

作者头像
用户1173509
发布于 2018-01-17 06:54:40
发布于 2018-01-17 06:54:40
1.7K00
代码可运行
举报
文章被收录于专栏:CaiRuiCaiRui
运行总次数:0
代码可运行

1.创建表:之前需要use database database_name 然后create table 表名();

例:创建员工表tb_employee1,结构如下表所示

字段名称

数据类型

备注

id

int(11)

员工编号

name

varchar(25)

员工名称

depld

int(11)

所在部门编号

salary

float

工资

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create database aa;
mysql> use aa;
mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float);

2.主键约束:主键又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不能为空。主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询速度。主键分为两种类型:单字段主键和多字段联合主键。

(1)单字段主键

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_employee1(id int(11)primary key,name varchar(25),depld int(11),salary float);
mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id));

(2)多字段联合主键

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id,name));

3.外键约束:外键用来在两个表之间建立联系,它可以是一列或者多列。一个表可以有一个或者多个外键。外键对应的是参照完整性,一个表的外键可以是空值,若不为空值,则每一个外键必须等于另一个表中主键的某个值。

下面介绍几个概念。是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的主键。例如:部分表的主键id,在表tb中有一个键deptld与这个id关联。

主表(父表):对于两个具有关联关系的表而言,相关字段中主键所在的那个表就是主表。

从表(自表):对于两个具有关联关系的表而言,相关字段中外键所在的那个表就是从表。

例:定义数据表tb_employee5,并且在该表中创建外键约束

创建一个部门表tb_dept1,表结构如下表所示

字段名称

数据类型

备注

id

int(11)

部门编号

name

varchar(22)

部门名称

location

varchar(50)

部门位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_dept1(id int(11)primary key,name varchar(22),location varchar(50));
定义数据表tb_employee5,让它的deptld字段作为外键关联到tb_dept1的主键id:
mysql> create table tb_employee5(id int(11)primary key,name varchar(25),deptld int(11),salary float,constraint fk_emp_dept1 foreign key(deptld) references tb_dept1(id));

4.非空约束(not null):是指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

语法规则:字段名 数据类型 not null

例:定义数据表tb_employee6,指定员工的名称不能为空

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_employee6(id int(11)primary key,name varchar(25)not null,deptld int(11),salary float);

5.唯一性约束:要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或者多列都不能出现重复值。

(1)在定义完列之后直接指定唯一约束

语法规则:字段名 数据类型 unique

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_dept2(id int(11)primary key,name varchar(22)unique,location varchar(50));

(2)在定义完所有列之后指定唯一约束

语法规则:constraint 约束名 unique(字段名)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_dept3(id int(11)primary key,name varchar(22),location varchar(50),constraint sth unique(name));

unique和primary key的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key声明;声明为primary key的列不允许有空值,但是声明为unique的字段允许空值的存在。

6.默认约束:指定某列的默认值。如男性同学较多,性别就可以默认为“男”。如果插入一条新的记录时没有为这个字段赋值,那么系统自动会为这个字段赋值为男。

语法规则:字段名 数据类型 default 默认值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
例:mysql> create table tb_employee7(id int(11)primary key,name varchar(25)not null,deptld int(11)default 1111,salary float);

7.设置数据表的属性值自动增加:在数据库应用中,经常希望在每次插入新数据时,系统会自动生成字段的主键值。可以为表主键添加auto_increment关键字来实现。在mysql中,默认情况下auto_increment初始值为1,每新增一条记录,字段自动加1.一个表只能有一个字段使用auto_increment约束,且每个字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(tinyint/samllint/int/bigint)。

语法规则:字段名 数据类型 auto_increment

例:定义数据表tb_employee8,指定员工标号自动增加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> create table tb_employee8(id int(11)primary key auto_increment,name varchar(25)not null,deptld int(11),salary float);
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> insert into tb_employee8(name,salary) values('lucy',1000),('lii',800),('cai',20000);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from tb_employee8;
+----+------+--------+--------+
| id | name | deptld | salary |
+----+------+--------+--------+
|  1 | lucy |   NULL |   1000 |
|  2 | lii  |   NULL |    800 |
|  3 | cai  |   NULL |  20000 |
+----+------+--------+--------+
3 rows in set (0.00 sec)

8.查看数据表的结构

查看表基本结构:describe 表名 或 desc 表名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> desc tb_employee8;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(25) | NO   |     | NULL    |                |
| deptld | int(11)     | YES  |     | NULL    |                |
| salary | float       | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+

(1)NULL:表示该列是否可以存储null值

(2)key:表示该列是否已经编制索引。pri为该列主键的一部分;uni表示该列是unique索引的一部分;mul表示在列中某个给定值允许出现多次。

9.查看表详细结构

语法规则:show create table 表名\G

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> show create table tb_employee8\G
*************************** 1. row ***************************
       Table: tb_employee8
Create Table: CREATE TABLE `tb_employee8` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) NOT NULL,
  `deptld` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

10.修改数据表:修改数据库中已经存在的数据表结构。常用的修改表的操作有:修改表名,修改字段数据类型或字段名,增加和删除字段,修改字段的排列位置,更改表的存储引擎,删除表的外键约束等。

(1)修改表名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 旧表名 rename 新表名
例:mysql> alter table tb_dept3 rename tb_deptment3;

(2)修改字段数据类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 表名 modify 字段名 数据类型
例:mysql> alter table tb_dept1 modify name varchar(30);

(3)添加字段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 表名 add 新字段名 数据类型
例1:mysql> alter table tb_dept1 add managerld int(20);(没有完整性约束条件的字段)
例2:mysql> alter table tb_dept1 add column1 varchar(12) not null;(添加有约束条件)
例3:mysql> alter table tb_dept1 add column2 int(11) first;(添加到第一列)
例4:mysql> alter table tb_dept1 add column3 int(11) after name;(添加到name后一列)

(4)删除字段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 表名 drop 字段名
例:mysql> alter table tb_dept1 drop column3;

(5)修改字段排序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 表名 modify 字段1 数据类型 first after 字段21:mysql> alter table tb_dept1 modify id int(11) first;2:mysql> alter table tb_dept1 modify column2 int(11) after column1;

(6)更改表的数据引擎

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 表名 engine=更改后的存储引擎
例:mysql> alter table tb_dept1 engine=innodb;

(7)删除表的外键约束

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter table 表名 drop foreign key 外键约束名

(8)修改字段名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> alter table customers change c_contact c_phone varchar(50);

11.删除数据表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop table 表12 。。。

删除被其他表关联的主表:先删除字表,再删除主表(或取消外键约束,删除主表)

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mysql使用指南
1.下载zip安装包,解压,重命名为mysql,移动到你想要的地方2.配置环境变量把bin目录加到path变量中去...
乐心湖
2021/01/18
1.1K0
MySQL学习笔记(3) - 表的基本操作
使用 SHOW CREATE TABLE 语句可以用来显示创建表时的 SQL 语句。示例:
张云飞Vir
2021/06/24
4670
MySQL(五)之DDL(数据定义语言)与六大约束
前言 前面在数据库的讲解中,其实很多东西都非常的细节,在以前的学习过程中我都是没有注意到的。可能在以后的工作中会碰到所以都是做了记录的。 接下来,我将分享的是MySQL的DDL用来对数据库及表进行操作的。   mysql中保存了很多数据库、一个数据库中可以保存很多表。   对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。  注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)   前提:表是在数据库下的,所以要先确实使用哪个数据库。 一、DDL之
用户1195962
2018/01/18
2.1K0
MySQL(五)之DDL(数据定义语言)与六大约束
Python 高级笔记第二部分:数据库的概述和MySQL数据表操作
SQL结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
杨丝儿
2022/02/24
1.8K0
Python 高级笔记第二部分:数据库的概述和MySQL数据表操作
第三章《数据表的基本操作》
1.关于表 表示数据库存储数据的基本单位。一个表可以包含若干个字段或者是记录。表的操作包括创建表、修改表、删除表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性约束的过程。 1.创建表: 数据表属于数据库,在创建数据表之前,应该使用“USE <数据库名>”移动到指定的数据库下。 如果没有选择数据库,创建表时会报错; 创建表的语法: CREATE TABLE table_name ( 字段1 数据类型 [完整性约束条件], 字段2 数据类型 [完整性约束条件], … );
全栈程序员站长
2021/06/08
1.4K0
第三章《数据表的基本操作》
02 . Mysql基础操作及增删改查
SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
iginkgo18
2020/09/27
1.9K0
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
MySQL基本操作
表是数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录。表的操作 包括创建表、查看表、修改表和删除表。
星哥玩云
2022/08/18
2.1K0
MySQL基本操作
超详细的MySQL三万字总结[通俗易懂]
Java 中创建对象: Student s = new Student(1, “张三”) 存在内存中 学习了 Java IO 流:把数据保存到文件中。
全栈程序员站长
2022/08/27
3.5K0
超详细的MySQL三万字总结[通俗易懂]
呕心沥血写了三天3两夜24k字的MySQL详细教程
 存储数据的仓库. 其本质是一个文件系统,数据库按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
陶然同学
2023/02/27
7100
呕心沥血写了三天3两夜24k字的MySQL详细教程
2.MySQL表操作
表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段
changxin7
2019/09/10
1.3K0
操作数据表
打开数据库    use 数据库 ---- use mydata 查看数据库    show databases 显示当前用户打开的数据库   SELECT DATABASE(); 创建数据表 语法:CREATE TABLE [IF NOT EXISTS] table_name(             column_name data_type             ) 例子:创建student数据表             CREATE TABLE student(              
用户1624346
2018/04/18
8760
MariaDB 表的基本操作
在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位,数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的、每一行代表一条唯一的记录,每一列代表记录中的一个域.
王瑞MVP
2022/12/28
1.4K0
软件测试|MySQL主键约束详解:保障数据完整性与性能优化
主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。
霍格沃兹测试开发Muller老师
2023/10/25
3610
MySQL操作之数据定义语言(DDL)(二)
简称DDL(Data Defifinition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等。
ha_lydms
2023/08/09
2570
MySQL操作之数据定义语言(DDL)(二)
数据库之表操作
表(TABLE) 是一种结构化的文件,可用来存储某种特定类型的数据。表中的一条记录有对应的标题,标题 称之为 表的字段。
全栈程序员站长
2022/07/21
4740
数据库之表操作
MySQL常用基础 - 小白必看
2、create database if not exists 数据库名 (判断数据库是否存在,不存在则创建)
EXI-小洲
2023/01/09
1.3K0
MySQL常用基础 - 小白必看
【MySQL】:约束全解析
在为字段添加约束时,我们只需要在字段之后加上约束的关键字即可,需要关注其语法。我们执行上面的SQL把表结构创建完成,然后接下来,就可以通过一组数据进行测试,从而验证一下,约束是否可以生效。
屿小夏
2024/03/04
3350
【MySQL】:约束全解析
2024Mysql And Redis基础与进阶操作系列(3)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。
盛透侧视攻城狮
2024/10/22
2380
2024Mysql And Redis基础与进阶操作系列(3)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
mysql高级
主键是一行数据的唯一标识,要求非空且唯一。一般我们都会给没张表添加一个主键列用来唯一标识数据。
777nx
2023/05/02
6730
mysql高级
相关推荐
Mysql使用指南
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验