MySQL简介

MySQL最流行的RDBMS(关系型数据库系统),特别是在WEB应用方面,表现特点

  1. 数据以表格的形式出现
  2. 每行为各种记录名称
  3. 每列为记录名称所对应的数据域
  4. 许多的行和列组成一张表单
  5. 若干的表单组成的database

RDBMS术语:数据库、数据表、列、行、外键、主键、复合键、索引、参照完整性

SQL:结构化查询语言,是最重要的关系型数据库操作语言

包括六个部分:

  1. 数据查询语言:SELECT
  2. 数据操作语言:INSERT、UPDATE、DELETE
  3. 事物处理语言:BEGIN TRANSACTION、COMMIT、ROLLBACK
  4. 数据控制语言:GRANT(授权)、REVOKE(回收权限)
  5. 数据定义语言:CREATE、ALTER、DROP
  6. 指针控制语言: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多表联查

表之间的关系有:一对一,一对多,多对多

多表联查的方式:

  1. 嵌套查询
  2. Where关联查询
  3. 连接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操作语句+数据库授权、备份、恢复+其他操作相关推荐

  1. MySQL数据库基础(五)——SQL查询

    MySQL数据库基础(五)--SQL查询 一.单表查询 1.查询所有字段 在SELECT语句中使用星号""通配符查询所有字段 在SELECT语句中指定所有字段 select fro ...

  2. mysql请输入一个有效类型的长度值_MySQL数据库基础(三)——SQL语言

    MySQL数据库基础(三)--SQL语言 发布时间:2020-05-19 16:40:05 来源:51CTO 阅读:10596 作者:天山老妖S MySQL数据库基础(三)--SQL语言 一.SQL语 ...

  3. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

  4. 【数据库系统】第一部分 数据库基础(3) 关系数据库标准语言SQL(3) 数据定义

    本文属于「数据库系统」系列文章之一,这一系列着重于「数据库系统知识的学习与实践」.由于文章内容随时可能发生更新变动,欢迎关注和收藏数据库系统系列文章汇总目录一文以作备忘.需要特别说明的是,为了透彻理解 ...

  5. MySQL是如何执行一条SQL更新语句

    MySQL是如何执行一条SQL更新语句 1. SQL更新流程 2. 重做日志redolog 3. 归档日志binlog 4. 两阶段提交 1. SQL更新流程 MySQL是如何执行一条SQL查询语句的 ...

  6. mysql删除新添加数据_MySQL数据库基础(六)——SQL插入、更新、删除操作

    MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO ta ...

  7. MySQL数据库常安装及常用sql命令

    1数据库简介 1.1数据库概念及作用 数据库(Database)时按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API接口来创建,访问,管理,搜索和复制所保存的数据. 我们可 ...

  8. MySql DDL日志_mysql学习日记——数据库基础与基本DDL、DML语句

    # # # 数据库的基本概念 数据库: DataBase (DB).用于存储和管理数据的仓库. 数据库的特点: 1. 持久化存储数据的.其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用 ...

  9. mysql 3.5安装_MYSQL学习笔记-06-搭建数据库

    文章内容输出来源:拉勾教育Java高薪训练营 1. 安装说明 基于Ubuntu Linux系统安装,MySQL版本是5.7.29. 安装方式是通过官网下载相应的tar.gz压缩包进行安装.这种方式需要 ...

最新文章

  1. pycharm如何修改背景成护眼色和字体大小
  2. C#——《C#语言程序设计》实验报告——综合练习——委托、Lambda表达式、LINQ、接口
  3. 前端必备,Adobe Premiere Pro 常用快捷键
  4. kafka java api 删除_使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)...
  5. 修改Tomcat编码方式的两种方法
  6. 授权普通非DBA用户可以有权限查看执行计划的方法
  7. Android 开机时间优化
  8. TikTok运营,TikTok数据分析
  9. nc361t支持的服务器,使用5760/3850 WLC的外部RADIUS服务器EAP身份验证配置示例
  10. 浙大版《C语言程序设计(第3版)》题目集习题4-11 兔子繁衍问题 (15 分)
  11. 【动态规划】爬楼梯爬的不仅仅是楼梯
  12. 开放平台设计方案与实践
  13. 计算机组成原理简单模型机实验,CPU 与简单模型机设计实验
  14. 如何评价1700亿参数的GPT-3?
  15. UI进阶——XML解析与Json解析
  16. python数据分析库pandas-三、: python数据分析处理库-Pandas
  17. Word学习笔记:P5-标尺和定位点要如何使用
  18. [cesium] | 视频融合 | 自定义视频投放
  19. 本人地推行业摸爬滚打5年
  20. IT行业应届毕业生的简历改怎么写?

热门文章

  1. x509证书_从Linux shell提示符中查看TLS/SSL证书有效期
  2. 基于MATLAB的数字水印系统
  3. Python中容器的学习
  4. 利用语义分割(FCN)区分两种有文字和无文字区域
  5. html css fontfamily,CSS font-family 属性
  6. centos7查看路由的命令_CentOS7 添加路由命令
  7. linux怎么做路由跟踪_linux使用traceroute命令追踪路由
  8. nuxt全栈仿美团官网13——首页下面的格调
  9. [转]《摄影艺术家陈冠希老师作品的文化解读》
  10. 谷哥学术2022年2月资源分享列表 07/20