博主直接采用在Windows下向导安装的方式,因此在程序中含有MySQL 8.0 Command Line Client 这个程序,其他没有进行特别配置。
修改用户密码
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
修改mysql密码,实际就是修改mysql数据库下user表中的字段值
flush privileges;
刷新权限
查看
-- 查看所有存在的数据库
show databases;
-- 先切换到指定数据库下,然后查看数据库下所有数据表
use db-name;
show tables;
-- 查看指定表的结构信息
describe t-name;
或
desc t-name;
-- 查看创建数据库或数据表的SQL语句
show create database db-name
show create table t-name
操作数据库
-- 如果不存在该数据库,则创建
create database if not exists db-name;
-- 如果存在该数据库,则删除
drop database if exists db-name;
如果你的表名、字段名等使用了mysql的关键字,则需要在使用时使用 `` (键盘数字1的旁边)进行包裹
操作数据表
create table [if not exists] `表名` (
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
...
)[表类型][字符集设置];
创建一个student表为例:
-- 这里都使用 `` 包裹名字,是为了保证不会使用关键字而出错
create table if not exists `t_student` (
`id` int(4) not null auto_increment comment '学号',
`name` varchar(30) not null default '' comment '姓名',
`pwd` varchar(20) not null default '123456' comment '密码',
`sex` varchar(2) not null default '女' comment '性别',
`gradeid` int(4) not null default 1 comment '学生年级',
`birthday` datetime default null comment '出生日期',
`address` varchar(100) default null comment '住址',
`email` varchar(50) default null comment '邮箱',
primary key(`id`)
)engine=Innodb default charset=utf8;
int(4) 其中4代表的不是int可以存储的长度,而是表示显示的数字的长度;而varchar(30) 中的30代表的是varchar字段可以存储的长度
-- 修改表名
alter table t-name rename as new-t-name;
-- 添加字段
alter table t-name add age int(2);
-- 修改字段类型或约束
alter table t-name modify age varchar(2);
-- 重命名字段名
alter table t-name change age age1 int(2);
-- 删除表字段
alter table t-name drop age;
-- 删除表
drop table if exists t-name;
-- 添加外键约束(这里以上面的student表为列,不推荐使用)
alter table `student` add constraint `fk_gradeid` foreign key(`gradeid`) referances `grade`(`gradeid`);