MySQL

关系型数据库

数据结构:二维表格 库 -> 表 -> 列(字段):用来描述对象的一个属性 -> 行(记录):用来描述一个对象的信息

市面上:MySQL 、Mariadb 、PostgreSQL 、 Oracle(闭源,用于证券、银行行业)、 SQL Server 、DB2

国产:阿里云RDB 华为高斯 腾讯TDBA 阿里oceanbase 人大金仓 达梦

非关系型数据库 key/value结构

缓存型 Redis Memchache

文档型 MangoDB

搜索型 ElasticSearch

时序型 Prometheus

SQL语言分类:

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

create database 库名;

create table 表名(字段名 数据类型 [字段属性],....); varchar可变长字符 ; char固定字符,不满也按规则大小算 ;字段属性:主键 空 等

show databases; 查看多少库

use 库名;

show tables; 查看表

show tables from 库名;

desc 表名; #查看表的结构,字段,数据类型,属性

drop table 表名;

drop database 库名;

DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据

insert into 表名 (字段1,字段2,....) values (顺序对应字段1,2,...);

insert into 表名 values (按照顺序的所有字段的值)

delete from 表名 where 条件表达式; #不跟where删除所有记录

update 表名 set 字段1=值 1,字段2=值2 where 条件表达式;

DQL:数据查询语言,用于从数据表中查找符合条件的数据记录

select 字段1,字段2,... from 表名 where 条件表达式;

select * from 表名; #按顺序查看所有字段

select * from 表名 limit N; #查看表中头N行

select * from 表名 limit 9,11; #查看9之后的11行(10-20行)

select * from 表名 \G 纵向查询,可以不加分号

修改表结构:

修改表名

alter table 旧表名 rename 新表名

增加表字段

alter table 表名 add 新字段 数据类型 字段属性;

修改表字段名

alter table 表名 change 旧字段名 新字段名 数据类型 字段属性 ;

删除字段

alter table 表名 drop 字段;

use xny;

create table if not exists info (

id int(4) zerofill primary key auto_increment, #指定主键的第二种方式

name varchar(10) not null default '匿名',

cardid int(18) not null unique key,

hobby varchar(50));

------------------------------------------------------

#if not exists: 表示检测要创建的表是否已存在,如果不存在就继续创建

#int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,即0001

#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;

#unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键,但是一张表中可以有多个唯一键

#not null:表示此字段不允许为NULL

------------------------------------------------------

DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

  • root@% 用户可以从任何 IP 地址连接到 MySQL 服务器,因为 % 符号表示允许从任何 IP 地址连接到服务器。
  • root@localhost 用户只能从 MySQL 服务器本地连接到服务器,因为 localhost 表示只允许从本地连接到服务器。

新建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

"密码":若使用明文密码,直接输入“密码”,插入到数据库时由Mysql自动加密

#改名

rename user 'lisi'@'localhost' to 'wangwu'@'localhost'

#删除

drop user 'lisi'@'localhost' to 'wangwu'@'localhost'

#修改密码

set password for 'zhangsan'@'lcoalhost'= password('abc123')

#寻找root密码

vim /etc/my.cnf

添加配置项 skip-grant-tables

重启mysql

use mysql

desc user

select user,host,authentication_string from user;

update user set authentication_string=password('abc123') where user='root' and host='localhost';

flush privileges;

删除配置项 my.cnf 中的skip-grant-tables

------------------数据表高级操作--------------------

克隆数据表

create table test01 like xny;

insert into test01 select * from xny;

#此方法能保证新表和旧表的结构、数据一样

create table test02 (select * from xny);

#此方法创建的新表和旧表数据一样,结构不一样

清空、删除表内的所有数据

delete from test01;

#delete清空表后,返回的结果内有删除的记录条目;delete工作时是一行一行的删除记录数据的;如果表中有自增长字段,之后新插入的会接着删除前的id;

truncate table test01;

相当于重建表,速度更快,相当于格式化,之后插入的不会接着删除签的id

创建临时表

临时表创建成功之后,使用show tables命令是看不到创建的临时表的,临时表会在连接退出后被销毁。如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE语句手动之间删除临时表。

数据库MySQL的6大常见约束

主键约束 primary key 主键字段不允许有重复的记录,且不允许为空NULL,一个表只能有一个主键

