MySQL数据库管理

一、sql语句:


SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。

二、SQL语言分类:


DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限


三、常用的数据类型:


int:整型    用于定义整数类型的数据
float:单精度浮点4字节32位        准确表示到小数点后六位double:双精度浮点8字节64位
char:固定长度的字符类型        用于定义字符类型数据。
varchar:可变长度的字符类型        
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位        指定长度数组
 
char的长是固定的,varchar会根据数据实际长度储存,但存储性能没有char好,需要根据应用场景自行匹配。

四、DDL数据定义:


 1.DDL库的创建和使用:

1.创建库:

create database 库名;

删除库:

drop database 库名;

 更改库:

alter database 字符编码;

4.查看库:

show databases;

show create database 库名; #查看库结构

5.使用当前库:

use 库名;

2.DDL表的管理:

     2.1 创建表:

1.创建表:CREATE TABLE 表名(字段1 数据类型,字段2 数据类型[,...] [,PRIMARY KEY (主键名)]);示例:
create table www (id int, name varchar(5), sex char(1));

 2.2 删除表:

删除表:
drop table 表名;        #删除表
truncate table 表名     #删除表数据

  2.3 更改表:

更改表:
1.添加字段:
alter table 表名 add 字段名 字段类型;2.修改字段:
alter table 表名 change 旧字段 新字段 数据类型 [字段属性];3.删除字段
alter table 表名 drop 字段;4.修改表名:
alter table 旧表名 rename 新表名;

 2.4 表查询:

1.查询当前所有表:
show tables;2.查询表结构:
desc 表名;3.查询建表语句:
show create table 表名;

五、DML数据操纵:

 1.DML添加数据:

1.给指定字段添加数据:
insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...);2.给全部字段添加数据:
insert into 表名 values (字段1的值, 字段2的值, ...);        #要按照表结构的字段顺序设置值

2.DML修改数据:

update 表名 set 字段1=值, ... where 条件表达式;不添加where修改整表。

  3.DML删除数据:

delete from 表名 where 条件表达式;

六、DQL数据查询:

1.查看所有字段
select * from 表名 [where 条件表达式];2.查看指定字段
select 字段1,字段2,... from 表名 [where 条件表达式];3.纵向查看每行记录字段的值
select * from 表名\G   4.分页查询:
select * from 表名 limit N;      #查看表的前N行记录
select * from 表名 limit N,M;    #查看表的前N行之后的连续M行记录(不包含第N行

七、DCL数据库权限控制:

  1.用户管理:


1.查看当前登录的用户
select user();2.创建用户:
create user '用户名'@'源地址'   identified by '密码';localhost/IP/网段/主机名/%3.修改用户名和允许访问的主机:
rename user '旧用户名'@'源地址' to '新用户名'@'源地址';4.修改用户密码:
set password for '用户名'@'源地址' = password('密码');
alter user '用户名'@'源地址' identified by '密码';

 2.权限管理:


1.指定用户授权:
grant 权限1,权限2,....  on 库名.表名   to  '用户名'@'源地址'  [identified by '密码'];     #5.7版本支持创建用户和权限授权,8.0版本只能用于权限授权all                     *.*2.查询权限:
show grants for '用户名'@'源地址';3.撤销权限:
revoke 权限1,权限2,....  on 库名.表名  from  '用户名'@'源地址';

八、MySQL 的约束:


 1.常用约束类型:


primary key      主键约束    字段的值不能重复,且不能为null,一个自建的表只能有一个主键
unique key       唯一性约束  字段的值不能重复,能为null,一个表可以有多个唯一键
not null         非空约束    字段的值不能为null
default          默认值约束  字段的值如果没有设置则使用默认值自动填充
auto_increment   自增约束    字段的值如果没有设置默认会从1开始每次自动递增1,要求自增字段必须设置主键
foreign key      外键约束    保证相关联的表数据的完整性和一致性
int(N) zerofill  零填充
 


create table www (id int primary key auto_increment, name varchar(5), sex char(1) not null);

2.创建创建外键约束:

  注意:

    与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

    删数数据记录时,要先从表再主表,也就是说删除主键表的记录时必须先删除其他与之关联的表中的记录。

