msyql 数据库
更新:HHH   时间:2023-1-7


### 忘记密码

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具体操作

  1. 登录 

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 新密码


返回数据库教程...