使用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(属性名 数据类型,属性名 数据类型,.....);
exp: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));
7.直接删除数据表
drop table name;
8.查看某张表中的所有(或部分字段)内容
select *from 表名; select 字段名.. from 表名;
9.查看某张表的结构
show columns from 表名;
10.增加表中的数据
insert into 表名(字段名...)values(值...)
exp:insert into student(id,name,age)values(10,'breeze',20);
11.修改表中的数据
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
mysql> create database MYDB;
Query OK, 1 row affected (0.00 sec)
mysql> use MYDB;
Database changed
创建数据表
JSJ52_S047
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
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
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;
导入数据
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.查询计算机系所开课程的课程编号、课程名称及学分数
select `c#`,cname,credit from jsj52_c047 where `c#` regexp 'cs-*’;
2.查询未选修课程“EE-01”的男生学号、成绩
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年出生的学生的基本信息
select * from jsj52_s047 where bdate>'1992-0-0' and bdate
4.查询每位学生的学号、学生姓名及其已修学分数
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”的学生中成绩第二高的学生学号。
select `s#` from jsj52_sc047 where `c#`='CS-01' order by grade desc limit 1 offset 1;
6.查询平均成绩超过“王涛“同学的学生学号、姓名和平均成绩,并按学号进行降序排列
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门)的学生中平均成绩最高的同学学号及姓名
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’)
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,‘陈建明’)
insert into jsj52_c047(`c#`,cname,period,credit,teacher)values('CS-03','离散数学',64,4,'陈建明’);
3.将JSJ52_S047表中已修学分数大于60的学生记录删除
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
正确结果如下:
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,同时增加一个学分
update jsj52_c047 set period=64,credit=credit+1 where cname='信号与系统' and teacher='张明’;
增加视图
1.居住在“东18舍”的男生视图,包括学号、姓名、出生日期、身高等属性
create view sview as select `s#`,sname,bdate,height,dorm from jsj52_s047 where dorm regexp '东八舍*’;
2.“张明”老师所开设课程情况的视图,包括课程编号、课程名称、平均成绩等属性
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.所有选修了“人工智能”课程的学生视图,包括学号、姓名、成绩等属性
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()。