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为例:

  1. 关闭正在运行的MySQL服务。
  2. 打开DOS窗口,转到mysql\bin目录。
  3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
  4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
  5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  6. 连接权限数据库: use mysql; 。
  7. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
  8. 刷新权限(必须步骤):flush privileges; 。
  9. 退出 quit。
  10. 注销系统,再进入,使用用户名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的更多相关文章

  1. MySQL案例01:Last_SQL_Errno: 1755 Cannot execute the current event group in the parallel mode

    周五同事监控报警,有个MySQL从库复制状态异常,让我帮忙排查下,经过排查发现是MySQL5.6并行复制的一个Bug所致,具体处理过程如下: 一.错误信息 登录mysql从库服务器,检查复制状态 my ...

  2. MySql笔记01

    用了两天的时间终于把MySql安装好了,还是很麻烦的,之所以没有选择直接安装,使用的是免安装版本,主要是想了解这个数据库的配置,这样以后就可以更好的了解它了. 登录MySql:mysql –h loc ...

  3. mysql笔记01 MySQL架构与历史、Schema与数据类型优化

    MySQL架构与历史 1. MySQL架构推荐参考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 2. MySQL会解 ...

  4. MYSQL基础01(新增,修改,删除)

    首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...

  5. MySQL高级01

    MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB. 官网下载地址:http://dev.mysql.com/downloa ...

  6. MySQL Cluster --01

    [MySQL Cluster] MySQL Cluster 是MySQL 官方集群部署方案, 支持自动分片.读写扩展:通过实时备份冗余数据.适合于分布式计算环境的高实用.高冗余版本,是可用性最高的方案 ...

  7. Angular4+NodeJs+MySQL 入门-01

    有一定的后台开发经验ES6语法.后台没有用框架来,纯自己写.会sql语句 安装NodeJS的安装 从网上下载 https://nodejs.org/en/ 选择自己,我用的是最新版本 Angular ...

  8. MySQL 初识01

    最近开始学习MySQL 所以将这两天所学习到的知识简单小结一下 1.status 显示数据库信息 2.数据类型: a.字符串: char(m):固定长度的字符,最多255个字符: varchar(m) ...

  9. MySQL丨01丨数据库基本概念

    以前记录数据可能很少也很简单,比如说老王借了老李半斤肉,这样的数据老李直接就写到墙上就行了. 后来数据多了人们就以表格的方式开始记录,写到一张A4纸上,比如学生的档案,有表头和序号等. 表头里有姓名. ...

随机推荐

  1. 【读书笔记】:MIT线性代数(4):Independence, Basis and Dimension

    Independence: The columns of A are independent when the nullspace N (A) contains only the zero vecto ...

  2. jQuery的toggle事件

    $(function () {    //默认隐藏   $("#SelTime").hide();  $("#SeniorSel").toggle(      ...

  3. 转 cpu高 问题分析定位

    文章来源: http://www.blogjava.net/hankchen/archive/2012/08/09/377735.html 一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原 ...

  4. 使用雪花算法为分布式下全局ID、订单号等简单解决方案考虑到时钟回拨

    1.snowflake简介         互联网快速发展的今天,分布式应用系统已经见怪不怪,在分布式系统中,我们需要各种各样的ID,既然是ID那么必然是要保证全局唯一,除此之外,不同当业务还需要不同 ...

  5. IT面试技巧(1)

    声明:以下面试技巧仅作参考,更多的时候还是要真实得表达自我,要保持一定的职业素养. 1.请你自我介绍一下你自己? 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有 ...

  6. Python3学习笔记(MOOC)

    文本进度条实例 #!/usr/bin/env python3 import time #for i in range(101): # print ("\r{:3.0f}%".for ...

  7. 发送xml数据

  8. CentOS7.6系统安装详解(含真机装系统的采坑之旅)!

    刚开始学习linux操作系统是总是很茫然,无所适从,以下是自己总结的工作经验,仅供参考! 一.准备资源 安装前需要准备的资源有linux系统centos7.6发行版系统镜像,vmware workst ...

  9. private: CRITICAL_SECTION m_cs;

    CRITICAL_SECTION m_cs;   //临界区 私有数据成员  pop  数据结构 push 临界区 保护 2.类CCriticalSection的对象表示一个“临界区”,它是一个用于同 ...

  10. 解决error: Microsoft Visual C++ 14.0 is required 问题

    1.https://964279924.ctfile.com/fs/1445568-239446865 2.重新安装 .Net framework 更高的版本:https://support.micr ...