mysql基础操作与wordpress忘记密码修改方法(Linux)

使用wordpress书写博客很方便,但也常会遇到忘记管理员密码这种问题。如果没有忘记数据库的密码,通过访问自己服务器的MySQL中查询word_press数据库中的wp_users数据表就能看到用户名和密码信息,并进行修改。下面借此问题总结一些MySQL的基本操作,提一下修改wordpress管理员密码时候的注意点。


关于MySQL最基本的操作

1.启动MySQL
mysql -uroot -p 之后输入数据库密码就行(如果出现command not find,参考前面的博客 )
如果第一次进mysql,默认密码为空直接按enter进,之后设置密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new password');

2.查看系统中有哪些数据库
mysql> show databases;(注意mysql里面的命令规定必须以;结尾)
3.选择当前想要使用的数据库
mysql> use db_name;
4.创建数据库       
create database name;
5.直接删除数据库
drop database name;

6.创建数据表
create table name(属性名 数据类型,属性名 数据类型,…..);

创建一个无约束的表:
create table student(id INT(11),name VARCHAR(20),age INT(11));
创建一个带约束的表,比如加上主键约束的:
create table student(id INT(11) PRIMARY KEY,name VARCHAR(20),age INT(11));

六大约束:主键约束、外键约束、非空约束(NOT NULL)、唯一约束(UNIQUE)、默认约束(DEFAULT)、自动增加(AUTO_INCREMENT)。

7.直接删除数据表
drop table name;
8.查看某张表中的所有(或部分字段)内容
select *from 表名;      select 字段名.. from 表名;
9.查看某张表的结构
show columns from 表名;

  1. 查看创建表的语句
    show create table 表名\G;
    11.增加表中的数据
    insert into 表名(字段名…)values(值…)

exp:insert into student(id,name,age)values(10,’breeze’,20);

12.修改表中的数据
update 表名 set 字段名=’修改值’ where 条件;

比如update login(表名) set login_pass(想要修改的列)=’pqf’ where login_user=‘admin’(输入判断条件)

其他关于修改数据表的操作:

1、增加一个字段格式:

  alter table table_name add column 字段名 字段类型;

2、指定字段插入的位置:

  alter table table_name add column 字段名 字段类型 after 某字段;

3、删除一个字段:

  alter table table_name drop 字段名;

4、修改字段名称/类型

  alter table table_name change 旧字段名 新字段名 新字段的类型;

5、改表的名字

  alter table table_name rename to new_table_name;   

发现一个对Mysql的操作写地还不错的文章系列——博客地址。想了解其他内容可以去看一看,也涉及到了基本的sql语句。


MySQL的使用示例

登录数据库

$ mysql --local-infile -uroot -p

(这里的—local-infile的补充是为了导入数据,否则之后会出错)

创建数据库MYDB

1
mysql> create database MYDB;
Query OK, 1 row affected (0.00 sec)
mysql> use MYDB;
Database changed

创建数据表

JSJ52_S047
1
2
create table JSJ52_S047 (`S#` VARCHAR(20) NOT NULL PRIMARY KEY, 
SNAME VARCHAR(20) NOT NULL,SEX CHAR(8),BDATE DATE,HEIGHT DEC(5,1),DORM VARCHAR(30)) DEFAULT CHARSET=utf8;
JSJ52_C047
1
2
create table JSJ52_C047(`C#` VARCHAR(12) PRIMARY KEY NOT NULL,
CNAME VARCHAR(20) NOT NULL,PERIOD FLOAT,CREDIT INT,TEACHER VARCHAR(20))DEFAULT CHARSET=utf8;
JSJ52_SC047
1
2
3
CREATE TABLE JSJ52_SC047(`S#` CHAR(12),`C#` CHAR(12),GRADE DECIMAL(5,1),
PRIMARY KEY(`S#`,`C#`),CONSTRAINT S_FOREIGN_CONNECTION FOREIGN KEY(`S#`) REFERENCES JSJ52_S047(`S#`) ON DELETE CASCADE,
CONSTRAINT C_FOREIGN_CONNECTION FOREIGN KEY(`C#`) REFERENCES JSJ52_C047(`C#`) ON DELETE RESTRICT)DEFAULT CHARSET=utf8;

导入数据

1
2
3
load data local infile '~/Desktop/mysql/data1.txt' into table JSJ52_S047;
load data local infile '~/Desktop/mysql/data2.txt' into table JSJ52_C047;
load data local infile '~/Desktop/mysql/data3.txt' into table JSJ52_SC047;

导入之后的结果:

查询

1.查询计算机系所开课程的课程编号、课程名称及学分数

1
select `c#`,cname,credit from jsj52_c047 where `c#` regexp 'cs-*’;

