数据库之数据表基本操作

目录

一、创建数据表

1.创建表的语法形式

2.使用SQL语句设置约束条件

1.设置主键约束

2.设置自增约束

3.设置非空约束

4.设置唯一性约束

5.设置无符号约束

6.设置默认约束

7.设置外键约束

8.设置表的存储引擎

二、查看表结构

1.查看表基本结构

2.查看建表语句

三、修改表

1.修改表名

2.修改字段数据类型

3.修改字段名

4.添加字段

5.删除字段

6.修改字段顺序

7.修改存储引擎

四、删除表

1.删除没有被关联的表

2.删除被其他表关联的主表


一、创建数据表

1.创建表的语法形式

创建数据表,实际上是规定列属性和实现数据完整性约束的过程,基本语法形式如下:

CREATE TABLE table_name(

Col_name1 data_type [Constraints],

Col_name2 data_type [Constraints],

......

Col_namen data_type [Constraints],

);


上述语句中,CREATE为创建数据表的关键字,table_name表示数据表的名称,表的结构在括号中定义,col_name表示字段名,data_type表示数据类型,Constraints表示约束条件,各个字段之间使用(,)进行分隔,语句的最后以分号(;)结束。

注:一行叫做一个记录,一列叫做一个字段。

数据表命名应遵循以下原则:

长度最好不要超过30个字符;

多个单词之间使用下划线“_”分隔,不允许有空格;

不允许为MySQL关键字;

不允许与同一数据库中的其他数据表同名。

创建数据库table_name:

CREATE DATABASE table_name;

选择数据库table_name:

USE table_name;

查看当前数据库中所有的数据表:

SHOW TABLES;


2.使用SQL语句设置约束条件

在实际应用中,一张完整的数据表会包含各种约束条件。设置约束条件后,系统会在数据插入数据库之前根据约束条件对其合法性进行检查,保证数据的准确性和一致性。

1.设置主键约束

主键,也称主码,用于标识表中唯一的一条记录。一张表中只能有一个主键,且主键值不能为空。

主键约束是最常用的一种约束,设置主键约束的关键字为PRIMARY KEY,使用SQL语句可以在定义字段时设置主键约束,也可以在定义好表中所有字段后再设置主键约束。

①定义字段时设置主键约束。

语法形式为:

Col_name data_type PRIMARY KEY

②定义所有字段后设置主键约束。

语法形式为:

PRIMARY KEY(col_name)

2.设置自增约束

设置自增约束的关键字为AUTO_INCREMENT。

语法形式如下:

Col_name data_type AUTO_INCREMENT

设置自增约束应注意以下几点:

一张表中只能设置一个字段为自增约束,并且该字段必须为主键。

默认的初始值为1,每增加一条记录,字段值自动增加1。

字段类型必须为整数类型。

3.设置非空约束

设置非空约束的关键字为NOT NULL,作用是规定字段的值不能为空,用户在向数据表中插入数据时,如果设置非空约束的字段没有指定值,系统就会报错。

语法形式如下:

Col_name data_type NOT NULL

4.设置唯一性约束

当数据表中某个字段的值不允许重复时,可以使用唯一性约束。当用户在设置了唯一性约束的字段中插入的数据与数据表中已存在的数据相同时,系统会报错。

设置唯一性约束的关键字为UNIQUE,同主键约束一样,唯一性约束也有两种设置方法,一种是在定义字段时设置,还有一种定义好表中所有字段后再设置。

①定义字段时设置唯一性约束。

语法形式为:

Col_name data_type UNIQUE

②定义所有字段后设置唯一性约束

语法形式为:

UNIQUE KEY(col_name)

5.设置无符号约束

为字段设置无符号约束的关键字为UNSIGNED,其作用是规定此列所存储的数据不为负数。

语法形式如下:

Col_name data_type UNSIGNED

6.设置默认约束

当向数据表中插入一条记录时,如果没有为某个字段赋值,那么系统就会将其值设置为NULL,如果为字段设置默认约束,则系统会自动将默认值插入到此字段中。

设置默认约束的关键字为DEFAULT。

语法形式如下:

Col_name data_type DEFAYLT value

7.设置外键约束

在关系数据库中,数据表之间是由关系来联系彼此的,一张数据表中的某个字段可能是另外一张数据表的主键,为这个字段设置外键约束,就可以将这两张表关联在一起。设置外键约束的主要作用是保证数据的完整性。

外键可以不是所属数据表的主键,但会对应着另外一张数据表的主键。

语法形式如下:

CONSTRAINT key_name FOREIGN KEY(child_col_name)

REFERENCES parent_table_name(parent_col_name)


CONSTRAINT,FOREIGN KEY和REFERENCES为设置外键约束的关键字,key_name表示外键名,child_col_name表示从表中需要设置外键约束的字段名,parent_table_name表示主表名,parent_col_name表示主表中主键的字段名。

设置外键约束时应注意以下几点:

主表和从表必须使用InnoDB存储引擎。

设置外键约束的字段和关联的主键必须具有相同的数据类型。整数类型的大小和符号必须相同;字符串类型的长度可以不相同,但对于非二进制字符串,字符集和排序规则必须相同。

