mysql简单用法

时光总嘲笑我的痴心妄想 提交于 2020-10-24 18:28:47

删除用户:drop user jack@'%'; (drop比delete删除的优势在于drop可以删除用户的权限,更加彻底)

更改用户名:rename user jack to jacknew; (用户的都存在与user表中,更改名称,权限不变)

更改用户密码:update mysql.user set password=password('123456') where user='jack';
刷新授权表:flush privileges;

如果对root设置了密码,但是忘记了密码:
mysqld_safe --skip-grant-tables &
跳过授权表,再免密登陆,更改root的密码

将同样的权限同时授权于多个用户,示例如下
grant select on hellodb.* to zsy@localhost,zsythink@localhost;

只对某张表的某个字段授权,可以使用如下语句
grant select (name,age) on zsythink.students to zsy@localhost;

只想将test函数的权限授予zsy用
grant execute on function zsythink.test to zsy@'192.168.%.%';

使用procedure关键字,指明是存储过程
grant execute on procedure zsythink.test to zsy@'192.168.%.%';

如果用户有可能会跨越不安全的网络连接到数据库,我们可以强制用户使用ssl建立会话
grant usage on . to 'zsy'@'222.222.222.222' require ssl;

如果想要取消上述的ssl连接限制
grant usage on . to 'zsy'@'222.222.222.222' require none;

管理员还可以通过如下选项对用户进行一些其他的限制

MAX_QUERIES_PER_HOUR:限制用户每小时执行的查询语句数量;

MAX_UPDATES_PER_HOUR:限制用户每小时执行的更新语句数量;

MAX_CONNECTIONS_PER_HOUR:限制用户每小时连接数据库的次数;

MAX_USER_CONNECTIONS:限制用户使用当前账号同时连接服务器的连接数量;
无限制为0

查看用户被授予的权限:show grants for wang@'192.168.194.%'\G;
查看用户对库有哪些权限:select * from mysql.db where Db='test'\G;

回收用户的权限:revoke update on jack.test from wang@'192.168.194.%' ;

创建数据库比存在就创建:create database if not exists testdb default character set utf8;

查看可用字符集:show charactre set;

查看某数据库的字符设置:use testdb;status; =========可查看到服务器和当前库及当前用的信息

查看库对应的权限:select * from mysql.db where Db="testdb"\G;

查看排序方式:show collation;

修改字符集和字符排序规则是二选一的

修改数据库的字符集:alter database testdb character set utf8;

设置库的默认字符集:alter database testdb default character set utf8;
默认在此库下创建的表都会继承此字符集

创建表并查看字符集:create table w(name varchar(15),age int);
查看库中所有表的信息:show table status\G;
查看单个表的信息:show table status where Name="user"\G;

删除数据库: drop database if exists testdb;

查看创建数据库和创建表的语句:
show create database testdb\G;
show create table w\G;

####################################################
创建表结构:
create table if not exists wang.w(
id int primary key auto_increment,
name varchar(50) not null,
age int(10),
address varchar(150) not null,
phone bigint(11) unique,
schoolname varchar(50) not null,
gender enum('F','M') character set utf8 default 'M',
hobby varchar(200) character set utf8
) engine=Innodb charset=utf8 auto_increment=1;










如果下sql语句,最好加上if not exists ,避免重复生成表,覆盖数据

根据现有表,创建新表(会将之前数据赋值过来):
create table h select 字段 from w;

只要结构不要数据:
create table h like w;

更改表名:alter table h rename as www;

删除表中字段:alter table h del 字段;

新增表字段:alter table h add 字段 属性;

更改字段名和属性:alter table h change 字段名 字段名 属性;

更改字段的属性: alter table h modify 字段名 属性;

删除表中字段:alter table h drop 字段名;

############################################################

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!