2.查询未选修课程“EE-01”的男生学号、成绩

1
select jsj52_sc047.`s#`,grade from jsj52_sc047,jsj52_s047 where jsj52_sc047.`s#`=jsj52_s047.`s#` and sex='男' and `c#` not in ('EE-01');

3.查询1992年~1994年出生的学生的基本信息

1
select * from jsj52_s047 where bdate>'1992-0-0' and bdate<'1995-0-0’;

4.查询每位学生的学号、学生姓名及其已修学分数

1
select sc.`s#`,sname,sum(credit) from jsj52_sc047 sc,jsj52_c047 c,jsj52_s047 s where sc.`s#`=s.`s#` and sc.`c#`=c.`c#` and group by sc.`s#`;

5.查询选修课程“CS-01”的学生中成绩第二高的学生学号。

1
select `s#` from jsj52_sc047 where `c#`='CS-01' order by grade desc limit 1 offset 1;

6.查询平均成绩超过“王涛“同学的学生学号、姓名和平均成绩,并按学号进行降序排列

1
2
3
select sc.`s#`,sname,avg(grade) from jsj52_sc047 sc,jsj52_s047 s where sc.`s#`=s.`s#` group by sc.`s#` 
having avg(grade)>(select avg(grade) from jsj52_sc047,jsj52_s047
where jsj52_sc047.`s#`=jsj52_s047.`s#` and jsj52_s047.sname='王涛') order by sc.`s#` desc;

7.查询选修了3门以上课程(包括3门)的学生中平均成绩最高的同学学号及姓名

1
select sc.`s#`,sname from jsj52_sc047 sc,jsj52_s047 s where sc.`s#`=s.`s#` group by sc.`s#` having count(`c#`)>=3 order by avg(grade) desc limit 1;

插入删除和修改

1.在JSJ52_S047中加入记录(‘01032005’,‘刘竞’,‘男’,‘1993-12-10’,1.75,‘东14舍312’)

1
insert into jsj52_s047(`s#`,sname,sex,bdate,height,dorm)values('01032005','刘竞','男','1993-12-10',1.75,'东14舍312’);

2.JSJ52_C047表中加入记录(‘CS03’,“离散数学”,64,4,‘陈建明’)

1
insert into jsj52_c047(`c#`,cname,period,credit,teacher)values('CS-03','离散数学',64,4,'陈建明’);

3.将JSJ52_S047表中已修学分数大于60的学生记录删除

1
2
delete from jsj52_s047 where sname in (select sname from jsj52_s047 s,jsj52_sc047 sc,jsj52_c047 c  
where sc.`s#`=s.`s#` and sc.`c#`=c.`c#` group by sc.`s#` having sum(credit)>60);

这时候报错提示如下:
You can't specify target table 'jsj52_s047' for update in FROM clause

意思就是说我们不能直接从一个正在被修改的表中删除信息,所以我们要再加一个中间的链接表,也就是再加一个select

正确结果如下:

1
2
delete from jsj52_s047 where sname in (select sname from (select sname 
from jsj52_s047 s,jsj52_sc047 sc,jsj52_c047 c where sc.`s#`=s.`s#` and sc.`c#`=c.`c#` group by sc.`s#` having sum(credit)>60)a);

因为没有学生修满60学分,所以并没有改变。

4.将“张明”老师负责的“信号与系统”课程的学时数调整为64,同时增加一个学分

1
update jsj52_c047 set period=64,credit=credit+1 where cname='信号与系统' and teacher='张明’;

增加视图

1.居住在“东18舍”的男生视图,包括学号、姓名、出生日期、身高等属性

1
create view sview as select `s#`,sname,bdate,height,dorm from jsj52_s047 where dorm regexp '东八舍*’;

2.“张明”老师所开设课程情况的视图,包括课程编号、课程名称、平均成绩等属性

1
create view teacher_view as select sc.`c#`,cname,avg(grade) from jsj52_sc047 sc,jsj52_c047 c where sc.`c#`=c.`c#` and teacher='张明' group by sc.`c#`;

3.所有选修了“人工智能”课程的学生视图,包括学号、姓名、成绩等属性

1
create view student_view as select sc.`s#`,sname,grade from jsj52_sc047 sc,jsj52_s047 s,jsj52_c047 c  where sc.`s#`=s.`s#` and c.`c#`=sc.`c#` and cname='人工智能';

修改wordpress密码的操作

进入mysql之后

use database wordpress;

slect *from wp_users;

update wp_users set user_pass=md5(‘new password’) where id=1;//因为默认管理员的账号id号是1

_一定要注意wordpress的密码默认是md5加密方式的,在登录界面输入密码后经过md5转译之后和数据库里的序列匹配才能登录上,所以如果上面那条指令需要加入md5()。_