02 MySQL之数据表的基本操作
01-创建数据表
# 切换数据库
use test_db; # 创建数据表
语法规则如下:
create table 表名 (
字段名1, 数据类型 [列级别约束条件] [默认值],
字段名2, 数据类型 [列级别约束条件] [默认值],
......
[表级别约束条件]
); 注意:
1、要创建的表名称,不区分大小写,不能使用SQL关键字。
2、数据表中创建多列,要用 逗号 隔开。
例:
create table test_db (
id INT(11),
name VARCHAR(25),
deptID INT(11),
salary FLOAT
); # 查看数据表是否创建成功
show tables;
1.1 主键约束
主键约束要求主键列的数据唯一,并且不允许为空。主键分为两种类型:单子段主键和多字段联合主键。
# 单字段主键
1、语法规则如下:
字段名 数据类型 PRIMARY KEY [默认值] create table test_db (
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptID INT(11),
salary FLOAT
); 或
create table test_db (
id INT(11),
name VARCHAR(25),
deptID INT(11),
salary FLOAT,
PRIMARY KEY(id)
);
# 多字段主键 1、语法规则如下:
PRIMARY KEY (字段1, 字段2, 字段3, ....)
例:
create table test_db (
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
PRIMARY KEY(name, deptId)
);
1.2 外键约束
外键用来在两个表的数据之间建立链接,可以是一列或者多列。一个表可以有多个外键,外键可以是空值,若不为空值,则每个外键值必须等于另一个表中主键的某个值。
外键的作用是保持数据的一致性 和 完整性。
外键的语法规则如下:
constraint 外键名 foreign key 字段名1 references 主表名 主键列1 外键名:为定义的外键约束名称,一个表中不能有相同的外键名称;
字段名:当前表需要添加外键的字段列;
主表名:被子表外键所依赖的表的名称;
主键列:主表中定义的主键列 或 主键组合。 例:
create table tb_dept1 (
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
); CREATE TABLE tb_dept5 (
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
1.3 非空约束
非空约束(NOT NULL)是指字段的值不能空。
语法规则如下:
字段名 数据类型 NOT NULL
1.4 唯一性约束
唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一次空值。
语法规则如下: 字段名 数据类型 UNIQUE create table tb_dept1 (
id INT(11) PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
); # 或
create table tb_dept1 (
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50),
CONSTRAINT SHT UNIQUE(name)
);
UNIQUE 与 PRIMARY KEY的区别:
一个表中可以有多个字段声明为UNIQUE,但只能有一个 PRIMARY KEY。
声明为 PRIMARY KEY 的列 不能有空值,但声明为 UNIQUE 的字段允许为空值(NULL)的存在。
1.5 默认约束
指定某列的默认值。DEFAULT
create table tb_dept4 (
id INT(11) PRIMARY KEY,
deptId INT(11) DEFAULT 1234,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
);
1.6 设置表的属性值自动增加
希望系统自动生成字段的主键值。AUTO_INCREMENT 关键字
create table tb_dept4 (
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
);
1.7 查看数据表的结构
# 查看数据表的基本结构语句 DESCRIBE/DESC
DESCRIBE 表名;
或简写为:
DESC 表名; mysql> desc tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(22) | NO | | NULL | |
| location | varchar(50) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)
# 查看表详细结构语句 SHOW CREATE TABLE
可以用来显示创建表时的 CREATE TABLE 语句。 # 语法格式如下:
SHOW CREATE TABLE 表名\G; 例:
mysql> SHOW CREATE TABLE tb_dept1\G;
*************************** 1. row ***************************
Table: tb_dept1
Create Table: CREATE TABLE `tb_dept1` (
`id` int(11) NOT NULL,
`name` varchar(22) NOT NULL,
`location` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec) ERROR:
No query specified
02-修改数据表
MySQL使用 ALTER TABLE 语句修改表。
常用修改表的操作有:修改表名、修改字段名或字段数据类型、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。
2.1 修改表名
语法规则如下:
ALTER TABLE 旧表名 RENAME TO 新表名; 例:
mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_dept1 |
+-------------------+
1 row in set (0.00 sec) mysql> ALTER TABLE tb_dept1 RENAME TO tb_deptment1;
Query OK, 0 rows affected (0.03 sec) mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_deptment1 |
+-------------------+
1 row in set (0.00 sec)
2.2 修改字段的数据类型
语法规则如下:
ALTER TABLE 表名 MODIFY 字段名 数据类型 表名:要修改数据类型的字段所在表的名称;
字段名:修改数据类型的字段;
数据类型:修改后字段的新数据类型。
ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);
2.3 修改字段名
语法规则如下:
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
2.4 添加字段
语法规则如下:
ALTER TABLE 表名 ADD 新字段名 新数据类型 约束条件 [FIRST | AFTER 已存在字段名]; FIRST 和 AFTER 是可选参数;
FIRST:将新添加字段设置为表的第一个字段;
AFTER:将新添加字段添加到指定的'已存在字段名'的后面。
# 添加无完整性约束条件字段
ALTER TABLE tb_dept1 ADD managerId INT(10); # 添加完整性约束条件的字段
ALTER TABLE tb_dept1 ADD memo VARCHAR(50) not null; # 在表的第一列添加一个字段
ALTER TABLE tb_dept1 ADD column1 INT(10) FIRST; # 在表的指定列之后添加一个字段
ALTER TABLE tb_dept1 ADD column2 INT(10) ALTER name;
2.5 删除字段
语法规则如下:
ALTER TABLE 表名 DROP 字段名;
2.6 修改字段的排列位置
语法格式如下:
ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST | AFTER 字段2;
2.7 更改表的存储引擎
语法格式:
ALTER TABLE 表名 ENGINE=更改后的存储引擎名;
2.8 删除表的外键约束
语法格式:
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; 外键约束名:指在定义表时 CONSTRAINT 关键字后面的参数
03-删除数据表
# 1、删除没有被关联的表
DROP TABLE [IF EXISTS] 表1, 表2, ...表n;
例:DROP TABLE IF EXISTS tb_dept1; # 2、删除被其他表关联的主表
数据存在外键关联的情况下,如果直接删除父表,结果会显示失败。
如果必须删除,可以先删除与它关联的子表,再删除父表。
但有的情况下,可能要保留子表,如要单独删除父表,只需将关联的表的外键约束条件取消,然后就可以删除父表。 具有 fk_emp_dept 的外键约束 为 子表tb_empt,父表tb_empt2的id被主表关联。 例:
ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_empt;
DROP TABLE tb_empt2;
02 MySQL之数据表的基本操作的更多相关文章
- mysql(三) 数据表的基本操作操作
mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...
- MySql修改数据表的基本操作(DDL操作)
1.查看数据库的基本语句:show databases; 2.选择相应的数据库进入语法:use 数据库名; 3.查看数据库中的表语法:show tables; 4.查看表的基本结构语句:desc 表名 ...
- MySql修改数据表的基本操作(DDL操作)
1.查看表基本结构语句: DESC 表名 2,查看表详细结构语句:show create table 表名 3.修改表名:alter table 旧表名 rename to 新表名 4.修改字段的数据 ...
- MySQL(一) 数据表数据库的基本操作
序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
- MySQL数据库 | 数据库和数据表的基本操作
第一篇博文,一个小小的纪念仪式^-^ 以下正文 一.数据库的基本操作 --数据库的操作 --连接数据库 mysql -uroot -p密码 mysql -uroot -pmysql --退出数据库 e ...
- Mariadb/MySQL数据库单表查询基本操作及DML语句
Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...
- MySQL<数据库和表的基本操作>
数据库和表的基本操作 数据库基础知识 创建数据库 就是在数据库系统中划分一块存储数据的空间 CREATE DATABASE itcast; 查看数据库 SHOW CREATE DATABASE 数据库 ...
- MySQL中数据表的查操作
查询数据表的全部内容 mysql> show tables;#查看当前数据库下的全部表 +--------------------+ | Tables_in_ceshi_ku | +------ ...
- MySQL数据库-数据表(上)
数据表的基本操作. MySQL 数据库支持多种数据类型,大致可以分为 3 类:数值类型.日期和时间类型.字符串(字符)类型. (1)数值类型 数值类型用于存储数字型数据,这些类型包括整数类型(TINY ...
随机推荐
- 第一章、接口规范之Restful规范
阅读目录 2.1 数据的安全保障 2.2 接口特征表现 2.3 多数据版本共存 2.4 数据即是资源 2.5 资源操作由请求方式决定 3.1 正常响应 3.2 重定向响应 3.3 客户端异常 3.4 ...
- 【1】Git基础
一.Git概念 1.1.Git定义 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发 ...
- 7.Bconsole操作
1. Bconsole操作 启动控制台 cd /usr/local/bacula/bin ./bconsole *help Command Description ======= ...
- Hadoop_28_MapReduce_自定义 inputFormat
1. 自定义inputFormat 1.1.需求: 无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件,此时就需要有相应解决方案; 1.2.分析: 小文件的优化 ...
- ARM体系结构与编程读书笔记——处理器的运行模式
ARM处理器共有7种运行模式,如下表: 处理器模式 描述 用户模式(User, usr) 正常程序执行的模式 快速中断模式(FIQ, fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ, ir ...
- 构建之法第二次作业【使用git和Vs实现四则运算】
[相关信息] Q A GIT地址 git地址 GIT用户名 Lin-000 学号后五位 62501 博客地址 博客地址 作业链接 此次作业链接 1.项目需求 程序接收一个命令行参数 n,然后随机产生 ...
- Python3学习笔记37-LeetCode刷题
LeetCode中国官网一个用来刷编程题的网站,收录了很多面试题.感觉还是学习到很多.记录一下思路.代码还是要多敲. 建议编写完后直接在LeetCode上运行和提交.提交时会有不同的测试用例来测试代码 ...
- 【转】高可用Redis(六):瑞士军刀之bitmap,HyperLoglog和GEO
1.bitmap位图 1.1 bitmap位图的概念 首先来看一个例子,字符串big, 字母b的ASCII码为98,转换成二进制为 01100010 字母i的ASCII码为105,转换成二进制为 01 ...
- xml树结构
概念:XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据.经常被用来作为配置文件使用. XML 使用DTD(document t ...
- Peter Shirley Ray Tracing in One Weekend(上篇)
Peter Shirley-Ray Tracing in One Weekend (2016) 原著:Peter Shirley 本书是Peter Shirley ray tracing系列三部曲的第 ...