MySQL数据库基础:安装+登入+SQL操作语句+数据库授权、备份、恢复+其他操作
MySQL简介
MySQL最流行的RDBMS(关系型数据库系统),特别是在WEB应用方面,表现特点
- 数据以表格的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成的database
RDBMS术语:数据库、数据表、列、行、外键、主键、复合键、索引、参照完整性
SQL:结构化查询语言,是最重要的关系型数据库操作语言
包括六个部分:
- 数据查询语言:SELECT
- 数据操作语言:INSERT、UPDATE、DELETE
- 事物处理语言:BEGIN TRANSACTION、COMMIT、ROLLBACK
- 数据控制语言:GRANT(授权)、REVOKE(回收权限)
- 数据定义语言:CREATE、ALTER、DROP
- 指针控制语言:DECLARE CURSOR、FETCH INTO、UPDATE WHATE CURRENT
MySQL数据库安装
Window可以安装XAMPP集成环境(Apache发行版)
https://www.apachefriends.org/zh_cn/download.html
可下载MariaDB开源的:https://downloads.mariadb.org
Ubuntu系统安装:sudo apt-get install mysql-server mysql-client
配置文件
Win下my.ini文件 | Linux下mysql.conf文件
配置mysql环境变量
win+r打开运行->输入cmd打开命令行界面进行操作
SQL基础操作
数据库登入
Mysql -h [主机名] -u [用户名] -p [密码] [库名]
匿名登入(不能操作数据库):mysql
IP登入:mysql -h [IP地址] -u [用户名] -p [密码]
默认本机登入:Mysql -u [用户名] -p [密码] 默认登入本机服务
默认本机登入并进入数据库:mysql -u [用户名] -p [密码] [库名]
SQL语句快捷键:
\G 格式化输出(文本式,竖立显示) \s 查看服务器端信息
\c 结束命令输入操作 \q 退出当前sql命令行模式 \h 查看帮助
数据库操作
mysql> show databases; --查看当前用户下的所有数据库
mysql> create database [库名]; --创建数据库
mysql> create database if not exists [库名]; --创建数据库
PS:if not exists [库名]; --添加判断只有在该数据库不存在才会创建可避免报错
mysql> use [库名]; --选择进入text(库名)数据库
mysql> show create database [库名]\G --查看建数据库语句
mysql> select database() ; --查看当前所在的数据库位置
mysql> drop database [库名]; --删除一个数据库
mysql> drop database if exists [库名]; --删除一个数据库,添加判断语句当文件存在才会删除
数据表操作
mysql> show tables; --查看当前库下的所用表格
mysql> desc [表名]; --查看表结构
mysql> show create table [表名]\G --查看表的键表语句
mysql> create table [表名]( --创建demo表格
->name varchar(16) );表格属性
mysql> show columns form [表名]; --查看表结构
mysql> desc [表名]; --查看表结构
mysql> drop table if exists [表名]; --尝试删除表格
数据操作
mysql> insert into [表名](name,age,sex) valuse(‘yang’,20,’w’); 添加数据
mysql> select * form [表名]; 查询数据
mysql> update [表名] set age = 25 where name =’aaa’; 修改数据
mysql> delete form [表名] where name = ‘bbb’; 删除数据
MySQL数据类型与操作
数值类型:tinyint、int、float、double
字符类型:char、varchar、text、enum
日期类型:datetime
特殊的值:NULL
MySQL中的运算符
算数运算符:+ - * / %
比较运算符:= > < >= <= <> !=
数据库特有的比较:in、not in、is null、is not null、like(模糊查询)、between * and *(两着之间)
逻辑运算符:and or not
真假使用1和0表示
MySQL的建表语句格式:
create table 表名(
字段名 类型 [字段约束],
字段名 类型 [字段约束],
)
表的字段约束:
unsigned 无符号(正数)
zerofill 前导零填充
auto_increment 自增
default 默认值
not null 非空
primary key 主键(非null并不重复)
unique 唯一性(可以为null 但不重复)
index 常规索引
PS: 使用unsigned 要跟在类型后面
修改表结构格式:
alter table 表名 action 更改选项
添加字段:alter table 表名 add 字段名信息 如:表名 类型 约束
删除字段:alter table 表名 drop 被删除的字段名
修改字段:alter table 表名 change[modify] 被修改后的字段信息
Change 修改字段名 modify修改类型约束 如:字段名 需要修改数据
First 表最前面 如:alter table 表名 add 字段名 first; 添加字段在表的最前面
After 某个字段后 如:alter table 表名 add 字段名 after 某个字段; 添加字段在某个字段后
Alter table 表名 rename as 新表名; 修改表名
Alter table 表名 engine 表类型; 修改数据表的类型
数据的DML操作:数据添加,修改和删除
insert into [表名](字段1,字段2) values(值,值); 标准添加数据
Desc 表名; 查看表字段
insert into 表名 values(值,值);按照表字段添加值
insert into 表名(字段1) values(值);赋值部分数据
insert into 表名(字段1,字段2) values(值,值),(值,值),(值,值); 批量添加数据
Update 表名 ste 字段=‘’,字段=‘’ where 修改条件
Delete form 表名 where 条件
数据查询
Select * form 表名; 查看表全部数据
Select 字段,字段 form 表名; 只查看着两个字段数据
Select 字段,字段,字段+5 form 表名; 增加字段计算
Select 字段 as 字段名 form 表名; 修改输出数据名
Select *,”zhi” as 新字段名 form 表名; 在输出的基础上增加一个字段 值为“zhi”
Select * form 表名 where 条件; 查看符合条件的数据
Select * form 数据库名.表名; 查看某个数据库中的表
Like查询
如 select * form 表名 where name like “%a%”; 查询字段name含有a的数据
“aa%” 开头是aa的数据 “____”四位长度数据 “%ww” ww结尾的数据
Select count(字段或者*) form 表名; 统计数据数量
Select count(*),max(字段),min(字段),sum(),avg() form 表名;计算字段最大最小总和平均数据
Select 字段 form 表名 group by 字段; 按相同字段分组
Select 字段,count(*) form 表名 group by 字段; 分组并统计相同字段数量
二次过滤 添加having 子条件
Select 字段,count(*) as num form 表名 group by 字段 having num>3; 分组并统计相同字段数量再次过滤数据
聚合函数:count()、max()、min()、sum()、avg()
select * from 表名 order by 字段; 默认升序排序
select * from 表名 order by 字段 desc; 降序排序
select * from 表名 order by 字段 asc; 升序排序
select * from 表名 order by 字段 asc,字段 desc; 分别做升序降序排序
select * from 表名 limit 3; 获取部分数据 3条
select * from 表名 orber by 字段 desc limit 3; 获取部分数据 3条 并且排序
select * from 表名 limit 2,3; 跳过前两段数据获取后面三条数据
Where > group by > order by > limit
使用优先顺序
数据库授权、备份和恢复
Show databases; 查看数据库
Use mysql; 进入到mysql数据库
Show table; 查看数据表
Desc user; 查看字段
Select hosh,user,password form mysql.uaer; 查看
select * from user\G;数据竖着显示
授权数据库
Grant all on *.* to zhangsan@’%’ identified by ‘123’
All 所有操作 *.* 所有的库.所有的表 zhangsan 账户 “%” 任何地方都可以登入 123 密码
Revoke 去除权限
Drop user ‘zhangsan’@’%’ 删除用户
数据库备份
进入数据库:use 数据库名;
Cd 目录路径 进入备份目录
Mysqldump -u root -p 数据库名>文件名.sql
导出表 Mysqldump -u root -p 数据库名 表名>文件名.sql
Drop table 表名; 删除表
导入数据
Mysql -u root -p 数据库名<文件名.sql 导入文件的文件名
MySQL多表联查
表之间的关系有:一对一,一对多,多对多
多表联查的方式:
- 嵌套查询
- Where关联查询
- 连接join查询
左联:left join 右联:right join 内联:inner join
嵌套查询
Select * form 表名 where 字段=(select max(age) form 表名)
Where 没有的不显示 两表的交集
Select s.id,s.name,g.subject,g.score form stu s,grade g
Where s.id = g.sid; where关联查询
Where s.id = g.sid order by g.score desc; where关联查询 并且根据字段排序
Join查询
Select s.id,s.name,s.classid,g.subject,g.score form stu s left join grade g on s.id=g.sid
Where 自己筛选条件
以某表为主的查询显示
MySQL其他操作
表复制
Create table 表名 like 表名; 复制表结构
insert into 表名 select *form 表名 where 一些条件 ;有条件复制 复制部分数据
表索引
Create index 索引名 on 表名(字段); 添加字段索引
Drop index 索引名 on 表名; 删除字段索引
select concat(字段,”:”,字段) form 表名; 连接字段查询
select * from 表名 where length(字段)=2; 查询字段等于2的
select rand(); 获取一个随机数
select * from [表名] order by rand() limit 3; --在表中随机取三条数据
select now(); 获取系统时间
select version(); 获取数据库版本
select database(); 获取在那个数据库
MySQL执行事务 充许你可以后悔
InnoDB的表类型才支持事务
set autocommit = 0; 关闭自动提交 1 自动提交
rollback(); 撤销 没提交的操作
commit();提交 不能撤销操作
# 删除学生信息def delete(self,id):cursor = self.db.cursor() # 获取操作游标try:cursor.execute("delete s from syudent s where id=%s"%(id))self.db.commit()print("学号为%s的学生信息成功删除"%(id))except:self.db.rollback()data = input("输入错误请重新输入(退出/E):")if(data == "e"):returnelse:self.delete(data)
mysql日志
开启日志:去mysql配置文件my.ini 开启log-bin=mysql-bin
保存并重启mysql数据库才能生效
记录数据库操作(增加,修改,删除不包括查询)
数据恢复
恢复最后一次备份完整数据
Mysql -u root -p 数据库<文件.spl;
查看bin-log日志
Mysqlbinlog --no-defaults mysql-bin.000009;
查找到恢复点
执行日志文件,恢复最后一块数据
Mysqlbinlog --no-defaults --stop-position=’802’ mysql-bin.000009|mysql
MySQL数据库基础:安装+登入+SQL操作语句+数据库授权、备份、恢复+其他操作相关推荐
- MySQL数据库基础(五)——SQL查询
MySQL数据库基础(五)--SQL查询 一.单表查询 1.查询所有字段 在SELECT语句中使用星号""通配符查询所有字段 在SELECT语句中指定所有字段 select fro ...
- mysql请输入一个有效类型的长度值_MySQL数据库基础(三)——SQL语言
MySQL数据库基础(三)--SQL语言 发布时间:2020-05-19 16:40:05 来源:51CTO 阅读:10596 作者:天山老妖S MySQL数据库基础(三)--SQL语言 一.SQL语 ...
- 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的
文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...
- 【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(3) 数据定义
本文属于「数据库系统」系列文章之一,这一系列着重于「数据库系统知识的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏数据库系统系列文章汇总目录一文以作备忘.需要特别说明的是,为了透彻理解 ...
- MySQL是如何执行一条SQL更新语句
MySQL是如何执行一条SQL更新语句 1. SQL更新流程 2. 重做日志redolog 3. 归档日志binlog 4. 两阶段提交 1. SQL更新流程 MySQL是如何执行一条SQL查询语句的 ...
- mysql删除新添加数据_MySQL数据库基础(六)——SQL插入、更新、删除操作
MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO ta ...
- MySQL数据库常安装及常用sql命令
1数据库简介 1.1数据库概念及作用 数据库(Database)时按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口来创建,访问,管理,搜索和复制所保存的数据. 我们可 ...
- MySql DDL日志_mysql学习日记——数据库基础与基本DDL、DML语句
# # # 数据库的基本概念 数据库: DataBase (DB).用于存储和管理数据的仓库. 数据库的特点: 1. 持久化存储数据的.其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用 ...
- mysql 3.5安装_MYSQL学习笔记-06-搭建数据库
文章内容输出来源:拉勾教育Java高薪训练营 1. 安装说明 基于Ubuntu Linux系统安装,MySQL版本是5.7.29. 安装方式是通过官网下载相应的tar.gz压缩包进行安装.这种方式需要 ...
最新文章
- pycharm如何修改背景成护眼色和字体大小
- C#——《C#语言程序设计》实验报告——综合练习——委托、Lambda表达式、LINQ、接口
- 前端必备,Adobe Premiere Pro 常用快捷键
- kafka java api 删除_使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)...
- 修改Tomcat编码方式的两种方法
- 授权普通非DBA用户可以有权限查看执行计划的方法
- Android 开机时间优化
- TikTok运营,TikTok数据分析
- nc361t支持的服务器,使用5760/3850 WLC的外部RADIUS服务器EAP身份验证配置示例
- 浙大版《C语言程序设计(第3版)》题目集习题4-11 兔子繁衍问题 (15 分)
- 【动态规划】爬楼梯爬的不仅仅是楼梯
- 开放平台设计方案与实践
- 计算机组成原理简单模型机实验,CPU 与简单模型机设计实验
- 如何评价1700亿参数的GPT-3?
- UI进阶——XML解析与Json解析
- python数据分析库pandas-三、: python数据分析处理库-Pandas
- Word学习笔记:P5-标尺和定位点要如何使用
- [cesium] | 视频融合 | 自定义视频投放
- 本人地推行业摸爬滚打5年
- IT行业应届毕业生的简历改怎么写?
热门文章
- x509证书_从Linux shell提示符中查看TLS/SSL证书有效期
- 基于MATLAB的数字水印系统
- Python中容器的学习
- 利用语义分割(FCN)区分两种有文字和无文字区域
- html css fontfamily,CSS font-family 属性
- centos7查看路由的命令_CentOS7 添加路由命令
- linux怎么做路由跟踪_linux使用traceroute命令追踪路由
- nuxt全栈仿美团官网13——首页下面的格调
- [转]《摄影艺术家陈冠希老师作品的文化解读》
- 谷哥学术2022年2月资源分享列表 07/20