MySQL总结01
window删除MySQL服务
- cmd下执行
sc delete MySQL
登陆登出
登陆:
mysql -uroot -ppasswd -h host
退出登陆
mysqladmin -uroot -ppasswd shutdown
note: 在mysql外面执行
linux修改管理员root密码
外部命令修改
mysqladmin -uroot -poldpasswd password newpasswd
MySQL内部修改
update mysql.user set password=password(newpasswd) where user='root' and host='localhost';
windows修改root用户密码
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;方法4:在忘记root密码的时候,可以这样
以windows为例:
- 关闭正在运行的MySQL服务。
- 打开DOS窗口,转到mysql\bin目录。
- 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
- 输入mysql回车,如果成功,将出现MySQL提示符 >。
- 连接权限数据库: use mysql; 。
- 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
- 刷新权限(必须步骤):flush privileges; 。
- 退出 quit。
- 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
库操作
创建普通库,此库的字符集和MySQL的字符集一致
create database dbname
创建特定字符集的字符串,以utf8为例
create database dbname character set utf8 collate utf8_general_ci
查看数据库支持的字符集
show variables like '%set%';
查看所有数据库
show databases;
使用库
use databasename;
删除库
drop database dbname;
查看当前所在库
select database();
查看创库语句(里面包含库的字符集和引擎信息)
show create database dbname;
用户操作并授权
创建用户
create user username@host identified by passwd;
删除用户
drop user username@host;
查看当前所在的用户
select user();
授权
grant priviledges on dbname.* to username@host;
note: 权限包括select,insert,update,create,drop,peferences,idex, alter,idex,create temporary tables,lock tables,
execute,create view, show view,show view,create routine,alter routine, event, trigger查看用户权限
show grants for username@host;
回收用户权限
revoke privileges on dbname.* from username@host;
刷新权限
flush privileges
授权局域网内主机远程连接数据库
百分号法
grant all on privileges *.* to dbname@10.0.0.% identified by passwd;
子网掩码配置法
grant all on *.* to dbname@255.255.255.0 identified by passwd;
索引
查询数据库,按照主键索引查询最快,每个表只能有一个主键列,但是可以有多个普通索引列。
主键列要求列的所有内容必须唯一,而索引列不要求内容必须唯一
- 给表字段增加索引
- 建表时添加
create table tablename(
id int(4) not null auto_increment,
name char(20) not null,
primary key(id), --主键索引
key index_name(name) --普通索引`
);
见表之后增加索引
alter table tablename add index index_name(name);
利用alter命令修改id列为自增主键索引列
alter table tablename change id id int primary key auto_increment;
建立普通索\对字段前n个字符创建普通索引
create index index_name on tablename(name);
create index index_name on tablename(name(3));
note:对前n个字符创建索引的好处时可以节省内存空间,前提时前n个字符可以确定字段唯一创建联合索引
create index index_name on tablename(name, age);
note:联合索引上的字段可以有自己的索引且条件查询数据时,联合索引采用前缀生效特征,
即:联合索引有a,b,c,仅a,ab,abc三个查询条件列可以走索引,ac就不可以创建唯一索引,作用时保证数据的唯一性
create unique index uni_index_name on tablename(name);
查看索引
show index from table\G
note:\G让展示内容垂直分布删除索引
alter table tablename drop index index_name;
索引创建及生效条件
索引相当于文章的目录,好处是加快查询速度,但是占用系统空间,更新数据库是还要维护索引数据。
因此数十行到几百行的小表无需建立索引;写频繁,读少的业务要少建索引
- 建索引的位置
索引一定要创建在条件列,而不是select后的选择数据的列。另外要尽量选择在唯一值多的大表上建立索引
表
表操作
查看所有表
show tables;
查看创表语句
show create table tablename;
查看表结构
desc tablename;
修改表名
ALTER TABLE tablename RENAME [TO] new_tablename
或者
rename table oldname to newname;
创建外键
在创表时添加外键关联
constraint fk_authorities_users foreign key(username) references users(username)
当创建好数据表时添加外键约束
alter table user add foreign key(pid) references province(pId);
表DDL
修改表类型
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
eg:alter table person modify name varchar(30) after age;增加表字段
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
eg: alter table person add classes varchar(6) after name;删除表字段
ALTER TABLE tablename DROP [COLUMN] col_name
eg: alter table person drop column name;字段改名
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
eg: alter table tablename chage column age age1 int(4);
note: change可以修改列名称,modify 则不能
表DML
增
INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn);
INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn), (value1,value2,……valuesn)...;
删
delete from tablename where 条件;
drop table tablename;
truncate tablename;
二者区别:truncate删除表的速度更快,因为truncate时通过物理磁盘删除的;而drop是通过逻辑一行一行删除的。
改
update tablename set field1=value1, field2=value2,... [where condition];
查
slect field1, field2,... from tablename [where condition];
检查查有没有走索引的方法
explain sql语句
MySQL总结01的更多相关文章
- MySQL案例01:Last_SQL_Errno: 1755 Cannot execute the current event group in the parallel mode
周五同事监控报警,有个MySQL从库复制状态异常,让我帮忙排查下,经过排查发现是MySQL5.6并行复制的一个Bug所致,具体处理过程如下: 一.错误信息 登录mysql从库服务器,检查复制状态 my ...
- MySql笔记01
用了两天的时间终于把MySql安装好了,还是很麻烦的,之所以没有选择直接安装,使用的是免安装版本,主要是想了解这个数据库的配置,这样以后就可以更好的了解它了. 登录MySql:mysql –h loc ...
- mysql笔记01 MySQL架构与历史、Schema与数据类型优化
MySQL架构与历史 1. MySQL架构推荐参考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 2. MySQL会解 ...
- MYSQL基础01(新增,修改,删除)
首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...
- MySQL高级01
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB. 官网下载地址:http://dev.mysql.com/downloa ...
- MySQL Cluster --01
[MySQL Cluster] MySQL Cluster 是MySQL 官方集群部署方案, 支持自动分片.读写扩展:通过实时备份冗余数据.适合于分布式计算环境的高实用.高冗余版本,是可用性最高的方案 ...
- Angular4+NodeJs+MySQL 入门-01
有一定的后台开发经验ES6语法.后台没有用框架来,纯自己写.会sql语句 安装NodeJS的安装 从网上下载 https://nodejs.org/en/ 选择自己,我用的是最新版本 Angular ...
- MySQL 初识01
最近开始学习MySQL 所以将这两天所学习到的知识简单小结一下 1.status 显示数据库信息 2.数据类型: a.字符串: char(m):固定长度的字符,最多255个字符: varchar(m) ...
- MySQL丨01丨数据库基本概念
以前记录数据可能很少也很简单,比如说老王借了老李半斤肉,这样的数据老李直接就写到墙上就行了. 后来数据多了人们就以表格的方式开始记录,写到一张A4纸上,比如学生的档案,有表头和序号等. 表头里有姓名. ...
随机推荐
- LeetCode 数组中两个数的最大异或值
题目链接:https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/ 题目大意: 略. 分析: 字典树 + 贪心. ...
- 将QTP运行时的错误截图上传到QC
Class QCImageErrorCapture Sub Class_Terminate() 'Check if the current test has failed. If failed the ...
- [ERR] 1114 - The table 'xxx' is full
异常原因: 磁盘空间不足 解决办法: 1. 新增磁盘 2. 删除无用数据 信息补充: df: df -h #查询磁盘空间命令 du: du|sort -nr|more #显示目录或者文件所占空间 du ...
- Python运行出现:ModuleNotFoundError: No module named 'logbook',解决办法
ModuleNotFoundError: No module named 'xlrd' ModuleNotFoundError: No module named 'xlwt' AttributeErr ...
- link address
http://en.wikipedia.org/wiki/Software_design http://www.codeproject.com/Articles/70061/Architecture- ...
- Codeforces Paths and Trees
Paths and Trees time limit per test3 seconds memory limit per test256 megabytes Little girl Susie ac ...
- Nginx的应用之安装配置
一.Nginx简述 Nginx是一个开源且高性能.可靠的Http Web服务.代理服务. 开源: 直接获取源代码 高性能: 支持海量并发 可靠: 服务稳定 我们为什么选择 Nginx服务 Nginx非 ...
- Harbor私有镜像仓库(下)
Harbor私有镜像仓库(下) 链接:https://pan.baidu.com/s/1MAb0dllUwmoOk7TeVCZOVQ 提取码:ldt5 复制这段内容后打开百度网盘手机App,操作更方便 ...
- Node的优点和缺点
(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求, 因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多. 此外,与Node代理服务器交互的客户端代 ...
- 19.并发下的ArrayList、HashMap,Integer加锁问题
import java.util.ArrayList; import java.util.Vector; /** * 并发下的ArrayList */ public class ArrayListMu ...