当前位置: 首页 > news >正文

初识mysql(一)

所有实验基于最小化安装的OpenEuler操作系,且已关闭防火墙和selinux

安装mysql并启动

yum -y install mysql-server
systemctl start mysqld
mysql#登录mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用管理命令

  • mysql
mysql [options] db_name
-u: 指定用户密码
-p:指定用户登录数据的IP或域名
-h:指定登录数据库的IP
-P:指定登录端数据库的端口号
-e:能够在终端执行数据库指令
# 查看mysql所有用户信息
mysql -uroot -hlocalhost -P3306 -e'select * from user\G' mysql 

在这里插入图片描述

  • mysqladmin
mysqladmin [options] command [command-arg] [command [command-arg]] ...
# 设置root用户密码
mysqladmin -uroot password '123456'
mysql -uroot -p123456 -h127.0.0.1 -P3306

在这里插入图片描述

默认数据库

在这里插入图片描述

  • information_schema :信息数据库,存储所有的库、表、列的名称,任意可登录数据库的用户都可读
  • mysql :主数据库,mysqld运行的必须数据库,用户与配置信息
  • performance_schema:性能数据库,存储mysqld的资源使用、安全策略权限配置信息

SQL语言

  • MySQL语句特点
    • 不区分大小写。
    • 建议对命令用大写,非命令用小写方便区别。
    • 区分数据库、数据管理系统、sql语句操作
  • 分类
    • DDL(Data Definition Language)数据定义语言
    • DML(Data Manipulation Language)数据操作语言
    • DQL(Data Query Language)数据查询语言
    • DCL(Data Control Language)数据控制语言

1.DDL

#数据库操作  []内内容可选
SHOW DATABASES;    #查询所有数据库
SELECT DATABASE(); #查询当前数据库
CREATE DATABASE [IF NOT EXISTS] databasename [DEFAULT CHARSET utf8mb4];#创建数据库字字符集utf8mb4支持4字节
DROP DATABASE [IF EXISTS] databasename;#删除数据库
USE databasename; #使用databasename,对databasename数据库进行操作#表操作  在使用某个数据库后在做以下操作
CREATE TABLE tablename(字段1 字段1类型 [COMMENT 字段1注释];...字段n 字段n类型 [COMMENT 字段n注释]; 
)[COMMENT 表注释];
SHOW TABLES;#查询所有表
DESC tablename;#查询表结构
DESCRIBE tablename;#查询表结构
SHOW CREATE TABLE tablename;#查询指定表的建表语句
ALTER TABLE <表名> [修改选项]
## 常见修改选项
ADD COLUMN <列名> <类型>#新增字段
CHANGE COLUMN <旧列名> <新列名> <新列类型>#改变字段
ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }#更新字段
MODIFY COLUMN <列名> <类型>#修改字段
DROP COLUMN <列名>#删除字段
RENAME TO <新表名>#重命名字段
CHARACTER SET <字符集名>#设置字符集
COLLATE <校对规则名> DROP TABLE [IF EXISTS] tablename;#删除某个表
TRUNCATE TABLE tablename; #删除表后重建

创建表常用字段数据类型:

  • 数值类型
TYPESIZE(bytes)SIGNEDUNSIGNEDCOMMENT
TINYINT1-128-1270-255小整数数值
SMALLINT2-32768-327670-65535大整数值
MEDIUMINT3大整数值
INT/INTEGER4大整数值
BIGINT8极大整数值
FLOAT4单精度浮点数
DOUBLE8双精度浮点数
DECIMAL依赖与M,D的值小数值,精确定点数
  • 字符串类型
TYPESIZECOMMENT
CHAR0-255定长字符串
VARCHAR0-65535变长字符串
TINYBLOB0-255不超过 255 个字符的二进制字符串
TINYTEXT0-255短文本字符串
BLOB0-65 535二进制形式的长文本数据
TEXT0-65 535长文本数据
MEDIUMBLOB0-16 777 215二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215中等长度文本数据
LONGBLOB0-4 294 967 295二进制形式的极大文本数据
LONGTEXT0-4 294 967 295极大文本数据
  • 时间日期类型
