首页 > 代码库 > 【初学菜鸟作-MySQL数据库表的基本操作与权限管理】

【初学菜鸟作-MySQL数据库表的基本操作与权限管理】

表基本操作练习

1 复制用户信息表user的所有记录到userdb表里。

mysql> create table userdb select * fromuser;

 

2 查看userdb表的表结构

mysql> desc userdb;

 

3 删除userdb表的所有记录

mysql> delete from userdb

 

4 name字段设置为index字段

mysql> create index name on userdb(name)

 

5 添加编号字段id  在所有字段上方,用来存储记录的编号。

alter table userdb add id int(4) not nullprimary key auto_increment first;

 

6 /etc/passwd文件的内容导入userdb表里。

load data infile ‘/etc/passwd’ into tableuesrdb

fields terminated by ‘:‘

lines terminated by ‘\n‘

 

7 修改uid的字段名sex   类型为 enum  且字段值只能是gril boy

mysql> alter table userdb change uid sexenum("b","g")not null;修改内有数据不可修改

mysql> alter table userdb drop des

mysql> alter table userdb add sex enum("b","g")not null after gid;

 

gid  100500间用户的家目录修改为/root

mysql> update userdb sethome="/root"  where gid between100 and 500;

 

把用户是  root  bin  sync 用户的shell 修改为  /sbin/nologin

mysql> update userdb setshell="/sbin/nologin" where name in("root","bin","sync");

mysql> select * from userdb where namein("root","bin","sync");

 

 

10   查看  gid 小于10的用户 都使用那些shell

mysql> select * from userdb where  gid<10 group by shell;

 

12   删除  名字名字以字母d开头的用户。

mysql> delete from userdb where nameregexp  "^d";

 

13   查询  gid 最大的前5个用户 使用的 shell

mysql> select shell from userdb order bygid desc limit 5;

 

14   查看那些用户没有家目录

mysql> select name from userdb where homeis null;

 

15   gid号最小的前5个用户信息保存到/mybak/min5.txt文件里。 

 mysql> select * from userdb order by giddesc limit 5 into outfile ‘/123654/we.txt‘ fields terminated by ‘:‘;

16   把自己用来登陆系统的用户信息添加到userdb表里

 insert into userdbvalues("yeyue","x","888","999","b","/yeyue","/bin/sbin");

mysql> select * from userdb where  name="yeyue";

 

17  删除表中的 des字段

 mysql> alter table userdb drop des

 

18  设置表中所有字段值不允许为空

mysql> alter table userdb modify homevarchar(50) not null;

 

19  删除root 用户家目录字段的值

mysql> update userdb set home=null wherename="root"; null带引号将是字符录入

 

20  显示 gid 大于500的用户的用户名家目录和使用的shell

mysql> select name,home,shell from userdbwhere gid>500;

 

21  删除uid大于100的用户记录

mysql> delete from userdb whereuid>100;

 

22  显示uid号在1030区间的用户有多少个。

mysql> select * from userdb whereuid<30 and uid>10;

 

23  显示uid号是100以内的用户使用shell的类型。

mysql> select * from userdb whereuid<100 group by shell;

 

24  显示uid号最小的前10个用户的信息。

mysql> select * from userdb order by uidlimit 10;

 

25  显示表中第10条到第15条记录

mysql> select * from userdb order by namelimit 9,6;

 

26  显示uid号小于50且名字里有字母用户的详细信息

mysql> select * from userdb  where name like "%a%" anduid<50;

 

27  只显示用户 root   bin   daemon 3个用户的详细信息。

mysql> select * from userdb wherename="root" or name="bin" or name="daemon";

 

28  显示除root用户之外所有用户的详细信息。

mysql> select * from userdb where name notlike "root";

mysql> select * from userdb wherename!="root";

 

29  统计username 字段有多少条记

mysql> select count(name) from userdb;

 

30  显示名字里有字母用户的详细信息

mysql> select * from userdb where namelike "%c%";

 

 

 

 

 

.用户授权练习

0、设置数据库管理员的密码为999

[root@yeyue ~]# mysqladmin -hlocalhost-uroot -p password "tarena"

Enter password:

1、查看当前登陆数据库服务器的用户是谁?

mysql> select user();

2、查看当前登陆数据库服务器用户的权限?

mysql> show grants

3、查看当前数据库服务器有哪些授权用户。

mysql> select user from mysql.user;

5、授权数据库管理员可以在192.168.1.0/24网段内的所有主机访问数据库服务器的所有库,对所有库有完全权限且有授权的权限、登陆密码tarena

mysql> grant all on *.* toroot@"192.168.1.%" identified by "123" with grant option;

6、不允许roo在数据库服务器上通过192.168.1.0登录。

mysql> revoke all on *.* fromroo@”192.168.1.%“;

7、授权userweb用户可以从网络中的任意主机访问数据库服务器,对webdb中的regtab表有查看、更新name字段和age字段的权限密码userweb888

mysql> grant select,update(name,age) onwebdb.regtab to userweb@"%" identified by "userweb888";

8、验证以上授权是否成功

8.1 授权用户userweb 重置自己的登陆密码为123456,并验证能否使用新密码    登陆

   

8.2 数据库管理员修改授权用户userweb的密码为654321,使用新密码能否登    陆数据库服务器

 

9、撤销以上用户的所有授权并删除授权用户。

mysql> revoke all on *.* from roo@”l  mysql> delete user wherename="roo";

10、只允许数据库管理员从数据库服务器本机登录且有授权的权限。

mysql> grant all on *.* toroot@"localhost identified by "123" with grant option;