8.设置表的存储引擎

在创建表时,如果不使用默认存储引擎,就需要单独设置存储引擎。

CREATE TABLE table_name(

Col_name1 data_type [Constraints],

Col_name2 data_type [Constraints],

......

Col_namen data_type [Constraints],

)ENGINE=存储引擎;

二、查看表结构

1.查看表基本结构

查看表结构的关键字为DESCRIBE。

语法形式如下:

DESCRIBE table_name;

查询结构中的参数及其意义:

Field:表示字段名称。

Type:表述数据类型。

Null:表示是否可以存储空值。

Key:表示是否创建索引,PRI表示主键索引,UNI表示唯一索引。

Default:表示默认值。

Extra:表示与字段有关的附加信息。

2.查看建表语句

使用SHOW CREATE TABLE语句可以查看表的建表语句。

语法形式如下:

SHOW CREATE TABLE goods \G

三、修改表

1.修改表名

修改数据表名的关键字为RENAME。

语法形式如下:

ALTER TABLE old_table_name RENAME new_table_name;

2.修改字段数据类型

修改字段数据类型的关键字为MODIFY。

语法形式如下:

ALTER TABLE table_name MODIFY col_name new_data_type;

3.修改字段名

修改数据表字段名称的关键字为CHANGE。

语法形式如下:

ALTER TABLE table_name CHANGE old_col_name new_col_name data_type;

4.添加字段

①在表的最后一列添加字段

添加字段的关键字为ADD。

语法形式如下:

ALTER TABLE table_name ADD col_name data_type;

②在表的第一列添加字段。

语法形式如下:

ALTER TABLE table_name ADD col_name data_type FIRST;

③在表的指定列之后添加字段。

语法形式如下:

ALTER TABLE table_name ADD col_name1 data_type AFTER col_name2;

5.删除字段

删除数据表字段的关键字为DROP。

语法形式如下:

ALTER TABLE table_name DROP col_name;

6.修改字段顺序

修改字段顺序的关键字为MODIFY。

语法形式如下:

ALTER TABLE table_name MODIFY col_name data_type FIRST|AFTER col_name2;


其中col_name表示要修改的字段,data_type表示字段数据类型,FIRST和AFTER col_name2分别表示修改为表的第一个字段和修改为col_name2字段之后。

7.修改存储引擎

用户可以在创建表时设置存储引擎,也可以在表创建完成之后修改表的存储引擎。

语法形式如下:

ALTER TABLE table_name ENGINE=e_name;

在修改存储引擎之前,查看当前表的存储引擎。

语法形式如下:

SHOW CREATE TABLE table_name \G

四、删除表

1.删除没有被关联的表

使用DROP关键字可以一次性删除一个或多个没有被其他表关联的表。

语法形式如下:

DROP TABLE [IF EXISTS] table_name1,table_name2,......,table_namen;

注:如果系统删除的数据表不存在,系统会提示出错误信息并中断执行,加上“IF EXISTS”参数后,系统会在执行删除命令之前判断表是否存在,如果表不存在,命令仍可执行,但系统会提示警告。

2.删除被其他表关联的主表

如果数据表之间存在外键关联,那么直接删除主表,系统会提示错误信息,这种情况下,可以先删除与它关联的从表,再删除主表。但有时需要保留从表中的数据,此时需要解除主表和从表之间的关联,即删除从表中的外键约束。

删除外键的语法形式如下:

ALTER TABLE table_name DROP FOREIGN KEY key_name;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么要学习网安技术?

学习网络安全(网安)技术在当今社会变得尤为重要,这主要源于以下几个方面的原因: 保护个人隐私:随着互联网的普及,个人信息如姓名、地址、电话号码、甚至银行账户信息等都在网络上留下了痕迹。学习网安技术可…

(十)Spring教程——Spring配置概述

目录 前言 1.Spring容器高层视图 2.基于XML的配置 前言 在使用Spring所提供的各项丰富而神奇的功能之前,必须在Spring IoC容器中装配好Bean,并建立好Bean和Bean之间的关联关系。Spring的配置文件已经很精简了,但是广大的开发者希望它做得更…

AV1技术学习:Transform Coding

