数据库的约束条件和用户管理

news2024/11/24 17:19:45

约束条件:

主键:主键约束 primary key

用于标识表中的主键列的值,而且这个值是全表当中唯一的,而且只不能为null

一个表只能有一个主键。

外键:用来建立表与表之间的关系。确保外键中的值于另一个表的主键值匹配,保证数据引用的完整性。

多表联查,不要超过三张。超过三张表,会降低查询效率。

非空约束:保证列中的值不含null值

唯一性约束:确保列中的所有值都是唯一的,类似主键,但是一个表可以有多个唯一约束。

自增约束:在列生成的每一行都会自动生成一个唯一标识符,通常和主键一起使用,每次插入新行时,自增列的值会自动增加

扩展语句:

create table if not exists

表示在创建表时自动检测表是否已经存在,如果不存在就创建

id int (5) zerofill primary key auto_increment

zerofill ,5位,不足5位会自动填充0 .auto_increment 自增长字段,每条记录自动递增1.自增长必须是主键,也不可以重复。如果添加失败下一条记录也会自动增加。

删除外键的时候是删除外键对应的索引。

主键

 外键

主键和外键的总结:

外键就是和主表进行关联的列,不需要设置为从表的主键,但是不能为空,必须和主表的数据类型保持一致。

外键的值和主键的值要相同

先插入主表的数据,再插入从表的数据

删除表的外键不是直接删除外键的列名,而是删除外键的索引,show create table 表名:查看表的详细信息。

删除主键不需要加上主键的列名。如果有extra的额外属性,比如说自增长,要先移除属性,然后才能除主键。 删除主键的方式:alter进行修改


复制表:

create table +旧表名 like 新表名 ;

insert into +表名 select * from +表名

create table +表名(select * from +表名)

临时表:

创建完成之后,在库里面是看不到的,但是依然可以增删改查,但是重新连接数据库之后,临时表就会消失。

清空表:

drop 删除表

面试题:如何删除表的内容,还能保留表的结构?

delete from +表名; 清空表 一行一行的清空表数据,速度比较慢,如果有自增长字段,delete清空之后,会继续按照原来的序号,继续递增。

truncate table +表名; 清空表 保留表的结构,但是清空之后原有的记录全部抹去,自增长也将从头开始,速度表较快。


数据库的用户管理:

创建用户

设置用户权限

select * from user;

root都是相同的,Host:可以登录的主机,1ocalhost指的是本地登录 :任意主机(ip地址)。

权限上:localhost > %的权限。

create user '用户名' @'ip地址'

grant all privileges on * . * to '用户名' @'ip地址' ;

all 给所有权限 远程登录,数据库的操作权限(增删改查)

* . * 左边的是库,右边的是库里面的表

root@localhost其他的用户也不设置成localhost,都是设置主机名。安装完mysql之后就有了,不需要额外设置。其他的都需要人工创建。

information schema: 这个库的作用包含了mysq1服务器中所有其他数据库,表,列。索引权限等详细的元数据的信息,可以用来查询数据库的结构和元信息。

performance_schema:

包含mysql的服务性能和资源利用情况。查询语句的执行时间和锁定等信息。

usage:允许该用户连接到数据库

移除权限的命令: revoke all privileges on * . * from '用户名' @'ip地址';

flush privileges 刷新一下权限

grant select on 库名 .* to '用户名' @'ip地址'; 只能查

drop user '用户名' @'ip地址'; 删除用户

create user '用户名' @'ip地址' identified by '密码 '; 创建用户及密码

查看权限的语句:show grant for 用户名@%;


补充

insert 插入数据时,时间类型

date

datetime

timestamp

设置什么时间就是什么时间。

 设置实时时间。

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

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

相关文章

camtasia怎么剪掉不用的部分 屏幕录制的视频怎么裁剪上下不要的部分 camtasia studio怎么裁剪视频时长 camtasia怎么剪辑视频教程

有时我们录制的屏幕内容,并不一定全部需要。那么,屏幕录制的视频怎么裁剪上下不要的部分?可以使用视频剪辑软件,或者微课制作工具来进行裁剪。屏幕录制的视频怎么旋转?录制视频的旋转也是一样的,均在编辑步…

可视化工具选择指南:助力企业数字化转型和新质生产力发展

随着信息技术的快速发展和新质生产力概念的兴起,可视化工具在各个行业中的作用日益凸显。这些工具不仅能够帮助用户更直观地理解和分析数据,还能提升团队的协作效率和决策质量。 在当今数字化转型迅速发展的背景下,新质生产力的概念正在成为…

Spring Boot项目的404是如何发生的

问题 在日常开发中,假如我们访问一个Sping容器中并不存在的路径,通常会返回404的报错,具体原因是什么呢? 结论 错误的访问会调用两次DispatcherServlet:第一次调用无法找到对应路径时,会给Response设置一个…

【React笔记初学总结一】React新手的学习流程笔记总结,掰开了揉碎了,下载安装基础结构学习

REACT学习记录 一、React是什么:二、尝试安装下载:三、理解都有什么四、基础网页学习:1.几个比较重要的资源包例子2.第一个react示例:(掰开了揉碎了,咱们先看懂它最简单的结构)3.第二个react示例…

Vue--Router(路由)

目录 一 Router(路由) 1.作用 2.实现步骤 3.注意 一 Router(路由) 1.作用 Router又叫做路由,简单来说,就是用来实现vue的页面之间跳转的。 我们都知道,使用vue必然会涉及到很多个组件,也就是页面,而页面之间肯定需…

