基础 | 零散的MySql基础记不住,看这一篇就够啦
❝
这是小小本周的第二篇,本篇将会着重的讲解关于MySql基础的内容,MySql基础看这一篇就够啦。
❞
送书反馈与继续送书
之情小微信公众号第一次送书,Java深度调试技术,书已经被中奖者麦洛签收,晒照片如下。
今日在朋友圈又送出去一本书,这本书为Java编程思想,收到书的尽快联系我哈。目前累计已经送出去书五本,已经一本书到手中,本号粉丝优先获得书籍哈。
开始今日正文
服务启动和停止
停止数据库服务
net stop mysql
开启数据库服务
net start mysql
数据库相关操作
连接数据库
mysql -uroot -p 密码
修改密码
alter user 'root'@'localhost' identified by 'root';
创建数据库
create database 数据库名;
显示所有数据库
show databases;
使用数据库
use 数据库名;
删除数据库
drop database 数据库名;
数据库表相关操作
创建数据库表
create table 表名 (列名1 数据类型1,列命2 数据类型2,...列名n 数据类型n,primary key 列名(主键));
查看数据库中的所有表
show tables;
查看数据库表结构
desc 表名;
删除表
drop table 表名;
修改数据库表名
alter table 表名 rename to 新表名;
添加列
alter table 表名 add 列名 数据类型;
删除列
alter table 表名 drop 列名;
表中数据相关操作
添加数据
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
添加列要和值相对应
insert into 表名 values(值1,值2,...值n);
值要包含表中所有的列
删除数据
delete from 表名 where 条件;
删除满足条件的数据。
delete from 表名;
默认删除表里的所有数据
修改数据
update 表名 set 列名1 = 值1, 列名2 = 值2,... where 条件
修改满足条件的数据
update 表名 set 列名1 = 值1, 列名2 = 值2,...;
如果是不加条件,则修改所有的数据。
查询数据
select 列命 from 表名,
查询某列的数据
select * from 表名
查询所有列的数据
select distinct 列命 from 表名,
查询去重后的数据
条件语句
select * from 表名 where 条件1 and 条件2,查询同时满足条件1和条件2的数据。
select * from 表名 where 条件1 or 条件2,查询满足条件1或条件2的数据。
select * from 表名 where not 条件1,查询不满足条件1的数据。
select * from 表名 where 列名 is null;,查询某列为空的数据。
select * from 表名 where 列名 is not null;,查询某列非空的数据。
select * from 表名 where 列名 between 值1 and 值2;,查询某列在值1和值2之间的数据。
select * from 表名 where 列名 like 'hello%';,查询所有以hello开头的数据,like结合%使用,其中%代表0到任意个字符。
select * from 表名 where 列名 like 'hello_';,查询所有以hello开头并且后面只跟一个字符的数据,like结合_使用,_代表1个字符。
select * from 表名 where 列名in (值1,值2,...);,查询某列在某区域内的数据。
排序和分页
select* from 表名 order by 列名;,通过该列进行升序排序。
select* from 表名 order by 列名 desc;,通过该列进行降序排序。
select* from 表名 limit offset,pagesize;,查询索引从offset(第一个数据索引是0)开始,每页显示pagesize个元素。
select* from user limit 0,10;,查询出的用户表数据,从第1个用户开始显示,每页显示10个。
select* from user limit 10,10;,查询出的用户表数据,从第10个用户开始显示,每页显示10个。
分组查询
select 字段名 from 表名 group by 字段名
select 字段名 count(字段名) from 表名 group by 字段名
举个例子
这里以下方的数据为例子
select user_type from user group by user_type;
select user_type,count(user_type) from user group by user_type;
联表查询
联表查询关键字为join,如果需要判断条件的话是添加join on + 条件 以下方的例子为例子表结构
内连接
内连接为一种最常用的联表查询,即,inner join,当我们查询了学生姓名和成绩的时,需要用到student 学生表和result成绩表,而inner join 查出的结果就是,学生表中有该学生而且成绩表中对应的有该学生的成绩,满足这一条件成绩就会被查询出来。栗子如下
外连接
外连接分为左连接和右连接,
左连接
所谓的左连接,也就是在内连接的基础上,把左表中的所有信息给打印。
右连接
右连接和左连接差不多,在内连接的基础上把右边的表的信息打印。以查询学生姓名和成绩为例子,右连接会把没有姓名的成绩打印出来,下面进行演示。
MySql 事物
事物简介
事物
事物是一个最小的不可再分的工作单元,通常一个事物对应一个完整的业务。事物处理可以用来维护数据库的完整性,保证成批的SQL语句要吗全部执行,要么都不执行。
事物操作
开启事物
start transaction;
提交事物,数据写回磁盘
commit
回滚事物
rollback
查看事物是否开启自动提交
show variables like 'autocommit';
关闭事物自动提交
set autocommit=off;
通过银行转账的例子演示事物
数据如下同时失败或者同时成功
update bank set money=700 where id=1;
update bank set money=600 where id=2;
所以需要先开启事物,再提交事物
start transaction;
update bank set money=700 where id=1;
update bank set money=600 where id=2;
commit;
事物特征
原子性 一致性 隔离性 持久性
事物的安全隐患
查看事物隔离级别
select @@transaction_isolation;
设置隔离级别为读未提交
set session transaction isolation level read uncommitted;
设置隔离界别为读已提交
set session transaction isolation level read committed;
设置隔离级别为可重复读
set session transaction isolation level repeatable read;
设置隔离界别为可串行化
set session transaction isolation level serializable;
MySql 索引
索引分为主键索引,唯一索引,普通索引,组合索引,全文索引。
查看表中数据数量
select count(*) from 表名;
查看表中索引
show index from 表名;
删除索引
drop index 索引名 on 表名;
删除主键索引,也就是删除了该字段
alter table 表名 drop 主键字段名;
主键索引
表结构
create table test(id int(11),name varchar(25),primary key (id)
);
创建表的时候添加索引
alter table test add constraint id primary key(id);
唯一索引
表结构
create table test(id int(11),name varchar(25),unique index_unique_test_name (name)
);
创建表之后创建唯一索引
create unique index index_unique_test_name on test(name);
修改表结构为唯一索引
alter table test add unique index index_unique_test_name (name);
普通索引
表结构
create table test(id int(11),name varchar(25),index index_test_name (name)
);
创建表之后创建普通索引
create index index_test_name on test(name);
修改表结构为普通索引
alter table test add index index_test_name (name);
组合索引
表结构
create table test(id int(11),name varchar(25),index index_test_id_name (id,name)
);
创建表之后创建组合索引
create index index_test_id_name on test(id,name);
修改表结构为普通索引
alter table test add index index_test_id_name (id,name);
全文索引
表结构
create table test(id int(11),name varchar(25),content text,fulltext (text)
);
创建表之后创建组合索引
create fulltext index index_content on test(content);
修改表结构为普通索引
alter table test add fulltext index index_content (content);
小明菜市场
推荐阅读
● 面试 | 你说你熟悉MySql,那你就来谈谈InnoDB如何解决幻读的?
● 传记 | 我的大学三年-不以物喜,不以己悲
● 实践 | Centos 7搭建LVS+Keepalived高可用Web服务群集群
● 牛X | 一款比传统数据库快100-1000倍的数据库,认识一下
● 巧用 | 低成本高可用,巧用Redis
基础 | 零散的MySql基础记不住,看这一篇就够啦相关推荐
- 网络安全工程师需要学什么?零基础怎么从入门到精通,看这一篇就够了
网络安全工程师需要学服务漏洞扫描.程序漏洞分析检测.权限管理.入侵和攻击分析追踪.网站渗透.病毒木马防范.计算机语言 等内容,还需要懂得网络安全产品的配置和使用. 网络安全工程师的工作职责: 主持项目 ...
- 毫无基础的人如何入门 Python 【看这一篇就够了】
Python是目前最好的编程语言之一.由于其可读性和对初学者的友好性,已被广泛使用.那么要想学会并掌握Python,可以实战的练习项目是必不可少的.接下来,我将给大家介绍20个非常实用的Python项 ...
- python中的数据类型有哪些是可阅读_Python list data type(list)[学习Python的必要基础知识][阅读本文],列表,数据类型,必备,看此,一篇,就够,了...
您的"关注"和"点赞",是信任,是认可,是支持,是动力- 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 Python ...
- uvm基础(2)TLM通信,看这一篇就够了
tlm通信概述 tlm通信的步骤:1.分辨出initiator和target,producer和consumer. 2.在target中实现tlm通信方法. 3.在俩个对象中创建tlm端口. 4.在更 ...
- MySQL优化/面试,看这一篇就够了
概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计数据库 ...
- (修订)MySQL优化/面试,看这一篇就够了
出处:http://www.zhenganwen.top 本文概要 概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 ...
- MySql快速复习,看这一篇就够了!
Mysql 在这里记录了MySql的基本操作,感兴趣的小伙伴可以快速查看哦! 1. 基本操作 -- 基本操作 SHOW DATABASES; CREATE DATABASE IF NOT EXISTS ...
- mysql ip比较大小_MySQL优化/面试,看这一篇就够了
原文链接:http://www.zhenganwen.top/articles/2018/12/25/1565048860202.html 作者:Anwen~ 链接:https://www.nowco ...
- mysql缺少函数_总结零散的 MySQL 基础知识
前言 在日常开发中,一些不常用且又比较基础的知识,过了一段时间之后,总是容易忘记或者变得有点模棱两可.本篇主要记录一些关于MySQL数据库比较基础的知识,以便日后快速查看. SQL命令 SQL命令分可 ...
最新文章
- Python实现线程池
- TLD文件中body-content四种类型(能力工场)
- hdu2492 数状数组或者线段树
- 打通前后端,这款效能提升开源“神器”你一定要了解
- 【简便解法】1084 Broken Keyboard (20 分)_16行代码AC
- 关于 Azure SQL 数据库你不知道的 5 件事
- Node.js server使用
- 电气与计算机学院院长论坛报告,我校电子系举办2019年电子信息学科院长论坛暨工程教育新进展研讨会...
- ElasticSearch 7 正式发布!
- 2016.7.27 VS搜索正则表达式,在UltraEdit中可选用Perl正则引擎,按C#语法搜索
- html怎么设置空链接,HTML a标签之空链接
- 雷啊:淘宝上卖F22战斗机
- 痞子衡嵌入式:语音处理工具pzh-speech诞生记(6)- 文语合成实现(pyttsx3, eSpeak1.48.04)...
- 学习 Python 之 Pygame 开发魂斗罗(九)
- 华为交换机本地查看登录和操作日志
- 计算机网络超时重传时间,TCP超时重传机制
- direct wifi 投屏_告别Wifi直接投 AOC无线投屏显示器轻松用
- Vue3分页器(Pagination)
- 面包师问题--进程同步问题
- canvas写的地铁地图
热门文章
- 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
- 代码同时托管到github和git.oschina.net
- [html] url、href、src 详解
- 找出数组中只出现一次的数
- php编译时出错make: *** [libphp5.la] Error 1
- 你网络成瘾了吗 小心一堆怪病找上你
- 1051 mysql 主从_mysql配置主从读写分离的一些想法
- javascript 自执行匿名函数
- Exception in thread main java.lang.NoClassDefFoundError
- C#学习成果 质数判断