Mysql的一些基操

一、用户权限问题

创建用户并授权

mysql创建用户的方法分成三种:CREATE USER的方法、GRANT的方法、INSERT USER表的方法。

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • username:你将创建的用户名
  • host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  • password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
GRANT <ALL|priv1,priv2,.....privn> ON [object] [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
GRANT privileges ON databasename.tablename TO 'username'@'host';
  • privileges:用户的操作权限,如SELECTINSERTUPDATE等,如果要授予所的权限则使用ALL
  • priv:代表权限select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限
  • databasename:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

注意:WITH GRANT OPTION:使授权的用户可以给其它用户授权

 

 insert into user (host,user,password) values ('%','lalala',password('123'));

 

完成用户的创建后,请记得刷新系统权限表;

flush privileges;

 

 

更改用户密码

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是当前登陆用户用:

SET PASSWORD = PASSWORD("newpassword");

 

 

撤销用户权限

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

删除用户

DROP USER 'username'@'host';

二、增删改查

mysql基本常用命令:
use test; 切换库 
show tables; 查看所有表 
show databases; 查看所有库 
describe test; 查看表结构 
desc test; 查看表结构 
select user,host from mysql.user;查看所有用户 

新增库

#新增库,使用DDL语句创建数据库:CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码;
create database test default character set utf8;
#删除库
drop database test;
#查看库实例
show databases;
#查看数据库编码
select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test';
#修改实例编码
update information_schema.schemata set default_character_set_name = 'utf8' where schema_name = 'test';

新增、删除表或者表的某一列

# create用来创建表,alter用来修改基本表,是对表的结构进行操作,update用来修改表中的数据,修改某一行某一列的值
基本用法:
alter table <表名>
[add <新字段名><数据类型><约束条件>]添加新的字段
[drop <字段>]删除表中某个字段
[modify <字段><数据类型>]修改字段的类型

例如:

create table student_trace(ID int,name varchar(10),trace float(8,2),data_date date);
alter table test add id int(4) not null first; #增加id这一列表结构,first为添加到第一列
FLUSH PRIVILEGES;

作用:是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
MySQL用户数据和权限有修改后,希望在”不重启MySQL服务”的情况下直接生效,那么就需要执行这个命令。

新增数据

insert into student_trace (ID,name,trace,data_date) values (01,"张三",89.5,20220310);

新增索引以及主键

索引以及主键的作用:

主键:唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性,主键只能有一个

 

外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的,一个表可以有多个外键

索引:该字段没有重复值,但可以有一个空值,是提高查询排序的速度,一个表可以有多个唯一索引

 

主键:

ALTER TABLE 表名 ADD PRIMARY KEY (字段名);
alter table test add primary key(id);

外键:

ALTER TABLE 表名 ADD FOREIGN KEY (字段名) REFERENCES “另一张表名”( 字段名);

索引:

alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
alter table test add index stu_id (id);

设置字段非空

ALTER TABLE 表名 MODIFY 字段名 TINYINT NOT NULL;
ALTER TABLE test MODIFY id TINYINT NOT NULL;

 



 

posted on 2022-12-04 21:25  剑之所指,心之所向  阅读(16)  评论(0编辑  收藏  举报