### 忘记密码
vim /etc/my.cf
在[mysqld]中添加 skip-grant-tables
重启Mysql
现在可以直接进入mysql,改掉root密码
执行以下命令
USE mysql;
UPDATE user SET Password = password('新密码') WHERE User = 'root';更新user表中root密码
flush privileges;
删掉/etc/my.cf中添加的 skip-grant-tables
重启mysql 就OK了
mysql具体操作
登录
mysql -h 登录主机 -u用户名 -p密码
2.创建一个数据库
create database 数据库名 character set gbk;
选择要使用的数据库 : use 数据库名;
也可以在登录时直接选择:mysql -D 数据库名 -uroot -p
3.创建数据库表
create table 表名 (列声明);
以创建成绩表为例,内容为学号(id)、姓名(name)、性别(sex)、成绩(grade):
create table student (
id int unsigned not null auto_increment primary key,
name char(8) not null,
sex char(4) not null,
grade int unsigned null default "absent"
);
对于一些较长的语句,可以通过任意文本编辑器将语句写好保存为createtable.sql,通过命令提示符下的文件重定向执行执行该脚本。
mysql -D 数据库名 -uroot -p < createtable.sql
语句解释:
括号内声明了4列内容, id、name、sex、grade为每列的名称, 后面跟的是数据类型描述, 列与列的描述之间用逗号(,)隔开;
int指定该列的类型为int(范围为-83888608到83888607),在后面又有unsigned加以修饰,表示该类型为无符号类型,此时该列的取值为0到16777215;
not null 表示该列值不能为空,必须填,如果不指定该属性,默认可为空;
auto_increment 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
primary key 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。
char(8)表示字符长度为8,tinyint取值范围是-127到128 加上unsigned就是0到255
用show tables;就可以查看记得表了
4.向表中插入数据
insert into student values(值1,值2,值3,值4...)
有时只需要插入部分数据 insert into student (列名1,列名2,列名3) values(值1,值2,值3)
5.查询表中数据
select 列名称 from 表名 [WHERE 查询条件]
例:查询所有人名字
select name from student;
查询所有人学号和姓名
select id,name from student;
查询所有内容
select * from student;
按条件查询
= < > != is[not]null in like
例:查询所有女生信息
select * from student where sex = '女’;
查询成绩在60分以上的人
select * from student where grade > 60;
查询姓王的人
select * from student name like '%王%'
查询id小于10且成绩大于60的人
select * from stutdent where id<10 and grade>60;
6.更新表中的数据
update 表名 set 列名=新值 where 条件;
例:
将id为10的成绩改成70
update student set grade=70 where id=10;
将姓名为吕江涛的id改为10,grade改为60
update student set id=10,grade=60 where name='吕江涛’;
7.删除表中数据
delete from 表名 where 条件
例:
删除id=2的行:
delete from student where id=2;
删除成绩<30的数据:
delete from student where grade<30;
删除表中所有数据:
delete from student;
8.创建后表的修改
添加列
alter table 表名 add 列名称 [after 插入位置];
例:
在表后面追加列地址address:
alter table student add address char(60);
在名为grade的后面追加tel:
alter table student add tel char(13) after grade;
修改列
alter table student change 列名称 新列名称 新数据类型
例:
将id列改为idnum
alter table student change id idnum int unsigned auto_increment primary key;
将name数据类型改为char(16)
alter table student change name name char(16) not null;
删除列
alter table 表名 drop 列名称
例
删除tel列
alter table student drop tel;
重命名表
alter table student rename students;
删除整张表
drop table 表名;
删除整个数据库
drop datebase 数据库名;
修改用户密码
mysqladmin -uroot -p password 新密码