MySQL简介
  ·点击查看MySQL官方网站
  ·MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于facle旗下产品

特点  

  ·使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

  ·支持多种操作系统,如Linux、Widdows、AlX、FreeBSD、HP-UX、MacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等
  ·为多种编程语言提供了API,如C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等
  ·支持多线程,充分利用CPU资源
  ·优化的SQL查询算法,有效地提高查询速度
  ·提供多语言支持,常见的编码如GB2312、BIG5、UTF8
  ·提供TCP/IP、ODBC和JDBC等多种数据库连接途径
  ·提供用于管理、检查、优化数据库操作的管理工具
  ·大型的数据库。可以处理拥有上千万条记录的大型数据库
  ·支持多种存储引擎
  ·MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库
  ·MySQL使用标准的SQL数据语言形式
  ·Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统
  ·在线DDL更改功能
  ·复制全局事务标识
  ·复制无崩渍从机
  ·复制多线程从机

数据类型与约束
  ·为了更加准确的存储数据,保证数据的正确有效,需要合理的使用数据类型和约束来限制数据的存储。
常用数据类型
  ·整数:int,有符号范围(-2147483648~2147483647),无符号范围(0~429496725)
  ·小数:decimal,如decimal(5.2)表示共存5位数,小数占2位,整数占3位
  ·字符串:varchar,范围(0~65533),如varchar(3)表示最多存3个字符,一个中文或一个字母都占一个字符
  ·日期时间:datetime,范围(1000-01-01 00:00:00~9999-12-3123:59:59),如12020-01-01 12:29:59'
约束
  ·主键(primary key):物理上存储的顺序
  ·非空(not nul):此字段不允许填写空值
  ·惟一(unique):此字段的值不允许重复
  ·默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准
  ·外键foreign key):维护两个表之间的关联关系

数据库的基本操作

创建数据库的语法格式:

create databases 数据库名称 ;

例:创建一个名称为xiaoxu的数据库,SQL语句如下:

create databases xiaoxu ;

查看数据库的语法格式:

show databases ;

查看某个已创建好的数据库的语法格式:

show create databases 数据库名称 ;

修改数据库编码的语法格式:

lter database 数据库名称 default character set 编码方式 collate 编码方式_bin ;

例:将数据库xiaoxu 的编码修改为 gbk,SQL语句如下所示:

alter database xiaoxu default character set gbk collate gbk_bin ;

删除数据库的语法格式:

drop database 数据库名称 ;

数据表的基本操作

创建数据表语法格式:

create table 表名 

{ 

    字段名 1,数据类型[完整性约束条件], 

    字段名 2,数据类型[完整性约束条件], 

    ... 

    字段名 n,数据类型[完整性约束条件], 

}

例:创建学生表,字段要求如下 
姓名(长度为10),年龄

create table student(
id int unsigned primary key auto_increment,
name varchar(10),
age int unsigned,
height decimal(5,2)
)

查看数据表的语法格式:

show create table 表名 ; 

或者 

describe 表名 ; 

简写为 

desc 表名 ;

删除表

drop table 表名;

或者

drop table if exists 表名;

例:删除学生表

drop table students

或

drop table if exists students

添加数据

添加一行数据
格式一:所有字段设置值,值的顺序与表中字段的顺序对应

  ·说明:主键列是自动增长,插入时需要占位,通常使用0或者default 或者nul来占位,插入成功后以实

insert into 表名 values(...)

例:插入一个学生,设置所有字段的信息

