Mysql数据库的概念及sql语法和规范+数据库的用户管理

news2024/9/24 11:33:11

一、数据库的概念

1.数据库:组织、管理、存储数据的仓库

2.数据库的管理系统(DBMS):实现对数据有效组织,管理和存储的系统软件。

3.关系型数据库和非关系性数据库:

关系型数据库:mysql   oracle     postgresql,关系型数据库是一张二维的表格,表里面有行和列,行记录的是对象的信息和字段的属性,列记录的是对象和字段,行+列就组成一张表。只有关系型数据库才有表

非关系型数据库:缓存型数据库redis、索引型数据库ES,文档型数据库MongoDB

4.关系型数据库和非关系型数据库的优缺点:

关系型数据库的优点:表的结构清晰,逻辑容易整理,记录的数据比较完整。

                         缺点:读写速度比较慢,并发量差(同时的并发访问支持度不高),数据迁移比较麻烦。

非关系型数据库的优点:支持高并发读写,对海量数据依旧可以保持高效率的存储和访问,架构可扩展。

                             缺点:键值对形式存储,数据扩展及比较复杂,数据是保存在缓存(内存)当中(redis),如果意外重启所有数据都会丢失。

5.mysql的数据类型:

char:固定长度的字符类型,用于存储固定长度的字符串;,一旦定义好了长度之后,不论你写的值是多少,都会使用固定长度的字节大小,它们保存在磁盘之上都是4字节。

varchar:存储的是可变长度的字符类型,保存字符串时,是多少占多少,但是在保存的字符串结尾默认有一个隐藏的字符串,会多占一个字节。

varchar和char的区别:varchar比char要节约磁盘空间;读写速度char的读写性能高于varchar,char是保存的内容是连续的;varchar在增删改查之后,会产生一个磁盘空间的碎片文件,影响读写性能。

int:存储的数据类型为整数

float:浮点数,小数点   

float(m,d):m表示总位数,d表示小数位数

double:双精度浮点数

double(m,d):m表示总位数,d表示小数位数

date:用于存储日期,YYY-MM-DD

datetime:用来存储日志和时间,格式YYY-MMM-DD  HH:MM:SS

timestamp:和datetime类似,但是他可以自动记录当前时间

smallinit:存储小整数

bigint:存储大整数

decimal(5,2):存储精度的浮点数

6.数据库管理:一条数据库的语句是连贯的,以分号为结尾表示一条完整的sql语句;但是太长了,不方便阅读和理解,我们可以对一条语句进行分行的写法;关键词不能跨行。

增删改查:sql语句

sql中的名词:数据库叫database

                       表:table

                       行:row

                       列:column

                       索引:index

                       视图:view

                       用户:user

                       权限:privilege

                       存储过程:procedure

                       存储函数:funcrion

                       调度器:exent

sql的语言规范:在数据库系统中,sql语句不区分大小写;sql语句可以单行也可以多行,但是必须要以分号结尾。

sql的命名规范:库名,表名,列名,都是必须以字母开头,后面可以有数字及特殊符号,但不要使用mysql的命令;库名,表名,用户名严格区分大小写。

sql语言的分类:

DDL:数据库定义语言,创建数据库的对象语言,库,表,列和索引等等   create(创建) drop(删除)alter(改)

DML:数据库操作语言,对表里面的数据进行管理   select   update   insert  delete

DQL:数据库查询语言,数据库的查询语句  select

DCL:数据控制语言,控制和管理数据库用户的角色和权限    grant  revoke

TCL:事务控制语言:用来管理数据库的事务,脚本开发及存储过程   commit  rollback

7.如何创建库和表的语句

创建库:create database test;

创建表:一条数据库的语句是连贯的,以分号为结尾表示一条完整的sql,但是太长,不方便阅读和理解,我们可以对一条语句进行分行的写法,关键词不能跨行。

 

 查看表的属性

纵向展示表名:只能在虚拟机操作,在

删除库  

删除表

8.DML管理语句:

insert:插入数据的两种方法

insert   into 表名(字段1,字段2,字段3)  values(1,2,3);

insert   into  表名  valuse  (1,2,3);

 insert  :插入时间类型的两种方法

null和空值之间的区别:

wc这个表哪列的score值为null

对已有数据修改和更改:

update   表名  set  列名=值  where  条件;

删除表的数据

delete from 表名 where 条件;

9.DQL查询语句:

查看指定列的值

查看指定行

去重查询

10.where语句:条件的筛选

查询id为7的行

 查询id为5且score为5.55的行

查询id为5或者score为6.66的行 

模糊查询:like

11.alter 修改表名和修改表结构

给表添加一个列:一定要加数据类型char或varchar

修改字段的数据类型:

删除列:把address这列删除

修改列的名称

12.约束条件:

主键约束:primary key  用于标识表中的主键列的值,而且这个值是全表当中唯一的,而且值不能为null,一个表中只能有一个主键。

创建主键的第一种方式:

创建主键的第二种方式:

创建外键:用来建立表于表之间的关系,确保外键中的值于另一个表的主键值匹配,保证数据引用的完整性,多表联查,不要超过三张表,会降低查询效率。

 删除主键和外键:

非空约束:保证列中的值不含null值。

唯一性约束(unique key):确保列中的所有值都是唯一的,类似主键,但是一个表可以有多个唯一约束。

自增约束,在列生成的每一行都会自动生成一个唯一标识符,通常和主键一起使用,每次插入新行是,自增列的值会自动增加。

复制表:两种方法

创建临时表:刷新表看不到表名,重启后直接失效

清空表:删除表内内容但是保留表和表结构

 二、增删改查日测题(上机实操)
1、创建库,库名 country

2、创建表,表名 province和city 要求如下:

1)、province包含字段:
ct_id为区号,最多四位 主键;
ct_name 城市名 最长5位,不能为空,不能重复
ct_scale 城市规模,可重复,不能为空。

2)、city包含字段
c_id 主键 
c_street 不能为空,不能重复。
c_subway  int 不能重复 可以为空
c_weather 字符串 可以空 默认值:晴

3)通过修改表city,创建外键关联province的主键,ct_id。

分别插入5条数据,任选。不限制

展示表1的前两行,展示表2的2-4行

有重复数据,去重查询。

修改表city,将c_weather的默认值改为:不详

 

三、数据库的用户管理

1.创建普通用户:create user

create user 'wc'@'192.168.127.10';

wc表示用户名

192.168.127.10表示新建的用户wc可以在哪些主机上登录,既可以使用IP地址,也可以使用网段,也可以使用主机名。

'wc'@'192.168.127.10' 指定ip登录

'wc'@'192.168.127.0/24' 指定网段登录

'wc'@'%' 百分号表示所有,可以从任何设备登录

查看mysql库中的user表的内容:select * from  user;

user:用户名,Host:可以登录的主机,local host指的是本地登录,%:任意主机(IP地址);权限上local host大于"%"的权限。

 2.设置用户权限:grant   all    privileges  on *.* to 'wc'@'192.168.127.80'  identified  by '1234560';

 grant  all privileges 赋予用户所有权限(增删改查)

on *.* 对所有库及所有表都有操作权限(左边的*代表库,右边的*代表库里的表)

如 on test.* 表示只能对指定的test库进行操作

to 'wc'@'192.168.127.80' 赋权给wc这个用户及登录的主机

3.查看已有用户的权限:

4.取消用户权限:

 5.只给用户指定库查的权限

 

 6.给用户添加多个权限

 7.删除用户的多个权限

 

8.删除用户

 9. 创建用户并给予密码:

      identified by '123456' 使用哪个密码进行登录

 

10.忘记密码如何免密登录:vim   /etc/my.cnf

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

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

相关文章

神经网络概述