唯一性约束 unique key 非空约束 not null 唯一键字段不允许有重复记录,但允许为NULL,一个表可以有多个唯一键

非空约束 not null

默认值约束 default

自增约束 auto-increment

外键约束 foreign key

外键的定义:如果同一个属性字段X在表一种是主键,而在表二中不是主键,则字段X称为表二的外键。

主键表和外键表的理解:

(1)以公共关键字作为主键的表为主建表(父表、主表)

(2)以公共关键字作为外键的表为外建表(从表、外键)

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

#创建主表

create table profession (pid int(4),pname char(10));

#设置主键

alter table prof add primary key(pid);

#创建从表

create table student (id int,name varchar(10),age int,proid int );

#设置外键

alter table student add constraint FK_PRO foreign key (proid) references prof (pid); #constraint 设置外键键名,通常FK开头 #references 关联外键和主键

登录别人mysql:mysql -ulisi -p123456 -h 192.168.179.22 -P 3306

#查用户权限

show grants for 'lisi'@'%';

#给用户权限

grant all on *.* to 'zhangsan'@'localhost';

#收回权限

rovoke all on *.* from 'zhangsan'@'localhost';

查看表结构:

desc 表名;

show create table 表名\G #更细节!

删除外键约束:

alter table student drop foreign key "FK_PRO"

只是删除外键,但保留名字

授权用户权限是 all privilege。这个all privilege 都有哪些权限?

all privilege 权限如下:

insert (插入数据)

select (查询数据)

update (更新表的数据)

delete (删除表中数据)

create (创建库,表)

drop (删除库,表)

refernces

index(建立索引)

alter (更改表属性)

create temp orary tables

lock tables(锁表)

execute

create view (创建视图)

show view (显示视图)

create routine(创建存储过程)

alter routine(修改存储过程)

event (事件)

trigger on (创建触发器)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车电路图、原理框图、线束图、元器件布置图的识读技巧与要点

摘要: 想要读懂汽车电路图就必须把电的通路理清楚,即某条线是什么信号,该信号是输入信号、输出信号还是控制信号以及信号起什么作用,在什么条件下有信号,从哪里来,到哪里去。 一、汽车电路图的识读技巧 1.…

在 Python 中将 Tqdm 与 Asyncio 结合使用

动动发财的小手,点个赞吧! 简介 困扰 在 Python 中使用并发编程来提高效率对于数据科学家来说并不罕见。在后台观察各种子进程或并发线程以保持我的计算或 IO 绑定任务的顺序总是令人满意的。 但是还有一点困扰我的是,当我在后台并发处理成百…

PBDB Data Service:Thumbnail images of lifeforms(生命形式的缩略图)

Thumbnail images of lifeforms(生命形式的缩略图) 描述用法参数方法响应值格式术语表 描述 此操作返回表示指定分类的图像,或关于图像的信息。如果后缀是 .png,则返回图像内容数据。否则,将以指定的格式返回一个描述…

9:00进去,9:05就出来了,这问的也太···

从外包出来,没想到死在另一家厂子了。 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推…

【Halcon】新建程序 读取图片 路径设置

文章目录 1 新建程序2 读取一张图片3 图片路径4 图片格式读取报错5 快速添加 绝对路径1 新建程序 点击新程序图标,即可新建; 程序另存为,会弹出保存路径 2 读取一张图片 read_image(Image,fabrik)

软件测试工程师的核心竞争力究竟是什么?

对于测试员而言,了解自己岗位的核心竞争力是非常重要的。在职业初期,许多人认为掌握代码才是软件测试的核心竞争力,但是随着经验的增加,我们会发现真正的核心竞争力是由多个方面组成的。 首先,测试人员需要具备良好的测…

Windows环境安装Elasticsearch和Kibana

文章目录 1 Elasticsearch1.1 下载1.2 解压并添加环境变量1.3 访问1.4 cmd命令1.5 中文分词器1.5.1 下载1.5.2 安装1.5.2.1 命令安装1.5.2.2 手动安装1.5.2.3 验证分词 1.6 使用curl批量导入 2 安装 kibana2.1 下载kibana2.2 中文界面2.3 操作索引2.3.1 增加索引2.3.1.1 单条新…