对预测残差进行变换编码,去除潜在的空间相关性。VP9 采用统一的变换块大小设计,编码块中的所有的块共享相同的变换大小。VP9 支持 4 4、8 8、16 16、32 32 四种正方形变换大小。根据预测模式选择由一维离散余弦变换 (DCT) 和非对称离散正弦变换 (ADS…

免费分享一套微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序图书馆座位预约管理系统(SpringBoot后端Vue管理端),分享下哈。 项目介绍 随着移动互联网技术的飞速发展和智能设备的普及,图书馆服务模式正在经历深刻的变革。本论文旨在…

从PyTorch官方的一篇教程说开去(3.3 - 贪心法)

您的进步和反馈是我最大的动力,小伙伴来个三连呗!共勉。 贪心法,可能是大家在处理陌生问题时候,最容易想到的办法了吧? 还记得小时候,国足请了位洋教练发表了一句到现在还被当成段子的话:“如…

第2章-数学建模

目录 一、数据类型 【函数】: (1)find()、rfind()、index()、rindex()、count() (2)split()、rsplit() (3)join() (4)strip()、rstrip()、lstrip() (5&…

【Python】sqlite加密库pysqlcipher3编译安装步骤

目录 说明准备工作openssl编译sqlite tclsetup.py修改quote_argumentopenssl路径 安装加密示例代码测试附录参考 说明 pysqlcipher3是针对Python 3使用的pysqlcipher的一个分支, 尽管仍然维护对Python 2的支持。它仍然处于测试阶段, 尽管这个库包含的最…

请你谈谈:spring bean的生命周期 - 阶段5:BeanPostProcessor前置处理-自定义初始化逻辑-BeanPostProcess后置处理

BeanPostProcessor的postProcessBeforeInitialization方法是在bean的依赖注入(即属性填充)完成后,但在bean的初始化回调(如PostConstruct注解的方法或InitializingBean接口的afterPropertiesSet方法)之前被调用的。 具…

vue3角色路由封装

在市面上很多网站都是左侧菜单栏+左侧内容页的样式,同时具有很多个角色,只是左边菜单栏显示的内容不一致罢了,有些人会单独写俩个页面来显示不同的角色,但是这样页面复用性不高,这个时候我们就需要动态路由…

easyexcel的读写操作

easyexcel是基于java的读写excel的开源项目 --读写也可理解为上传和下载 写操作 一、引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version> </dependency> 二、封…

力扣 19删除链表倒数第N个结点

思路 双指针法&#xff0c;快指针用于与慢指针拉开距离&#xff0c;慢指针用于删除元素&#xff0c;越过慢指针后面的元素。 具体删除时&#xff0c;应该注意如果倒数第N个结点是头结点的话&#xff0c;slow指向的就是头结点&#xff0c;没有吧办法用 slow->next slow-&…

sql_exporter通过sql收集业务数据并通过prometheus+grafana展示

下载并解压安装sql_exporter wget https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz #解压 tar xvf sql_exporter-0.5.linux-amd64.tar.gz -C /usr/local/修改主配置文件 cd /usr/local/ mv sql_exporter-0.5.linux-amd64 s…

Electron 的open-file事件

在 Electron 中,open-file 事件是一个重要的事件,它允许开发者在应用程序已经运行的情况下,通过文件打开请求(如双击文件或在命令行中使用 open 命令打开文件)来捕获文件路径。以下是对 open-file 事件的详细解析: 触发条件 应用已经打开。用户通过双击与应用程序关联的…

google 浏览器插件开发简单学习案例:TodoList

参考&#xff1a; google插件支持&#xff1a; https://blog.csdn.net/weixin_42357472/article/details/140412993 这里是把前面做的TodoList做成google插件&#xff0c;具体网页可以参考下面链接 TodoList网页&#xff1a; https://blog.csdn.net/weixin_42357472/article/de…

SwiftSage:参考人脑双系统,结合快思和慢想的智能体,解决复杂任务同时降低成本

SwiftSage&#xff1a;参考人脑双系统&#xff0c;结合快思和慢想的智能体&#xff0c;解决复杂任务同时降低成本 提出背景解法拆解子解法1&#xff1a;SWIFT模块子解法2&#xff1a;SAGE模块模块整合和决策树 SwiftSage 工作流程效果 论文&#xff1a;SWIFTSAGE: A Generative…

5G赋能新能源,工业5G路由器实现充电桩远程高效管理

随着5G技术的广泛应用&#xff0c;新能源充电桩的5G应用正逐步构建起全新的生态系统。在数字化转型的浪潮中&#xff0c;新能源充电桩行业正迎来数字化改革。工业5G路由器的引入&#xff0c;为充电桩的远程管理提供了强有力的技术支持&#xff0c;新能源充电桩5G路由器网络部署…

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及&#xff0c;充电设施的便捷性、智能化需求日益凸显&#xff0c;共享充电桩语音IC应运而生&#xff0c;成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势&#xff0c;希望能够帮助您。 一、NV170D语音ic概述…

选购指南:如何挑选最适合的快手矩阵系统

在短视频风潮席卷的今天&#xff0c;快手作为其中的佼佼者&#xff0c;吸引了无数创作者和商家的目光。然而&#xff0c;想要在快手上脱颖而出&#xff0c;仅凭内容和创意是远远不够的。一个强大且适合的快手矩阵系统&#xff0c;将是你通往成功的重要钥匙。那么&#xff0c;如…

SEO域名外链生成工具PHP源码

两款不同版本的SEO超级外链工具PHP源码&#xff0c;网址外链-seo外链推广工具源码&#xff0c;SEO网站推广外链工具源码SEO域名外链生成工具PHP源码 _ 博客趣两款不同版本的SEO超级外链工具PHP源码&#xff0c;网址外链-seo外链推广工具源码&#xff0c;SEO网站推广外链工具源码…

Web前端:HTML篇(一)

HTML简介&#xff1a; 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器…