#创建主表 profession
create table profession (pid int(4) primary key, proname varchar(50));#创建从表 student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3),proid int(4));#为从表 student 表添加外键,并将 student 表的 proid 字段和 profession 表的 pid 字段建立外键关联。外键名建议以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references profession (pid);

 3.查看和删除外键约束:


show create table student;
desc student;alter table student drop foreign key FK_pro;
alter table student drop key FK_pro;

九、数据库高级操作:

 1.克隆表:


create table 新表 like 旧表;                #克隆表结构
insert into 新表 (select * from 旧表);      #克隆表数据 可实现表结构和表数据与旧表都一样create table 新表 (select * from 旧表);     #表数据与旧表一样,表结构与旧表可能不一样

2.创建临时表:

  临时表可以跟普通的表一样增删改查表中的数据,但是show tables是查看不到的,临时表只能在当前会话中有效,在其它会话中或者退出当前会话连接,临时都会失效

create temporary table 表名 (....);

 3.找回 root 密码

(1)修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql
vim /etc/my.cnf
[mysqld]
skip-grant-tables					#添加,使登录mysql不使用授权表systemctl restart mysqldmysql								#直接登录(2)使用 update 修改 root 密码,刷新数据库
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';FLUSH PRIVILEGES;
quitmysql -u root -pabc123注意:最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。

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

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

相关文章

Win/Mac版Scitools Understand教育版申请

这里写目录标题 前言教育版申请流程教育账号申请 前言 上篇文章为大家介绍了Scitools Understand软件,通过领取的反馈来看有很多朋友都想用这个软件,但是我的网盘里只存了windows的pojie版,没有mac版的,我没有去网上找相关的资源…

js中的类型转换

原文地址 JavaScript 中有两种类型转换:隐式类型转换(强制类型转换)和显式类型转换。类型转换是将一个数据类型的值转换为另一个数据类型的值的过程。 隐式类型转换(强制类型转换): 隐式类型转换是 Java…

Unity下tga和png格式图片打包成AB包大小和加载速度测试

测试素材 测试素材,一张tga格式,一张png格式,他们的图像尺寸一样都是8K图。 两张图在AssetBundles里显示 Tga格式的图明显大很多,我们打包成ab包看看。 在PC 打包后看,明显大小一样,我们进行ab包加载&am…

传统订货方式和网上企业APP订货方式的差别|网站搭建|小程序开发

传统订货方式和网上企业APP订货方式的差别|网站搭建|小程序开发 1、管货品:实时关注热销和滞销商品的库存订货系统:采购单一键生成入库单,便捷的实现从采购到仓库到销售一体化的进销存管理。 传统模式:进销存管理难:…

机器学习,深度学习

一 、Numpy 1.1 安装numpy 2.2 Numpy操作数组 jupyter扩展插件(用于显示目录) 1、pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple 2、pip install jupyter_nbextensions_configurator -i https://pypi.tuna.t…

RocketMQ —消费者负载均衡

消费者从 Apache RocketMQ 获取消息消费时,通过消费者负载均衡策略,可将主题内的消息分配给指定消费者分组中的多个消费者共同分担,提高消费并发能力和消费者的水平扩展能力。本文介绍 Apache RocketMQ 消费者的负载均衡策略。 背景信息​ …

MacOS上的Pip和Python升级指南

在MacOS系统上,保持Pip和Python版本的最新状态对于顺利进行Python开发至关重要。通过升级Pip和Python,你可以享受到最新的功能、修复的bug以及提升的开发效率。本文将为你提供在MacOS上升级Pip和Python的详细指南,助你打造更强大的开发环境。…

春招秋招,大学生求职容易遇到哪些问题?

每到毕业季就有大批大学生从校园出来,他们怀抱梦想,希望能做出一番成绩。但现实总归是残酷的,有些人找不到工作,有一些人频繁跳槽,也有一些人最终找到的工作与自己的专业没有一点关系,迷茫好几年才找到方向…

20个提升效率的JS简写技巧,告别屎山!

