MySQL数据管理

表的基本概念

  1. 数据完整性

    • 实体完整性

      每一行必须是唯一的实体

    • 域完整性

      检查每一列是否有效

    • 引用完整性

      确保所有表中的数据的一致性,不允许引用不存在的值

    • 用户定义的完整性

      制定特定的业务规则

  2. 主键

    • 用于唯一标识表中的行数据
    • 由一个或多个字段组成
    • 具有唯一性
    • 不允许取空值(NULL)
    • 一个表只能有一个主键
数据类型
精准数字
数据类型描述
int整型,存储-231到231之间的整数,占4字节
smallint-32768-32767,占2字节
bigint-263-263,8字节
tinyint-128-127,1字节
mediumint-223-223-1,3字节
数据类型描述
float表示浮点数值数据的大致数值。标识-3.4E~3.4E+38之间任意数,占4字节
double表示-1.8E+308~1.8E+308之间的浮点数,占8字节
字符串
数据类型描述
char·存储固定长度,非Unicode字符数据,需指定列长,最大包含8000个字符
varchar存储可变长度,非Unicode字符数据,需指定该列最大长度,最多包含2^11字
二进制字符串
数据类型描述
binary存储可达8000,字节长的定长二进制数据
varbinary存储可达8000,租户额长的变长的二进制数据
image存储可变的二进制数据,最大可达2的31次方-1或大约20亿字节
日期和时间
数据类型描述
data日期存储从公元元年一月一日到公园9999年12月31人期间所有的日期数据,占3字节
time表示某一天中的某个时间,不能感知失去基于24小时制,占5字节空间

使用MySQl数据库

查看数据库结构
  1. 查看当前服务器中的数据库

    show databases;语句用于查看当前MySQL服务器包含的数据库,MySQL的每一条操作语句都是以分号结束的。

    #查看数据库
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.01 sec)
    
    • information_schema数据库:保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等
    • performance_schema:用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况
    • mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表
  2. 查看当前数据库有哪些表

    show tables;语句用于查看当前所在的数据库中包含的表。在操作之前要先使用use语句切换到所使用的数据库

    mysql> use mysql;
    mysql> show tables;
    mysql> show tables;
    +---------------------------+
    | Tables_in_mysql           |
    +---------------------------+
    | columns_priv              |
    | db                        |
    | engine_cost               |
    | event                     |
    | func                      |
    | general_log               |
    | gtid_executed             |
    | help_category             |
    | help_keyword              |
    | help_relation             |
    | help_topic                |
    | innodb_index_stats        |
    | ......					|
    +---------------------------+
    31 rows in set (0.00 sec)
    
  3. 查看表的结构

    describe语句用于显示表的结构,即组成表的个字段(列)的信息。需要指定“数据库.表名”做为参数;若知识指定表名,则需先使用use语句切换到目标数据库

    mysql> describe auth.users;
    +-------------+----------+------+-----+---------+-------+
    | Field       | Type     | Null | Key | Default | Extra |
    +-------------+----------+------+-----+---------+-------+
    | user_name   | char(16) | NO   | PRI | NULL    |       |
    | user_passwd | char(48) | YES  |     |         |       |
    +-------------+----------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    

SQL语言主要由以下几部分组成

  • DDL:数据定义语言(craeate、drop、alter)
  • DML:数据操作语言(insert、update、delete)
  • DQL:数据查看语言(select,show)
  • DCL:数据控制语言(grant、revoke、commit(提交事物)、rollback)
创建及删除数据库和表
  1. 创建新的数据库

    create database语句:用于创建一个新的数据库,需指定数据库名称作为参数。

    #创建数据库
    mysql> create database auth;
    Query OK, 1 row affected (0.00 sec)
    
  2. 创建新的表

    create table users语句:用于在当前数据库创建新的表,需指定数据表名称作为参数,并定义该表所使用的个字段。

    #语法如下
    create table users(字段1名称类型,字段2名称类型,...., PRIMARY KEY (user_name));
    #创建数据表
    mysql> use auth;
    Database changed
    mysql> create table users(user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));
    Query OK, 0 rows affected (0.01 sec)
    #查看数据表结构
    mysql> describe users;
    
  3. 删除一个数据表

    drop table语句:用于删除数据库中的表,需要指定“数据库名.表名”作为参数:若只指定表名参数,则需先通过执行use语句切换到目标数据库

    mysql> drop table auth.users;
    Query OK, 0 rows affected (0.00 sec)
    
  4. 删除一个数据库

    drop databbase语句:用于删除指定的数据库,需要指定数据库名作为参数。

    mysql> drop databbase auth;
    Query OK, 0 rows affected (0.00 sec)
    
