AI智能
改变未来

mysql简单用法

删除用户: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 t4a0cestdb;

查看创建数据库和创建表的语句:
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 字段名;

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

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » mysql简单用法