JavaScript 中有很多简写技巧,可以缩短代码长度、减少冗余,并且提高代码的可读性和可维护性。本文将介绍 20 个提升效率的 JS 简写技巧,助你告别屎山,轻松编写优雅的代码! 移除数组假值 可以使用 filter() 结合 Bool…

密歇根大学发布3款生成式AI产品,并应用在教学、日常工作!

密歇根日报消息,美国顶级公立大学-密歇根大学宣布推出3款生成式AI产品UM-GPT、UM-GPT开发包和UM-Maizey,并将其应用在教学、日常工作、学术研究等领域。微软也参与了此次产品研发,并提供技术支持。 密歇根大学将为安娜堡分校、弗林特分校、迪…

测试C#图像文本识别模块Tesseract的基本用法

微信公众号“dotNET跨平台”的文章《c#实现图片文体提取》(参考文献3)介绍了C#图像文本识别模块Tesseract,后者是tesseract-ocr(参考文献2) 的C#封装版本,目前版本为5.2,关于Tesseract的详细介绍…

Vue以及整合ElementUI

初始化vue项目 #vue 脚手架使用 webpack 模板初始化一个 appname 项目 vue init webpack appname启动 vue 项目 #项目的 package.json 中有 scripts,代表我们能运行的命令 npm start npm run dev #启动项目 npm run build:将项目打包项目结构 运行流程…

一个关于IntroductionAdvisor的bug

一个关于IntroductionAdvisor的bug public class TestMain {public static void main(String[] args) {// 1. 准备被代理的目标对象People peo new People();// 2. 准备代理工厂ProxyFactory pf new ProxyFactory();// 3. 准备introduction advice,advice 持有需要额外添加的…

影刀自动化采集底层逻辑

hello,大家好&#xff0c;这里是【玩数据的诡途】 接上回 <我的影刀故事> 今天给大家介绍一下整个采集的底层逻辑&#xff0c;包括业务流程自动化也是基于这一套基础逻辑进行展开的&#xff0c;顺便带大家熟悉一下影刀&#xff0c;既然叫影刀系列了&#xff0c;那后续一些…

13基于PCA的人脸识别,程序已调通,可将自己的数据替换进行识别,得到识别准确率结果,MATLAB平台。

基于PCA的人脸识别&#xff0c;程序已调通&#xff0c;可将自己的数据替换进行识别&#xff0c;得到识别准确率结果&#xff0c;MATLAB平台。

xorm数据库操作之Join、Union

golang的数据库操作xorm使用起来非常方便&#xff0c;不用再自己写SQl语句&#xff0c;而且xorm自己给我们做了SQL防注入等操作&#xff0c;用起来既方便又安全。此次文章我不会记录xorm的基本操作&#xff0c;我值记录一些特殊用法问题&#xff0c;包括动态创建表单、基于xorm…

CSS详细基础(二)文本样式

插播一条CSS的工作原理&#xff1a; CSS是一种定义样式结构如字体、颜色、位置等的语言&#xff0c;被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。无论哪一种方式&#xff0c;样式单包含将样式应用到指定类型的元素的规则。…

【node】发送邮件及附件简要使用说明

Nodemailer是一个用于Node.js应用程序的模块&#xff0c;可以轻松发送电子邮件。该项目始于2010年&#xff0c;当时没有合理的选项来发送电子邮件消息&#xff0c;如今它是大多数Node.js用户默认选择的解决方案。 一、环境配置 安装模块&#xff1a;nodemailer npm i nodema…

接口测试——接口协议抓包分析与mock_L2

目录&#xff1a; 抓包工具charles抓包工具fiddler抓包工具证书配置app抓包实战练习接口测试实战练习 1.抓包工具charles 工具介绍 支持 SSL 代理支持流量控制支持重发网络请求&#xff0c;方便后端调试支持修改网络请求参数支持网络请求的截获并动态修改可以自动将 json 或…

电子电子架构——AUTOSAR信息安全机制有哪些?(上)

电子电子架构——AUTOSAR信息安全机制有哪些&#xff08;上&#xff09; 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 人们会在生活中不断攻击你。他们的主要…