Apache Doris学习记录

1. Doris基础学习 中文官网:https://doris.apache.org/zh-CN/docs/dev/summary/basic-summary/ 1.1 doris 简介 Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理) 分析型数据库产品 亚秒级响应时间即可获得查询结果 可以支持 10PB…

紧急下架,AI以假乱真学明星唱歌;哈佛法学院专家谈AI和版权法

几周前,一首据称由 Drake 和 The Weeknd 创作的新歌登陆 TikTok 和 Spotify,并迅速在互联网上像野火一样传播开来。“我袖子上的心”在嘻哈乐迷中获得了好评如潮和高度兴奋,这不仅是因为该曲目具有感染力的歌词和旋律,而且还因为对…

jieba分词(1):入门案例

1 场景介绍 大数据量的查询问题 假设我们要从商品的表里面查询一个商品 我们的数据库里面肯定有个t_goods的表,我们现在利用商品的名称做模糊查询 1.1 对于数据库的查询的 select * from t_goods where goodsName like “%手机%” ; 问题: 这个查询…

开关电源基础01:电源变换器基础(2)

说在开头:关于德布罗意的电子波(3) 1923年,德布罗意在求出他的相波之前,康普顿刚好用光子说解释了康普顿效应(记性好的胖友们应该还记得:散射波的波长变长问题),从而带领…

SPSS如何进行聚类分析之案例实训?

文章目录 0.引言1.快速聚类分析2.分层聚类分析3.两阶段聚类分析 0.引言 因科研等多场景需要进行数据统计分析,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对聚类分析进行阐…

[架构之路-187]-《软考-系统分析师》-5-数据库系统 - 操作型数据库OLTP与分析型数据库OLAP比较

OLAP与OLTP的区别? OLTP(Online transaction processing) 在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户。 OLAP(Online analytical processing): 指联机分析处理。通过分…

SPSS如何进行判别分析之案例实训?

文章目录 0.引言1.一般判别分析2.逐步判别分析3.决策树分析 0.引言 因科研等多场景需要进行数据统计分析,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对判别分析进行阐述。…

类和对象(上)

文章目录 1.面向过程和面向对象初步认识2.类的引入3.类的定义3.1声明和定义全部放在类体3.2.声明放在.h,定义放在.cpp 4..类的访问限定符及封装4.1封装4.2访问限定符4.3C中的struct和class 5.类的作用域6.类的实例化6.1引入6.2定义 7.类对象模型7.1类对象的存储方式…

MySQL知识学习06(SQL语句在MySQL中的执行过程)

1、MySQL 基本架构概览 下图是 MySQL 的一个简要架构图,从下图可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图 连接器: 身份认证和权限相关(登录 MySQL 的时候)。查询缓…

Java设计模式-代理模式

简介 代理模式是一种结构型设计模式,它可以让我们通过一个代理对象来访问一个真实的目标对象,从而实现对目标对象的功能扩展或保护。代理模式的主要角色有三个: 抽象主题(Subject):定义了真实主题和代理主…

【Mybatis】增删改查

1.添加相应的jar包 2.创建持久化类 在src目录下创建一个名为com.mybatis.po的包 创建持久化类MyUser,包含三个属性(uid,uname,usex) package com.mybatis.po; /***springtest数据库中user表的持久化类*/ public class MyUser {private Integer uid;//主键private…

OpenGL(六)——坐标系统

目录 一、前言 二、空间系 2.1 局部空间 2.2 世界空间 2.3 观察空间 2.4裁剪空间 2.5 正射投影 2.6 透视投影 2.7 屏幕空间 三、透视箱子 3.1 创建模型矩阵 3.2 创建观察矩阵 3.3 创建透视投影矩阵 3.4 修改顶点着色器 3.5 传递变换矩阵 四、旋转的箱子 五、好…

[Gitops--10]微服务项目部署流水线编写

微服务项目部署流水线编写 1. 部署环境说明 序号管理地址作用1192.168.31.199GitLab2192.168.31.104Harbor3192.168.31.131kubesphere 1.1 GitLab 1.2 流水线 1.2.1 创建流水线 1.2.2 创建凭证 1.2.3 创建kubeconfig凭证 这里需要注意的是,config中如果使用的是域名,那么需…