TYPESIZE(bytes)SPANFORMATCOMMANT
DATE31000-10-01 to 999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 to 838:59:59HH:MM:SS时间值或持续时间
YEAR11901 to 2155YYYY年份值
DATETIME81000-01-01 00:00:00 to 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01 to 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳

2.DML语句

#在USE databasename;之后使用
1.INSERT#插入
INSERT INTO tablename(字段1,...,字段n) VALUES (值1,...,值n)#按字段将数据插入表中
INSERT INTO tablename VALUES(value1,...,valuen)#按整表插入数据
INSERt INTO tablename(字段1,...,字段n) VALUES (值1,...,值n)(值1,...,值n)...;#一次插入多行
2.UPDATE#更新
UPDATE tablename SET 字段1=值1 字段2=值2... [WHERE condtions];#没有where条件时就是更新所有表的数据
3.DELETE#删除
DELETE FROM tablename [WHERE conditions];#删除一条或多条记录,不带条件时删除表中所有记录

3.DQL语句

#After USE databasename;
SELECT col1 [AS cname1],col2 [AS cname2],...
FROM tb [AS tname]
[WHERE condtions]
[GROUP BY col [HAVING condtions]]
[ORDER BY [col] ASC 或者 DESC]#升序(默认) 降序
[LIMIT indexnum,recordnum];#indexnum从0开始  indexnum=(pagenum-1)*recordnumSELECT DISTINCT columes1,colume2,... FROM tablename...;#去重

where条件

  • 判断条件: >,>=,<,<=,!=or<>,BETWEEN a AND b(a<b),IN (value1,value2,…),LIKE pattern “_%”
  • 逻辑条件: AND &&, OR ||, NOT !.

聚合函数

  • count()计数值
  • avg()平均值
  • max()最大值
  • min()最小值
  • sum()求和

注意:

  • WHERE条件不能使用聚合函数
  • 执行顺序:FORM>WHERE>GROUPE BY HAVING>SELECT>ORDERBY>LIMIT

4.DCL语句

USE mysql;
SELECT * FROM use;
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';#创建新用户
ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'nwepassword';#更新用户密码
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
DROP USER 'username'@'hostname';#Delete user
#权限控制
SHOW GRANTS FOR 'username'@'hostname';#查看指定用户所有权限 
GRANT Permission1,Permission2,... ON databasename TO 'username'@'hostname';#授权
REVOKE Permission1,Permission2,... ON databasename TO 'username'@'hostname';#撤销权限
  • mysql的权限
在MySQL中,权限控制是通过GrantRevoke命令来管理用户和角色的权限的。
- Alter:修改。允许用户修改数据库中的表结构。
- Alter routine:修改存储过程或函数。允许用户修改已创建的存储过程或函数。
- Create:创建。允许用户创建新的数据库对象,如表、视图、存储过程等。
- Create routine:创建存储过程或函数。允许用户创建新的存储过程或函数。
- Create temporary tables:创建临时表。允许用户创建临时表,这些表在会话结束时会自动删除。
- Create view:创建视图。允许用户创建新的视图。
- Create user:创建用户。允许用户创建新的数据库用户账户。
- Delete:删除。允许用户删除表中的数据。
- Drop:删除。允许用户删除数据库中的对象,如表、视图等。
- Event:事件。允许用户管理和修改事件调度器中的事件。
- Execute:执行。允许用户执行存储过程或函数。
- File:文件。允许用户访问数据库服务器的文件系统。
- Grant option:授予选项。允许用户将权限授予其他用户。
- Index:索引。允许用户在表上创建、修改或删除索引。
- Insert:插入。允许用户向表中插入数据。
- Lock tables:锁定表。允许用户锁定数据库中的表,以防止其他用户同时访问这些表。
- Process:进程。允许查看或杀死数据库服务器上的进程。
- Proxy:代理。允许用户作为代理登录,代表其他用户执行操作。
- References:引用。允许用户创建外键约束。
- Reload:重新加载。允许用户重新加载配置文件或刷新权限表。
- Replication client:复制客户端。允许用户从主服务器接收数据以进行复制。
- Replication slave:复制从机。允许用户作为数据复制的从服务器。
- Select:选择。允许用户查询表中的数据。
- Show databases:显示数据库。允许用户查看用的数据库列表。
- Show view:显示视图。允许用户查看数据库中的视图定义。
- Shutdown:关闭。允许用户关闭数据库服务器。
- Super:超级。允许用户所有的权限,并且可以不受限制地执行许多系统命令。
- Trigger:触发器。允许用户创建触发器,以在特定事件发生时自动执行代码。
- Create tablespace:创建表空间。允许用户创建新的表空间,用于存储数据库对象。
- Update:更新。允许用户更新表中的数据。
- Usage:使用。这个权限通常用于限制用户只能查看自己的权限,不能进行任何实际的数据库操作。