目录 1. 前馈神经网络(Feedforward Neural Networks, FNNs) 2. 卷积神经网络(Convolutional Neural Networks, CNNs) 3. 循环神经网络(Recurrent Neural Networks, RNNs) 4. 长短期记忆网络(Long Short-Term Memory, LSTM) 5. 门控循环单元(Gated Recurrent Unit…

MSPM0G3507——时钟主频拉到80MHZ

先点开使用时钟树 在配置时钟界面这样配置

【送书活动十期】从零开始node.js制作CLI工具

这篇博客的由来是源于工作中一个java项目的配置项是加密后的私钥,私钥是由其他项目中调用web3生成随机账号得到的,而加密方法只是简单在java项目中执行代码得到。这便导致两步操作有点割裂,需要有一个脚本来完成生成私钥和加密私钥&#xff0…

[Tensor学习]你不得不知道的知识点-切点-反转

wait...突然发现了一个错误: 在tensor里面只有size相同才允许相加, 如果想要相连接: PS: 如果tensor是多维的,比如说 a Tensor([1,2,3], [4,5,6]) 那么有 a[ : , :] a a[0,0] 1 a[ 第一维 ,第二维] ...…

乘积量化pq:将高维向量压缩 97%

向量相似性搜索在处理大规模数据集时,往往面临着内存消耗的挑战。例如,即使是一个包含100万个密集向量的小数据集,其索引也可能需要数GB的内存。随着数据集规模的增长,尤其是高维数据,内存使用量会迅速增加&#xff0c…

MAC地址电脑的“身份证”

在电脑的世界里,每个设备都有一个独一无二的标识,就像我们的身份证号码一样。 这个标识被称为MAC地址(Media Access Control Address),它是网络设备硬件的唯一识别码。 MAC地址由12个十六进制数字组成,通…

区块链资料

Quantstamp - Public Security Assessments smart-contract-sanctuary-bsc/contracts/mainnet at master tintinweb/smart-contract-sanctuary-bsc GitHub https://github.com/slowmist/Cryptocurrency-Security-Audit-Guide/blob/main/README_CN.md sFuzz: 高效自适应的智…

ArkUI组件——循环控制/List

循环控制 class Item{name: stringprice:number}private items:Array<Item> [new Item("A0",2399),new Item("BE",1999),new Item("Ro",2799)] ForEach(this.items,(item:Item) > {})List组件 列表List是一种复杂的容器&#xff0c;…

小程序里面使用vant ui中的vant-field组件,如何使得输入框自动获取焦点

//.wxml <van-fieldmodel:value"{{ userName }}"placeholder"请输入学号"focus"{{focusUserName}}"/>// .js this.setData({focusUserName: true});vant-field

postgresql删除用户

背景 **角色与用户**&#xff1a;在 PostgreSQL 中&#xff0c;用户和组的概念是通过“角色”来统一实现的。角色可以有登录权限&#xff08;在这种情况下&#xff0c;它们通常被称为“用户”&#xff09;&#xff0c;也可以没有&#xff08;在这种情况下&#xff0c;它们通常用…

网络请求之代理proxy

为什么要用代理呢&#xff1f;这个就涉及到安全问题了&#xff0c;你要是用一个IP频繁的访问人家网站&#xff0c;这不就是在搞事情么&#xff0c;人家网站肯定得把你的IP禁掉。所以我们爬虫的时候就得经常换IP&#xff0c;就是拿别人的IP不同人的IP访问网站去爬取数据。 我们…

AQS源码解析(ReentrantLock)

什么是AQS:Juc中的大多数同步器都是围绕着一些相同的基础行为&#xff0c;比如等待队列&#xff0c;条件队列&#xff0c;共享&#xff0c;独占获取变量这些行为&#xff0c;抽象出来就是基于AQS&#xff08;AbstractQueuedSynchronizer&#xff09;实现的。所以可以把AQS看成这…

昇思学习打卡-18-LLM原理与实践/MindNLP ChatGLM-6B StreamChat

文章目录 模型介绍技术特点运行效果 模型介绍 ChatGLM-6B模型是一个开源的、支持中英双语的对话语言模型&#xff0c;由清华大学和智谱AI联合研发。 技术特点 模型量化技术&#xff1a;ChatGLM-6B结合了模型量化技术&#xff0c;使得用户可以在消费级的显卡上进行本地部署。…

C++动态内存的管理

今天来分享C动态内存管理相关知识&#xff0c;闲言勿谈&#xff0c;直接上干货。 1. 动态内存的开辟和销毁(new和delete) (1)前置知识&#xff1a;我们知道c语言有malloc和calloc和realloc三个函数可以进行动态的开辟内存&#xff0c;那么它们有什么区别呢&#xff1f;首先是…

Module2 DRC Basics

材料链接 calibre_rule_writing_2007 - 道客巴巴https://www.doc88.com/p-330763936895.html Calibre DRC介绍 Calibre nmDRC流程 找寻,查看,纠正DRC冲突的一个完整的过程: 从Layout输入,加上svrf文件,一起输入进nmDRC软件; 输出DRC result数据,summary report,tr…

【经验分享】关于静态分析工具排查 Bug 的方法

文章目录 编译器的静态分析cppcheck安装 cppcheck运行 cppcheck 程序员的日常工作&#xff0c;不是摸鱼扯皮&#xff0c;就是在写 Bug。虽然这是一个梗&#xff0c;但也可以看出&#xff0c;程序员的日常一定绕不开 Bug。而花更少的时间修复软件中的 Bug&#xff0c;且不引入新…

第4章 Express路由的深入理解(二)

4 路由分组 路由分组用于将相关的路由组织在一起&#xff0c;使代码更具模块化和可维护性。可以通过使用 express.Router 创建路由组。 示例&#xff1a; const express require(express); const app express(); const apiRouter express.Router(); const userRouter ex…

【青书学堂】2024年第一学期 保险理论与实务(高起专) 作业

【青书学堂】2024年第一学期 保险理论与实务(高起专) 作业 为了方便日后复习&#xff0c;青书学堂成人大专试题整理。 若有未整理的课程&#xff0c;请私信我补充&#xff0c;欢迎爱学习的同学们收藏点赞关注&#xff01;文章内容仅限学习使用&#xff01;&#xff01;&#xf…

debian 实现离线批量安装软件包

前言 实现在线缓冲需要的软件和对应依赖的包&#xff0c;离线进行安装 &#xff0c;用于软件封装。 测试下载一个gcc和依赖环境&#xff0c;关闭默认在线源&#xff0c;测试离线安装gcc和依赖环境 兼容 debian ubuntu/test 测试下载安装包到目录 vim /repo_download.sh #!…

每日练习,不要放弃

目录 题目1.下面叙述错误的是 ( )2.java如何返回request范围内存在的对象&#xff1f;3.以下代码将打印出4.下列类定义中哪些是合法的抽象类的定义&#xff1f;&#xff08;&#xff09;5.以下代码段执行后的输出结果为6.以下代码运行输出的是总结 题目 选自牛客网 1.下面叙述…