insert into students values(e,'亚瑟”,22,177.56)

格式二:部分字段设置值,值的顺序与给出的字段顺序对应

insert into 表名(字段1,..) values(值1.…)

例:插入一个学生,只设置姓名

insert into students(name) values(“老夫子")

添加多行数据
方式一:写多条insert语句,语句之间用英文分号隔开

insert into students(name) values(“老夫子2);
insert into students(name) values('老夫子3’);
insert into students values (0,‘亚瑟2",23,167.56)

方式二:写一条insert语句,设置多条数据,数据之间用英文逗号隔开

格式一:insert into 表名 values(..),(...)...
例:插入多个学生,设置所有字段的信息
insert into students values(0,'亚瑟3',23,167.56),(0,‘亚瑟4,23,167.56)
格式二:insert into 表名(列1,..)values(值1..),(值1......
例:插入多个学生,只设置姓名
insert into students(name) values('老夫子5),('老夫子6)

修改

格式:update 表名 set 列1=值1,列2=值2 … where条件

例:修改id为5的学生数据,姓名改为狄仁杰,年龄改为20

update students set name='数仁杰’,age=20 where id=5

删除

格式:delete from 表名 where 条件

例:删除id为6的学生数据

delete from students where id=6

逻辑删除

1、设计表,给表添加一个字段isdelete,1代表删除,0代表没有删除
2、把所有的数据isdelete都改为0
3、要删除某一条数据时,更新他的isdelete为1
4、当要查询数据时,只查询isdelete为0的数据
update students3 set isdelete=0
update students3 set isdelete=1 where id=1
select * from students3 where isdelete=0

查询数据

创建数据表

drop table if exists students;
create table students(
studentNo varchar(10) primary key,
name varchar(18),
sex varchar(1),
hometown varchar(20),
age tinyint(4),
class varchar(10),
card varchar(28),
)

准备数据

insert into students values
(‘001’,‘王昭君’,‘女’,‘北京’,‘20’,‘1班‘,‘340322199001247654’),
(‘002',‘诸葛亮’,‘男’,‘上海’,‘18’,‘2班’,'340322199002242354‘),
(‘003',‘张飞‘,‘男’,‘南京’,‘24’,'3班’,‘340322199003247654’),
(‘084’,‘白起’,‘男’,‘安徽’,‘22’,14班’,‘348322199005247654’),
(‘005’,‘大乔’,‘女’,‘天津”,‘19’,‘3班’,‘340322199004247654’),
(‘086’,‘孙尚香,‘女’,‘河北’,‘18’,‘1班’,‘340322199006247654’),
(‘007’,‘百里玄策”,‘男’,‘山西’,‘20’,‘2’班”,‘340322199007247654’),
查询所有字段

select *from 表名
select * from students
查询指定字段
在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中
select列1,列2,..from表名 --表名.字段名
select students,name,students.age from students
--可以遥过as给表起别名
select s.name,s.age from students as s
--如果是单表查询可以省略表名
select name,age from students
-使用as给字段起别名
select studentNo as 学号,name as 名字,sex as 性别 from students

条件
·使用where子句对表中的数据筛选,符号条件的数据会出现在结果集中
·语法如下  

select 字段1,字段2...from 表名 where 条件;

例:

select *from students Where id=1;

·where后面支持多种运算符,进行条件的处理
  。比较运算  
  。逻辑运算
  。模糊查询
  。范围查询
  。空判断

比较运算符
  ·等于:=
  ·大于:>
  ·大于等于:>=
  ·小于:<
  ·小于等于:<=
  ·不等于:!=或<>

例1:查询小乔的年龄
select age from students where name='小乔'
例2:查询20岁以下的学生
select * from students where age<20
例3:查询家乡不在北京的学生
select * from students where hometown!='北京'

逻辑运算符
  ·or
  ·not

  ·and

例1:查询年龄小于20的女同学
select * from students where age<20 and sex=‘女'
例2:查询女学生或1班”的学生
select * from students where sex='女”or class='1班’
例3:查询非天津的学生
select * from students where not hometown=‘天津

模糊查询
  ·like
  ·%表示任意多个任意字符
  ·表示一个任意字符

例1:查询姓孙的学生
select *from students where name like ‘孙%' 例2:查询姓孙且名字是一个字的学生
select * from students where name like‘孙_' 例3:查询叫乔的学生
select *from students where name like '%乔!'

范围查询
  ·in表示在一个非连续的范围内

例1:查询家乡是北京或上海或广东的学生
select * from students where hometown in('北京”,‘上海’,‘广东”)

·between...and....表示在一个连续的范围内

例2:查询年龄为18至20的学生

select * from students where age between 18 and 20

空判断
  ·注意null与“是不同的
  ·判空is null
例1:查询没有填写身份证的学生

select * from students where card is null

  ·判非空is not null

例2:查询填写了身份证的学生

select* from students where card is not null

排序
  ·为了方便查看数据,可以对数据进行排序
  ·语法:

select *from 表名
order by 列1 asc l desc,列2 asc l desc..

·将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推
·默认按照列值从小到大排列
·asc从小到大排列,即升序
·desc从大到小排序,即降序

例1:查询所有学生信息,按年龄从小到大排序

select *from students order by age

例2:查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序

select *from students order by age desc,studentNo

聚合函数
  ·为了快速得到统计数据,经常会用到如下5个聚合函数
  ·count(*)表示计算总行数,括号中写星与列名,结果是相同的
  ·聚合函数不能在where中使用

例1:查询学生总数

select count(*)from students;

  ·max()表示求此列的最大值

例2:查询女生的最大年龄

select max(age) from students where sex='女';

  ·min(列)表示求此列的最小值

例3:查询1班的最小年龄

select min(age) from students;

分组
  ·按照字段分组,表示此字段相同的数据会被放到一个组中
  ·分组后,分组的依据列会显示在结果集中,其他列不会显示在结果集中
  ·可以对分组后的数据进行统计,做聚合运算
  ·语法:

select 列1,列2,聚合.…from表名 group by 列1,列2...

例1:查询各种性别的人数

select sex,count(*) from students group by sex

例2:查询各种年龄的人数

select age,count(*) from students group by age

分组后的数据筛选
  ·语法:

select 列1,列2,聚合..from表名
group by 列1,列2,列3...
having 列1.…聚合...

  ·having后面的条件运算符与where的相同

例1:查询男生总人数

方案一
select count(*)from students where sex='男’ 方案二:
select sex,count(*)from students group by sex having sex='男'

获取部分行
  ·当数据量过大时,在一页中查看数据是一件非常麻烦的事情
  ·语法

select *from 表名
limit start,count

  ·从start开始,获取count条数据
  ·start索引从0开始
例1:查询前3行学生信息

select *from students limit 0,3

要求每页显示3条
select count(*)from students
12/3获取总页数
第一页
select* from students limit 0,3     3*(1-1)
第二页
select * from students limit 3,3    3*(2-1)
第三页
select * from students limit 6,3    3*(3-1)
第四页
select * from students limit 9,3    3*(4-1)

连接查询
  ·当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回
  ·等值连接查询:查询的结果为两个表匹配到的数据

  ·左连接查询:查询的结果为两个表匹配到的数据加左表特有的数据,对于右表中不存在的数据使用null
  填充

  ·右连接查询:查询的结果为两个表匹配到的数据加右表特有的数据,对于左表中不存在的数据使用null
  填充

准备数据

drop table if exists courses;
create table courses(
courseNo int(18) unsigned primary key auto_increment,
name varchar(18)
); insertinto courses values
('','数据库'),
('',‘qtp'),
('3','linux'),
('4’,‘系统测试'),
('5,‘单元测试'),
('6',‘测试过程'); drop table if exists scores; create table scores(
id int(10) unsigned primary key auto_increment,
courseNo int(10),
studentno varchar(10),
score tinyint(4)
); insert into scores values
('',‘1',‘001',‘90'),
('2',‘1',‘002','75'),
('3', '2',‘002',''),
('',‘3',‘001',‘86'),
('5',‘3',‘003',‘80'),
('',‘4',‘004',‘79'),
('7',‘5',‘005',‘96'),
('',‘6',‘006',‘80');

等值连接

方式一
select*from 表1,表2 where表1.列=表2.列

例1:查询学生信息及学生的成绩

select * from students,scores where students.studentno=scores.studentno
方式二(又称内连接)
不会产生笛卡尔积,不会产生临时表,性能高 select * from 表1
inner join 表2 on 表1.列=表2.列
select * from students
inner join scores on students.studentno=scores.studentno

例2:查询课程信息及课程的成绩

select * from courses,scores where courses.courseNo=gcores.courseNo
select * from couses
inner join acores on courses.courseNo=acores.courseNo

例3:查询学生信息及学生的课程对应的成绩

select from students,courses,scores where students.studentNo=scores.studentNo and scores.courseNo=courses.courselNo
select * from students
inner join scores on students.studentNo=scores,studentNo
inner join courses on scores.courseNo=courses.courseNo

左连接

select * from 表1
left join 表2 on表1.列=表2.列
例1:查询所有学生的成绩,包括没有成绩的学生
select from students stu
left join scores sc on stu.studentNo=sc.studentNo

例1:查询所有学生的成绩,包括没有成绩的学生
左连接 : join前面的表称为左表 , join后面的表称为右表

select * from students
left join scores on students.studentNo=scores.studentNo

例2:查询所有学生的成绩,包括没有成绩的学生,需要显示课程名

select *from students
left join scores on students.studentNo-scores.studentNo
left join courses on courses.courseNo=scores.courseNo

右连接

insert into courses values
(0,语文),
(0,数学);
例1:查询所有课程的成绩,包括没有成绩的课程
select * from scores
rioht join courses on scores.courseNo=courses.courseNo
例2:查询所有课程的成绩,包括没有成绩的课程,包括学生信息
select* trom scores
right join courses on scorea.courseNo-courses.courseNo
right join students on students.studentNo=scores.studentNo.

子查询
  ·在一个select 语句中,嵌入了另外一个select 语句,那么被嵌入的select 语句称之为子查询语句

主查询
  ·主要查询的对象,第一条select语句
主查询和子查询的关系
  ·子查询是嵌入到主查询中
  ·子查询是辅助主查询的,要么充当条件,要么充当数据源
  ·子查询是可以独立存在的语句,是一条完整的 select 语句
子查询分类
  ·标量子查询:子查询返回的结果是一个数据(一行一列)

例一:查询大于平均年龄的学生
select avg(age) from students
21.5833
select * from students where age>21.5833 select *from students where age>(select avg(age)from students)
例2:查询王昭君的成绩,要求显示成绩
select studentNo from students where name='王昭君'
select score from scores where studentNo=(select studentNo from students where name='王昭君')

  ·列子查询:返回的结果是一列(一列多行)

例3:查询18岁的学生的成绩,要求显示成绩

select *trom atudenta where age=18

select * from scores where studentNo in(1002','006')
select * from scores where studentNo in (select studentno from students where age=18)

  ·行子查询:返回的结果是一行(一行多列)

例4:查询男生中年龄最大的学生信息
select * from students where sex='男‘ and age=(select max(age) from students) select * from students where (sex,age)=(‘男‘,30) select * from students where (sex,age)=(select sex,age from students where sex=‘男‘ order by age desc limit 1)

  ·表级子查询:返回的结果是多行多列

例5:查询数据库和系统测试的课程成绩
select from scores as s
inner join (select * from courses where name in(‘数据库‘,‘系统测试’)) as c on s.courseNo=c.courseNo

子查询中特定关键字使用
  ·in 范围
    。格式:主查询where条件in(列子查询)
  ·anyl some任意一个
    。格式:主查询where列=any(列子查询)
    。在条件查询的结果中匹配任意一个即可,等价于in
  ·all
    。格式:主查询where列=all(列子查询):等于里面所有
    。格式:主查询where列<>all(列子查询):不等一其中所有

数据库DOS命令

数据库

·查看所有数据库
show databases;
·使用数据库
use数据库名;
·查看当前使用的数据库
select database();
·创建数据库
create database 数据库名 charset=ut棉;
例:
create database ceshi charset=utf8;
·删除数据库
drop database数据库名;
例:
drop database ceshi;

数据表

·查看当前数据库中所有表
show tables;
·查看表结构
desc 表名;
查看表的创建语句
show create table 表名;
例:
show create table students;

备份

首先要以管理员身份运行
·运行mysqldump 命令
mysqldump -uroot -p 数据库名 > ceshi.sql
#按提示输入mysqL的密码

恢复

·先创建新的数据库
mysql -uroot -p新数据库名<ceshi.sql
#根据提示输入my5q1密码

内置函数

字符串函数

·拼接字符串 concat(str1,str2..)
select concat(12,34,'ab'); ·包含字符个数 length(str)
select length('abc'); ·截取字符串
。left(str,len)返回字符串str的左端len个字符
。right(str,len)返回字符串str的右端len个字符
。substring(str,pos,len)返回字符串str的位置pos起len个字符
select substring('abc123',2,3); ·去除空格
。trim(str)返回删除了左空格的字符串str
。rtrim(str)返回删除了右空格的字符串str
select ltrim('bar '); ·大小写转换,函数如下
。lower(str)
。upper(str)
select lower('aBcD');

数学函数

·求四舍五入值round(n.d),n表示原数,d表示小数位置,默认为0
select round(1.6); ·求x的y次幂pow(x.y)
select pow(2,3); ·获取圆周率Pl()
select PI(); ·随机数rand(),值为0-1.0的浮点数
select rand(); 随机0-10的整数
select round(rand()*18) 随机从一个表中取一条记录
select * from goods order by rand() limit 1

日期时间函数

·当前日期current_date0
select current_date(); ·当前时间current_time0
select current_time(); ·当前日期时间now0
select now(); ·日期格式化date_fomat(date,format)
·参数format可选值如下 %Y获取年,返回完整年份
%y获取年,返回简写年份
%册获取月,返回月份
%d获取日,返回天值
H获取时,返回24进制的小时数
%h获取时,返回12进制的小时数
i获取分,返回分钟数
%s获取秒,返回秒数 ·例:将使用-拼接的日期转换为使用空格拼接
select date_format('2016-12-21','%Y %m %d");

流程控制

·case语法:等值判断
·说明:当值等于某个比较值的时候,对应的结果会被返回;如果所有的比较值都不相等则返回else的结果;如果没有else并且所有比较值都不相等则返回null
case 值 when 比较值1 then结果1 when 比较值2 then 结果2...else 结果end
例:
select case 1 when 1 then ‘one' when 2 then ‘two' else 'zero' end as result;

自定义函数

创建
·语法如下
delimiter $$
create function函数名称(参数列表)returns 返回类型
begin
sql语句
end
$$
delimiter;
·说明:delimiter用于设置分割符,默认为分号
·在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其它符号作为分割符,此处使用∥,也可以使用其它字符
  示例
·要求:创建函数my_trim,用于删除字符串左右两侧的空格
·step1:设置分割符
delimiter $$ ·step2:创建函数
create function my_trim(str varchar(100)) returns varchar(100)
begin
return ltrim(rtrim(str));
end *
$$ ·step3:还原分割符
delimiter;

创建

·语法如下
delimiter//
create procedure 存储过程名称(参数列账)
begin
sql语句
end
//
delimiter; ·说明:delimiter用于设置分割符,默认为分号
·在“sql语句”部分编写的语句需要以分号结尾,此时回车会直接执行,所以要创建存储过程前需要指定其它符号作为分割符,此处使用∥,也可以使用其它字符

调用

·语法如下
call存储过程(参数列表); 调用存储过程proc_stu
call proc_stu(); ·存储过程和函数都是为了可重复的执行操作数据库的sql语句的集合。
·存储过程和函数都是一次编译,就会被缓存起来,下次使用就直接命中缓存中已经编译好的sql,不需要重复编译
·减少网络交互,减少网络访问流量

视图

·对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦
·解决:定义视图
·视图本质就是对查询的封装
·定义视图,建议以v开头 create view 视图名称 as
select 语句; ·例:创建视图,查询学生对应的成绩信息 create view v_stu_score_course as
select
stu.*,cs.courseNo,Cs.name courseName,sc.score
from
students stu
inner join scores sc on stu.studentNo = sc.studentNo
inner join courses cs on cs.courseNo = sc.courselo ·查看视图:查看表会将所有的视图也列出来
show tables; ·删除视图
drop view 视图名称; 例:
drop view v_stu_score_course;
·使用:视图的用途就是查询
select * from v_stu_score_course;

事务

为什么要有事务?

·事务广泛的运用于订单系统、银行系统等多种场景
·例如:A用户和B用户是银行的储户,现在A要给B转账500元,那么需要做以下几件事:
  1.检查A的账户余额>500元;
  2.A账户中扣除500元;
  3.B账户中增加500元;
·正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜。那如果A账户扣了钱之后,系统出故障了呢?A白白损失了500,而B也没有收到本该属于他的500。以上的案例中,隐藏着一个前提条件:A扣钱和B加钱,要么同时成功,要么同时失败。事务的需求就在于此
·所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性

转账
大乔500
小乔200 begin;
update account set money=money-100 where name=‘大乔!
update account set money=money+100 where name=‘小乔!
。。。。。。。。。。。
。。。。。。。。。。。
若以上所有操作都成功
commit; begin;
任何一步失败
rollback;

索引

语法

    ·查看索引
show index from表名; ·创建索引
方式一:建表时创建索引
create table create_index(
id int primary key,
name varchar(10)unique,
age int,
key(age)
); 方式二:对于已经存在的表,添加索引
如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
字段类型如果不是字符串,可以不填写长度部分 create index索引名称 on表名(字段名称(长度)) 例:
create index age_index on create_index(age);
create index name_index on create_index(name(10)); ·删除索引:
drop index索引名称on表名;

示例

查询
·开启运行时间监测:
set profiling=1; ·查找第1万条数据test10000
select * from test_index where title='test10000'; ·查看执行的时间:
show profiles; ·为表itle_index的title列创建索引:
create index title_index on test_index(title(10)); ·执行查询语句:
select* from test_index where title='test10000'; ·再次查看执行的时间
show profiles; 缺点
·虽然索引大大提高了查询速度,同时却会降凭更新表的速度,如对表进行INSERT、UPDATE和DELETE,因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件
·但是,在互联网应用中,查询的语句远远大于增别改的语句,甚至可以占到80%~90%,所以也不要太在意,只是在大数据导入时,可以先删除索引,再批量插入数据,最后再添加索引

外键foreign key

·如果一个实体的某个字段指向另一个实体的主键,就称为外键。被指向的实体,称之为主实体(主表),也叫父实体(父表)。负责指向的实体,称之为从实体(从表),也叫子实体(子表)
·对关系字段进行约束,当为从表中的关系字段填写值时,会到关联的主表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并报错 语法
·查看外键
show create table 表名 ·设置外键约束
方式一:创建数据表的时候设置外键约束
create table class(
id int unsigned primary key auto_increment,
name varchar(10)
create table stu(
name varchar(10),
class_id int unsigned,
foreign key(class_id)references class(id)
);
foreign key(自己的字段)references 主表(主表字段) 方式二:对于已经存在的数据表设置外键约束
alter table 从表名 add foreign key(从表字段)references 主表名(主表字段);
alter table stu add foreign key(class_id)references class(id); ·删除外键
需要先获取外键约束名称
show create table stu; 获取名称之后就可以根据名称来删除外键约束
alter table 表名 drop foreign key 外键名称;
alter table stu drop foreign key stu_ibfk_1; 在实际开发中,很少会使用到外键约束,会极大的降低表更新的效率

修改密码

·使用root登录,修改mysql数据库的user表
。使用password0函数进行密码加密
。注意修改完成后需要刷新权限 use mysql;
update user set pas sword=password(’新密码”)where user='用 户名’; 例:
update user set password=password('123')where user='root';
刷新权限:flush privileges;

忘记root账户密码怎么办?

1、配置mysql登录时不需要密码,修改配置文件
·Centos中:配置文件位置为/etc/my.cnf
·Windows中:配置文件位置为C:\\Program Files(×86)MySQL\\MySQL Server 5.1\\my.ini
修改,找到mysqld,在它的下一行,添加skip-grant-tables [mysqld]
skip-grant-tables 2、重启mysql,免密码登录,修改mysql数据库的user表 use mysql;
update user set password=password('新密码”)where user=‘用户名’; 例:
update user set password=password('123') where user='root';
刷新权限:flush privileges; 3、还原配置文件,把刚才添加的skip-grant-tables刷除,重启

6.MySQL简介的更多相关文章

  1. 第一章 Mysql 简介及安装和配置

    Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...

  2. mysql基础篇-----mysql简介

    2017-04-19 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 ...

  3. MySQL(一)之MySQL简介与安装

    大家可能都在用MySQL,其实我也是在用MySQL的,但是你知道吗?大部分人都是在windows中使用,这里将介绍一下在windows中的安装分为安装包安装与MSI包安装,以及在linux中的在线安装 ...

  4. PHP MySQL 简介

    PHP MySQL 简介 通过 PHP,您可以连接和操作数据库. MySQL 是跟 PHP 配套使用的最流行的开源数据库系统. 如果想学习更多 MySQL 知识可以查看本站MySQL 教程. MySQ ...

  5. MySQL简介及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...

  6. (一) Mysql 简介及安装和配置

    第一节:Mysql 简介 百度百科 第二节:Mysql 安装及配置 1,Mysql5.1 下载及安装 2,Mysql 数据库编码配置 utf-8 3,Mysql 图形界面 Sqlyog 下载及安装

  7. 【python】-- MySQL简介、安装、操作

    MySQL简介.安装.操作 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储 ...

  8. Python 3 mysql 简介安装

    Python 3 mysql 简介安装 一.数据库是什么 1.  什么是数据库(DataBase,简称DB) 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据 ...

  9. 32、MySQL简介

    一.MySQL简介 1.数据库管理软件分类 主要分为关系型和非关系型. 可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构. 关系型:如sqllite,d ...

随机推荐

  1. 关于初装kali linux 2.0时DEB文件安装失败的问题

    kali linux 是一个基于debian 的linux发行版本,支持deb文件格式的图形化安装. 刚装上kali linux时安装程序总是失败,提示处理时错误. 经过一番爬贴,是软件源的原因,解决 ...

  2. IntelliJ IDEA 创建 hello world Java web Maven项目从头到尾都有图有真相2017版本

    学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行的.然后我就示范一下,如何使用这个IntelliJ ...

  3. Win10 版本情况 201810

  4. 弱网络模拟测试工具---易测app

    易测功能介绍   易测是一款基于无线客户端研发场景的通用测试工具, 它通过在研发人员的自持机上提供各种辅助能力&标准化的专项测试服务来提升研发质量&效率.   易测app是阿里巴巴做的 ...

  5. es6中对象转数组,转map

    //对象转数组let array = Object.keys(userPermission).map(key=> userPermission[key]) console.log(array) ...

  6. UVA10859 Placing Lampposts

    我是题面 这道题使我知道了一种很神奇的方法,一定要认真看哦 如果没有被两盏灯同时照亮的边数应尽量大这个限制的话,这就是一道很经典的树形DP题--没有上司的舞会 很可惜,这个限制就在那里,它使得我辛苦写 ...

  7. C++解析(12):初始化列表与对象构造顺序、析构顺序

    0.目录 1.类成员的初始化 2.类中的const成员 3.对象的构造顺序 3.1 局部对象的构造顺序 3.2 堆对象的构造顺序 3.3 全局对象的构造顺序 4.对象的析构顺序 5.小结 1.类成员的 ...

  8. jQuery多重事件绑定

    1. <a> a标签默认绑定了一个onclick事件,当自己再写一个onclick事件的时候,默认自己写的那个优先执行. 如下程序,先执行(123),然后再发生跳转. <!DOCTY ...

  9. Python下json中文乱码解决办法

    json.dumps在默认情况下,对于非ascii字符生成的是相对应的字符编码,而非原始字符,只需要 #coding=utf8 import json js = json.loads('{" ...

  10. 浅谈FFT&NTT

    复数及单位根 复数的定义大概就是:\(i^2=-1\),其中\(i\)就是虚数单位. 那么,在复数意义下,对于方程: \[ x^n=1 \] 就必定有\(n\)个解,这\(n\)个解的分布一定是在复平 ...