常用数据库操作命令

show databases;   # 查看数据库
select database();# 查看所在数据库
select user();    #查看当前登录用户
select version(); #查看当前数据库版本
show privileges[\G];#查看用户权限列表
show grants for root@localhost\G;#查看指定用户的权限
use databasename[;] #切换数据库

在这里插入图片描述

操作案例

  • 案例一 创建数据库、创建表、修改表字段结构
create database if not exists test;
use test
create table stu_score(id tinyint, name varchar(50), score decimal(4,2), object varchar(50));
alter table stu_score rename to stuS;
alter table stuS modify id int;
alter table stuS modify id int primary key;
alter table stuS modify id int auto_increment;
alter table stuS modify id int;
alter table stuS change column object subject varchar(50);
alter table stuS modify column name varchar(50) not null default "未知";
alter table stuS add column extra text;
alter table stuS add i int first; 
alter table stuS add sex varchar(10) after name; 
alter table stuS drop id;
show tables;
desc stuS;

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/270187.html

相关文章:

  • 论文略读:UniPELT: A Unified Framework for Parameter-Efficient Language Model Tuning
  • 无人机报警器探测模块技术解析
  • HDLBits刷题笔记和一些拓展知识(十一)
  • 中文编程开发工具构件系列介绍——数值比较构件
  • 视频网站弹幕系统简易实现
  • Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架
  • Android Handler机制与底层原理详解
  • RHA《Unity兼容AndroidStudio打Apk包》
  • 什么是2.5G交换机?
  • 【如何下载网页中的视频】
  • 【HarmonyOS】鸿蒙端云一体化开发入门详解 (一)
  • 零基础 Qt 6 在线安装教程
  • vue前置知识-end
  • 呼叫系统对接智能体能解决哪些问题?
  • exFAT文件系统mp4素材文件变0字节的恢复方法
  • Spring中过滤器和拦截器的区别及具体实现
  • ROS平台上使用C++实现A*算法
  • 3423. 循环数组中相邻元素的最大差值 — day97
  • MySQL 8.0 OCP 1Z0-908 题目解析(23)
  • 服务端渲染
  • VMware克隆虚拟机,模板机已提前设置了固定IP,克隆机需要修改的事项
  • Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • Web前端开发: :where(伪类函数选择器)
  • 软件设计与重构
  • docker部署单机gitlab
  • Pytorch实战——完整的模型训练套路2
  • GitOps实践指南:GitLab CI/CD + ArgoCD 实现 Kubernetes 自动化部署
  • 【AI大模型】深度学习正则化技术:Batch Normalization (BatchNorm) 详解
  • 【GPT深度研究】科研SaaS项目可行性分析报告
  • 【学习笔记】网络设备(华为交换机)基础知识 24 —— 以太网子接口基础知识