首页 > 代码库 > 【初学菜鸟作-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;
8 把gid 在100到500间用户的家目录修改为/root
mysql> update userdb sethome="/root" where gid between100 and 500;
9 把用户是 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号在10到30区间的用户有多少个。
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且名字里有字母a 用户的详细信息
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 显示名字里有字母c 用户的详细信息
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;