管理表中的数据记录
  1. 插入数据记录

    insert into语句:用于向表中插入新的数据记录。

    mysql> use auth;
    Database changed
    mysql> INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456'));
    Query OK, 1 row affected, 1 warning (0.01 sec)mysql> INSERT INTO users VALUES('lisi', PASSWORD('654321'));
    Query OK, 1 row affected, 1 warning (0.00 sec)
    
  2. 查询数据记录

    select语句:用于从指定的表中查找符合条件的数据记录。

    #使用通配符 *  查询所有数据记录
    mysql> select * from auth.users;
    +-----------+-------------------------------------------+
    | user_name | user_passwd                               |
    +-----------+-------------------------------------------+
    | lisi      | *2A032F7C5BA932872F0F045E0CF6B53CF702F2C5 |
    | zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
    +-----------+-------------------------------------------+
    2 rows in set (0.00 sec)
    #指定查询字段以及使用where条件字句具体查询
    mysql> SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';
    +-----------+-------------------------------------------+
    | user_name | user_passwd                               |
    +-----------+-------------------------------------------+
    | zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
    +-----------+-------------------------------------------+
    1 row in set (0.00 sec)
    
  3. 修改数据记录

    update语句:用于修改、更新表中的数据记录。

    #修改lisi的密码为空
    mysql> UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi';  
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    mysql> SELECT * FROM auth.users where user_name='lisi';
    +-----------+-------------+
    | user_name | user_passwd |
    +-----------+-------------+
    | lisi      |             |
    +-----------+-------------+
    1 row in set (0.00 sec)
    
  4. 删除数据记录

    delete语句:用于删除表中指定的数据记录。

    mysql> DELETE FROM auth.users WHERE user_name='lisi'; 
    Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM auth.users; 
    +-----------+-------------------------------------------+
    | user_name | user_passwd                               |
    +-----------+-------------------------------------------+
    | zhangsan  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
    +-----------+-------------------------------------------+
    1 row in set (0.00 sec)
    