mars3d实现GraphicLayer获取当前相机视角内的可视点位(矢量数据

效果: mars3d实现GraphicLayer获取当前相机视角内的可视点位(矢量数据 相关依赖api: 1. map.getExtent(); 提取地球当前视域边界,示例:{ xmin: 70, xmax: 140, ymin: 0, ymax: 55, height: 0, } 2.graphicLayer.eachGraphic遍…

Android12 MultiMedia框架之NuPlayer Surface

在学习NuPlayer创建Decoder和Renderer之前,得先看下video数据最终生产到什么地方去?答案是Surface,而且Surface是NuPlayer创建Decoder的条件。 APP会创建一层SurfaceView来显示视频层,同时内部会创建一个BLASTBufferQueue&#x…

睡前故事—绿色科技的未来:可持续发展的梦幻故事

欢迎来到《Bedtime Stories Time》。这是一个我们倾听、放松、并逐渐入睡的播客。感谢你收听并支持我们,希望你能将这个播客作为你睡前例行活动的一部分。今晚我们将讲述绿色科技的未来:可持续发展的梦幻故事的故事。一个宁静的夜晚,希望你现…

自适应简约大气科技数码产品公司网站源码系统 模版一键搭建 可自定义带源代码包以及搭建部署教程

系统概述 在当今这个数字化、信息化的时代,科技数码产品行业正处于高速发展的黄金时期。为了在这个竞争激烈的市场中脱颖而出,科技数码产品公司不仅需要拥有卓越的产品和技术,还需要一个能够完美展现其品牌形象和产品特色的网站。为此&#…

【PyTorch快速入门教程】02 Jupyter notebook安装及配置

文章目录 1 安装 Jupyter notebook2 安装 ipykernel3 更改 jupyter 默认配置3.1 生成配置文件3.2 关键配置信息 4 扩展插件推荐参考 1 安装 Jupyter notebook 一行命令搞定 python -m pip install jupyter 现在就可以打开Jupyter notebook来运行python啦。 jupyter notebook…

印尼语翻译通:AI驱动的智能翻译与语言学习助手

在这个多元文化交织的世界中,语言是连接我们的桥梁。印尼语翻译通,一款专为打破语言障碍而生的智能翻译软件,让您与印尼语的世界轻松接轨。无论是商务出差、学术研究,还是探索印尼丰富的文化遗产,印尼语翻译通都是您的…

自动驾驶系列—智能巡航辅助功能中的车道中央保持功能介绍

文章目录 1. 背景介绍2. 功能定义3. 功能原理4. 传感器架构5. 实际应用案例5.1 典型场景1:直道内行驶5.1.1 直道内居中行驶5.1.2 直道内跟车行驶 5.2 典型场景2:弯道内行驶5.2.1 弯道内居中行驶5.2.2 弯道内跟车行驶 5.3 典型场景3:道路边缘5…

【Godot4.2】MLTag类:HTML、XML通用标签类

概述 HTML和XML采用类似的标签形式。 之前在Godot中以函数库形式实现了网页标签和内容生成。能用,但是缺点也很明显。函数之间没有从属关系,但是多有依赖,而且没有划分出各种对象和类型。 如果以完全的面向对象形式来设计标签类或者元素类…

【Android】常见控件及使用

视图的设置 控件与布局都继承于视图,因此视图的设置方式对其作用都是一样的,接下来就先讲述视图的不同设置方式 设置视图的宽高: 对视图的宽高进行设置,首先确保XML中的宽高属性值为wrap_content,接着打开该页面对应…

MySQL第七次作业

Product表内容 字段名 字段描述 数据类型 主键 外键 非空 唯一 自增 Id 产品编号 Int(10) 是 否 是 是 否 Name 产品功能 Varchar(20) 否 否 是 否 否 Function 主要功能 Varchar(50) 否 否 否 否 否 Company 生产厂家 Varchar(20) 否 否 是 否 否 Address 家庭住址 Varchar(20…

VS2022配置Qt环境

文章目录 前言VS2022写Qt的好处下载插件前提条件离线下载在线安装配置VS For Qt 创建项目总结 前言 在许多开发环境中,Visual Studio 2022(VS2022)和Qt都是非常重要的工具。VS2022是微软开发的一款强大的集成开发环境(IDE&#x…

学习面向对象笔记

1. 面向对象三大特性 特性说明例子接口作为方法的标识,只要调用即可,不需要关心接口后是怎样实现的最常见的USB接口,只要插上对应的鼠标、键盘就可以使用,因为他们都是统一使用这个USB接口的继承子类继承父类的功能,子…

React工程化笔记

脚手架可以帮助我们快速的搭建一个项目结构,在我们之前学习 webpack 的过程中,每次都需要配置 webpack.config.js 文件,用于配置我们项目的相关 loader 、plugin,这些操作比较复杂,但是它的重复性很高,而且…

Spring Cloud Eureka快读入门Demo

1.什么是Eureka? Eureka 由 Netflix 开发,是一种基于REST(Representational State Transfer)的服务,用于定位服务(服务注册与发现),以实现中间层服务的负载均衡和故障转移&#xff…

弹性网络回归(Elastic Net Regression)

弹性网络回归(Elastic Net Regression)的详细理论知识推导 理论背景 弹性网络回归结合了岭回归(Ridge Regression)和Lasso回归(Lasso Regression)的优点,通过引入两个正则化参数来实现特征选择…