首页
关于
留言
壁纸
更多
直播
统计
友链
Search
1
面试常见问题100问
190 阅读
2
最新Navicat 15 for MySQL破解+教程 正确破解步骤
179 阅读
3
一个人要走的时候,千万别问原因
162 阅读
4
好用的软件分享
142 阅读
5
直击心灵的唯美句子
119 阅读
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
登录
Search
标签搜索
mysql
python
django
express
面试
axios
thinkphp
PHP
励志
哲理
九九乘法表
node
cors
跨域
唯美句子
美文
文件上传
ajax
算法
jwt
公子初心
累计撰写
68
篇文章
累计收到
9
条评论
首页
栏目
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
页面
关于
留言
壁纸
直播
统计
友链
搜索到
6
篇与
的结果
2024-01-19
MySQL外键约束(FOREIGN KEY)
1. 外键概述MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。如果不是特别理解什么是主表,什么是从表 请查看下面2建表中的内容主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。一个表可以有一个或多个外键,外键可以为空值,若不为空值,则每一个外键的值必须等于主表中主键的某个值。1.1 CASCADE 级联操作ON DELETE CASCADE 删除时级联 ,删除主表 从表对应记录随之删除ON UPDATE CASCADE 修改时级联 , 修改主表 从表对应记录随之修改1.2 RESTRICT 严格模式ON DELETE RESTRICT 删除时严格 ,删除主表 从表对应记录存在则主表不允许删除ON UPDATE RESTRICT 修改时严格 , 修改主表 从表有对应记录则主表不允许修改1.3 常规操作ON DELETE RESTRICT 删除时严格 ,删除主表 从表对应记录存在则主表不允许删除ON UPDATE CASCADE 修改时级联 , 修改主表 从表对应记录随之修改1.4 定义外键时,需要遵守下列规则:主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。必须为主表定义主键。主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。外键中列的数目必须和主表的主键中列的数目相同。外键中列的数据类型必须和主表主键中对应列的数据类型相同。2. 建表一张专业表,一张学生表,如下图所示专业表为主表(父表)学生表为从表(子表),学生表的mid为外键关联专业表的id从以上截图大家不难看出,想要实现外键约束必须要求这两张表的引擎为 innodb2.1 使用sql语句建表时设置表引擎为innodb create table major( id int primary key auto_increment, major_name varchar(20) )engine=innodb;2.2 使用navicat for mysql建表时候设置表引擎为innodb3. SQL添加外键3.1 在创建表时设置外键约束CREATE TABLE student( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25), mid INT(11), CONSTRAINT f1 FOREIGN KEY(mid) REFERENCES major(id) ON DELETE CASCADE ON UPDATE CASCADE )ENGINE=INNODB3.2 表创建成功后添加外键约束ALTER TABLE <数据表名> ADD CONSTRAINT <外键名> FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>); ALTER TABLE student ADD CONSTRAINT f1 FOREIGN KEY(mid) REFERENCES major (id) ON DELETE RESTRICT ON UPDATE CASCADE;4. Navicat for MySQL 添加外键5. 删除外键5.1 sql命令删除ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>; ALTER TABLE student DROP FOREIGN KEY f1;5.2 Navicat for MySQL 删除外键
2024年01月19日
34 阅读
2 评论
2 点赞
2024-01-19
MySQL数据库备份的几种方式
1.data文件备份 文件恢复备份成功后在另一台计算机上重新创建数据库,把备份文件复制到数据库所在文件夹里即可2.mysqldump备份 mysql恢复mysqldump是MySQL数据库的一个命令行工具,用于备份MySQL数据库。它允许你将数据库的结构和数据导出到一个SQL脚本文件,以便在需要时可以重新导入到MySQL服务器中。以下是mysqldump命令的基本语法: mysqldump [options] [database(s)]常用的选项包括:-u, --user=username:连接MySQL服务器的用户名。-p, --password[=password]:连接MySQL服务器的密码。如果没有指定密码,mysqldump会提示你输入密码。-h, --host=hostname:连接MySQL服务器的主机名。-P, --port=port:连接MySQL服务器的端口号。-B, --databases:指定要备份的数据库列表,多个数据库之间用空格分隔。-t, --tables:指定要备份的表列表,多个表之间用逗号分隔。-r, --result-file=file:指定输出文件的路径和名称。2.1 备份整个数据库mysqldump -u username -p password(建议为空) --databases database_name > backup.sql(文件路径)2.2 备份多个数据库mysqldump -u username -p password(建议为空) --databases database1 database2 > backup.sq2.3 备份特定表mysqldump -u username -p password(建议为空) --tables database_name table1 table2 > backup.sql2.4 恢复数据库mysql -u root -p database_name < backup.sql3.navicat for mysql备份 恢复3.1 备份3.2 恢复4.DataGrip备份 恢复4.1 备份5.2 恢复
2024年01月19日
40 阅读
0 评论
1 点赞
2024-01-19
最新Navicat 15 for MySQL破解+教程 正确破解步骤
百度网盘地址:https://pan.baidu.com/s/1ZFDPNo4C2i2cD0SQDBYzzw提取码: 2gw6第一步: 安装软件,注意安装到的目录之前没有存留有Navicat。第二步:切记安装完成之后不要打开软件!切记安装完成之后不要打开软件!切记安装完成之后不要打开软件!第三步:将压缩包中的注册机拖到Navicat 15的安装目录下。第四步:注册机配置1.Products选择“MySQL”2.Porducts这里选择”Mysql“3.Languages选择“Simplified Chinese” 如果你下载的Navica15是因为版的话这就选择“English”4.最后点击Pacth,这时候需要选择你的Navica15.exe,或者等待一到俩分钟它会弹出一个弹窗为止。或者第五步:打开Navicat 15.x for MySQL软件,进行注册。第六步:点击注册机上的Generate生成许可证秘钥,如果未显示绿色对号,而是显示红叉,说明你的Products或者Languages选择错误,或者保留有之前注册的密钥未删除,需要到注册表中删除它。(找到 HKEY_CURRENT_USER\Software\PremiumSoft 这个路径下的 Navicat 的相关注册表,删除它。可以点这里查看帮助)第七步:点击“激活”按钮,进行激活;然后点击“手动激活”;然后点击“Generate”,生成激活码,然后将激活码复制到框中点击激活按钮激活即可第八步:激活成功后,进入软件查看帮助 —> 关于信息
2024年01月19日
179 阅读
0 评论
1 点赞
2024-01-16
使用MySQL配置文件重置密码
1. 停止mysql服务器2. 在windows/Linux系统中,编辑MySQL配置文件:在Windows系统中,找到MySQL的安装目录,编辑my.ini文件。通常位于C:\Program Files\MySQL\MySQL Server X.X\my.ini(其中X.X表示版本号)3. 在[mysqld]部分添加以下行:skip-grant-tables4. 保存并退出编辑器。5. 启动mysql服务器6. 连接数据库,此时数据库没有密码,可以直接使用以下命令来连接mysql -uroot7. 重置root用户密码。在MySQL命令行中执行以下命令:FLUSH PRIVILEGES;8. 重置密码ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' -- 123456 是新密码9. 退出命令行,并删掉掉原来my.ini中添加那行命令skip-grant-tables,并重启mysql服务器,使用新密码登录10. 重新登录
2024年01月16日
25 阅读
0 评论
0 点赞
2023-09-13
MySQL实现远程连接
1. 使用 CREATE USER 语句创建一个新用户,并指定其登录密码。CREATE USER 'xiaoming'@'%' IDENTIFIED BY 'admin000';这将创建一个名为 xiaoming 的用户,允许从任何远程主机连接,并设置登录密码为 admin000。查看mysql这个数据库的user表2. 使用 GRANT 语句授予用户适当的权限。例如,如果你希望用户拥有对所有数据库的读写权限,可以执行以下命令:-- 授予部分权限 GRANT SELECT, INSERT ON 数据库.数据表 TO 'xiaoming'@'%'; -- 授予全部权限 GRANT ALL PRIVILEGES ON 数据库.数据表 TO 'xiaoming'@'%'; GRANT ALL PRIVILEGES ON *.* TO 'xiaoming'@'%';这将授予xiaoming用户从任何远程主机连接到 MySQL 并对所有数据库拥有完全的读写权限。3. 完成授权后,使用以下命令刷新权限,使更改生效:FLUSH PRIVILEGES;4. 查看当前防火墙状态5. 关闭防火墙systemctl stop firewalld.service6. cmd 测试远程连接7. Navicat for mysql ,datagrip 正常连接即可8.删除用户DROP USER 'xiaoming'@'%';
2023年09月13日
30 阅读
0 评论
0 点赞
2023-07-18
express操作mysql数据库实现增删改查
1. 引入mysql模块并连接数据库// 引入mysql模块 const mysql = require("mysql") // 连接数据库 const db = mysql.createPool({ host:'127.0.0.1', user:'root', password:'root', database:'test' })2.测试连接// 测试连接 db.query("select 1",(err,result)=>{ if(err) return console.log(err.message) console.log(result); })3.查询所有数据// 查询所有数据 let sql = "select * from stu " db.query(sql,(err,result)=>{ if(err) return console.log(err.message) console.log(result); })4. 根据条件查询数据// 根据条件查询数据 let sql = "select * from stu where id = ? " let params = {id:1} db.query(sql,[params.id],(err,result)=>{ if(err) return console.log(err.message) console.log(result); })5. 添加数据 (添加指定字段)根据受影响的行数来判断是否添加成功// 添加数据 let sql = "insert into stu (username,age) values(?,?) " let params = {username:"老李",age:21} db.query(sql,[params.username,params.age],(err,result)=>{ if(err) return console.log(err.message) if (result.affectedRows === 1) console.log("添加成功"); })6. 添加的便捷方式(如果添加的是所有字段)let sql = "insert into stu set ? " let params = {id:null,username:"老白",age:22} db.query(sql,params,(err,result)=>{ if(err) return console.log(err.message) if (result.affectedRows === 1) console.log("添加成功"); })7. 修改let sql = "update stu set username = '大明' where id = ? " let params = {id:1} db.query(sql,[params.id],(err,result)=>{ if(err) return console.log(err.message) if (result.affectedRows === 1) console.log("修改成功"); })8.修改的便捷方式 多个条件可以放到一个对象中let sql = "update stu set ? where id = ? " let params = {username:'小王'} db.query(sql,[params,2],(err,result)=>{ if(err) return console.log(err.message) if (result.affectedRows === 1) console.log("修改成功"); })9. 删除let sql = "delete from stu where id = ? " let params = {id:1} db.query(sql,[params.id],(err,result)=>{ if(err) return console.log(err.message) if (result.affectedRows === 1) console.log("删除成功"); })
2023年07月18日
19 阅读
0 评论
0 点赞