数据库表高级操作
  1. 清空表

    #删除表
    mysql> delete from user01 where user_name='zhangsan';
    mysql>delete from user01; 
    mysql>insert into user01 select * from auth.users;
    mysql>truncate table user01; 
    mysql>select count(*) from user01;
    

    truncate和delete的区别

    • truncate删除表中的内容,不删除表结构,释放空间;
    • delete删除表中的内容,不删除表结构,但不释放空间
    • truncate删除数据后重新写数据会从1开始,
    • delete删除数据后只会从删除前的最后一行续写;内存空间上,truncate省空间
    • delete属于DML语句,而truncate和drop都属于DDL语句
    • delete可以在后续加上where进行针对行的删除
    • truncate和drop后面只能加上表名,直接删除表,无法where
  2. 临时表

    MySQL的临时表,就是临时建立的表,并不会长期存在,主要用于保存一些零食数据。临时表有个特性,就是只在当前连接可见,当前连接下可执行增删改查等操作,当连接被关闭后,临时表就会被MySQL删除,相关资源也会被释放。

    #临时表
    #查看 mytmp 表是否存在 
    mysql>select * from mytmp; 
    #创建临时表 
    mysql>CREATE TEMPORARY TABLE `mytmp` ( 
    `id` int(10) NOT NULL AUTO_INCREMENT, 
    `NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `level` int(10) NOT NULL, 
    PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8; 	
    #插入数据 
    mysql> insert into mytmp(name,level) values('aa',10); 	
    Query OK, 1 row affected (0.01 sec) 
    mysql>select * from mytmp; 
    #退出当前连接 
    mysql>quit 
    Bye 
    #重新连接 MySQL 之后查看临时表状态
    mysql>select * from mytmp;     
    
  3. 克隆表

    #数据库表高级操作
    #克隆表
    mysql>create table user01 like auth.users;     //通过 LIKE 方法,复制 users 表生成 tmp 表,注意,此表为空
    mysql>insert into user01 select * from auth.users;     //通过 player 表生成 tmp 表内数据记录 
    
数据库用户授权
  1. 授予权限

    grant语句:专门用来设置数据库用户的访问权限。当指定的用户不存在时,grant语句将会创建新的用户;当指定的用户名存在时,grant语句用于修改用户信息。语句格式如下:

    grant 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY '密码']
    

    使用grant语句时,需要注意的事项如下:

    • 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分割,如“select,insert,updata”使用“all”表示所有权限,可授权执行任何操作

    • 数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符"*"。例如

      ,使用"auth.*"表示授权操作对象为auth数据库中的所有表

    • 用户名@来源地址:用于指定用户名称和运行访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址、还可以使用"%“通配符,表示某个区域或网段内的所有地址,如”%.bdqn.com“ "192.168.1.%"等。

    • IDENTITIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略”IDENTIFIED BY“部分,则用户的密码将为空

    #数据库用户授权
    #授予权限
    mysql>GRANT select ON auth.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';
    
  2. 查看权限

    show grants语句:专门用来查看数据库用户的授权信息,通过FOR字句可指定查看的用户对象,必须域授权时使用的对象名一致,语句格式如下

    show grants for 用户名@来源地址
    
    #查看权限
    mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';
    #验证权限
    [root@localhost ~]# mysql -u zhangsan -p123456
    mysql> select * from auth.users;
    mysql> select * from mysql.user;
    #zhangsan用户可以查看auth数据库的表,但不能查看mysql数据库的表。
    
  3. 撤销权限

    revoke语句:用于撤销指定用户的数据库权限。撤销权限后的用户仍然可以连接到MySQL

    服务器,但将被禁止对于的数据库操作。

    #撤销权限
    mysql> revoke all on auth.* from zhangsan@'localhost';
    [root@localhost ~]# mysql -u zhangsan -p123456
    mysql> select * from mysql.user;
    #撤销权限后,已经无法查看auth中的表
    

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

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

相关文章

【Proteus仿真】多变循环彩灯

【Proteus仿真】多变循环彩灯 ‍ 01功能描述 10种灯光效果可通过按键进行切换/通过按键切换灯光效果,通过数码管显示当前灯光模式,并通过按键调节当前灯光速度快慢。 02原理图 ​​ ‍ 03资料内容 源码仿真 04资料获取链接 https://docs.qq.co…

【unity笔记】五、UI面板TextMeshPro 添加中文字体

Unity 中 TextMeshPro不支持中文字体,下面为解决方法: 准备字体文件,从Windows系统文件的Fonts文件夹里拖一个.ttf文件(C盘 > Windows > Fonts ) 准备字库文件,新建一个文本文件,命名为“字库”&…

确认偏差:金融市场交易中的隐形障碍

确认偏差,作为一种深刻影响交易员决策与表现的心理现象,其核心在于个体倾向于寻求与既有信念相符的信息,而自动过滤或轻视与之相悖的资讯。这种认知偏见严重扭曲了交易者的决策过程,导致他们过分依赖符合既有观念的数据&#xff0…

pdf合并,这三种方法学会了吗?

在信息爆炸的时代,PDF文档凭借其跨平台、不易修改的特性,成为了我们工作和学习中不可或缺的一部分。然而,当面对多个PDF文件需要合并成一个完整的文档时,许多人可能会感到头疼。今天,就让我们一起来探讨三种高效的PDF合…

Rust Eq 和 PartialEq

Eq 和 PartialEq 在 Rust 中&#xff0c;想要重载操作符&#xff0c;你就需要实现对应的特征。 例如 <、<、> 和 > 需要实现 PartialOrd 特征: use std::fmt::Display;struct Pair<T> {x: T,y: T, }impl<T> Pair<T> {fn new(x: T, y: T) ->…

C#——里氏转换详情

里氏转换 里氏转换就是派生类的对象赋值给父类对象&#xff0c;反之则不行 实例 : 先创键一个类然后继承 调用

LLM App统计报告【Streamlit】

本文重点介绍了 Streamlit 报告&#xff1a;2023 年 LLM 应用状况&#xff0c;深入了解了 2023 年在 Streamlit 社区云上部署的所有 LLM 应用程序的统计数据。 Streamlit 是一个开源框架&#xff0c;旨在方便部署数据科学和机器学习应用程序。LLM 的最新发展使 Streamlit 成为开…

设计模式(c++)

目录 开闭原则合成复用原则 设计模式单例模式 &#xff08;Singleton&#xff09;工厂方法模式&#xff08;Factory Method&#xff09;适配器模式 &#xff08;Adapter&#xff09;外观模式 &#xff08;Facade&#xff09;代理模式&#xff08;Proxy&#xff09;桥接模式&…

[leetcode]search-insert-position 搜索插入位置

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int searchInsert(vector<int>& nums, int target) {int left 0, right nums.size()-1;while(left <right) {int mid left (right-left)/2;if(nums[mid] target){return mid;} else if(nu…

软件测试之接口测试(Postman/Jmeter)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、什么是接口测试 通常做的接口测试指的是系统对外的接口&#xff0c;比如你需要从别的系统来…

Omni 动画核心运动包 - 为 Unity 游戏开发者带来卓越体验

Omni 动画核心运动包 前言资源包内容领取兑换码 前言 亲爱的 Unity 游戏开发者们&#xff0c;今天要向大家介绍一款令人瞩目的动画资源 - Omni 动画核心运动包。 这个运动包包含了多达 74 个 mocap 运动动画&#xff0c;每一个动画都是由专业演员通过我们先进的人工智能驱动动…

汽车电子行业知识:什么是车载智能座舱

1.什么是车载智能座舱 车载智能座舱是指搭载在汽车内部的一种智能系统&#xff0c;它集成了各种功能和技术&#xff0c;旨在提升驾驶体验、增加安全性和提供更多的便利。这种系统可以包括诸如智能驾驶辅助、信息娱乐、智能语音控制、车内环境控制、车辆健康监测等功能。通过车…

AI数据分析003:用kimi生成一个正弦波数学动画

文章目录 一、正弦波公式二、输入内容三、输出内容一、正弦波公式 ƒ(x) = a * sin(x + x0) + b 公式中: a: 决定正弦函数振动幅度的大小; x0:表示x开始比0拖后的弧度值; b:表示函数偏离X轴的距离; 对于难以理解的学生来说,可以用动画把这个公式直观的展现出来。 二…

cartographer从入门到精通(一):cartographer介绍

一、cartographer重要文档 有关cartographer的资料有2个比较重要的网站&#xff0c;我们的介绍也是基于这两个网站&#xff0c;其中会加入自己的一些理解&#xff0c;后续也有一些对代码的修改&#xff0c;来实现我们想完善的功能。 1-Cartographer 2-Cartographer ROS 第1个…

scipy optimze求解矩阵

☆ 问题描述 Trec PD&#xff0c;T是一个(81,128)的矩阵&#xff0c;rec是一个(128,1)的向量&#xff0c;PD是一个(81,1)的向量&#xff0c;现在rec和PD是一个已知的数&#xff0c;T有一个初始值&#xff0c;我想要你优化T使得等式成立 ★ 解决方案 import numpy as np from …

【蓝桥杯省赛真题46】python数字币统计 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

目录 python数字币统计 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python数字币统计 第十四届蓝桥杯青少年组python比赛省赛真题 一、题目…

中国航天:星舰与猛禽发动机数据分析

文章目录 MainReference Main 马斯克坚信&#xff0c;随着星舰的全面投入运营&#xff0c;SpaceX将能够承担地球上主轨道超过99%的载荷质量。这款第三代星舰的起飞推力将跃升至10000吨以上&#xff0c;其有效载荷质量亦将高达200吨以上。 不仅如此&#xff0c;每次发射的成本控…

吊车安全监控:车载监控系统在吊装作业中的应用

在吊装作业中&#xff0c;安全始终是第一位的。然而&#xff0c;由于吊车臂长、视野受限以及操作过程中的不确定性&#xff0c;事故风险总是存在的。为了解决这些问题&#xff0c;现代吊车普遍采用了摄像头监控系统&#xff0c;通过实时传输的图像&#xff0c;为司机提供全方位…

【鸿蒙学习笔记】数据类型

官方文档&#xff1a;ArkTS语言介绍 目录标题 声明变量声明常量数据类型 缺&#xff1a;byte charNumber类型 short int long float doubleBoolean类型 booleanString类型Void类型Object类型Array类型Enum类型Union类型Aliases类型 [代码总结] 声明变量 let hi: string hel…

【逆运动学】六轴机器人运动学逆解上位机控制

六轴机器人逆运动学上位机控制 最终效果 通过开发的上位机软件&#xff0c;实现对机械臂末端的精准操控。该软件接收输入的坐标与角度参数&#xff0c;经过算法处理计算出机械臂各关节轴的目标角度。随后&#xff0c;这些角度值被转换为对应的脉冲宽度调制&#xff08;PWM&am…