当前位置: 首页 > 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.lryc.cn/news/582993.html

相关文章:

  • [特殊字符] AlphaGo:“神之一手”背后的智能革命与人机博弈新纪元
  • 【深度学习新浪潮】什么是蛋白质反向折叠模型?
  • 深度学习超参数优化(HPO)终极指南:从入门到前沿
  • FairyGUI 实现 Boss 双层血条动画
  • qt-C++语法笔记之Stretch与Spacer的关系分析
  • 分库分表之实战-sharding-JDBC水平分库+水平分表配置实战
  • LeetCode题解---<三数之和>
  • 自动化一次通过率
  • 深度学习环境配置:PyTorch、CUDA和Python版本选择
  • 深度剖析:向70岁老系统植入通信芯片——MCP注入构建未来级分布式通信
  • 模型训练篇 | 如何用YOLOv13训练自己的数据集(以明火烟雾检测举例)
  • HTML+JS+CSS制作一个数独游戏
  • 原生屏幕旋转算法(AccelSensor)
  • 力扣-31.下一个排列
  • Python打卡:Day47
  • 【排序】插入排序
  • 单调栈通关指南:从力扣 84 到力扣 42
  • eslint扁平化配置
  • IoTDB:专为物联网场景设计的高性能时序数据库
  • 深圳凭物联网软件开发构建智慧‘城市大脑‘
  • c语言学习_函数递归
  • 「Java案例」求n1-n2内的素数
  • 使用Node.js搭建Web应用有哪些注意事项?
  • 在 Vue2 与 Vue3 中,面对 **大数据量交互体验优化** 和 **ECharts 大数据渲染性能优化**
  • 萌新赛第(一)场
  • EfficientVMamba: Atrous Selective Scan for Light Weight Visual Mamba论文精读(逐段解析)
  • 华为泰山服务器重启后出现 XFS 文件系统磁盘“不识别”(无法挂载或访问),但挂载点目录仍在且无数据
  • Nginx完全指南 - 从入门到精通(加强版)
  • 【深度学习入门 鱼书学习笔记(1)感知机】
  • Java常用加密算法详解与实战代码 - 附可直接运行的测试示例