MySQL基本操作

  1、常用的函数:

  1)inet_aton、inet_ntoa等转换函数。

  inet_aton:如一个点分十进制的IP为12.34.56.78,经过该函数转换后结果为203569230。原理:12.34.56.78对应的十六进制是C.22.38.4E即C22384E,所以十进制就是203569230。inet_ntoa的功能跟inet_aton相反,即把203569230转换成12.34.56.78。例子:

  计算12.34.56.78的IP C段:select inet_ntoa(inet_aton('12.34.56.78')&0xFFFFFF00);,结果是12.34.56.0。

  2)length函数:返回字符串长度,以字节为单位;char_length函数:返回字符串长度,以字符为单位。

 

  2、列操作:

  1)删除列col_name:alter table tab_name drop column col_name;

  2)将列名改为new_col_name且/或修改列的类型为col_type:

  alter table tab_name change old_col_name new_col_name col_type;

  3)调整列的顺序,将列old_col_name放置在列some_col之后(可以同时重命名和修改列类型,参照2)):

  alter table tab_name change old_col_name new_col_name col_type after some_col;

 

  3、表操作:

  1)根据已有表创建新表:create table test2 like test1;

  2)重命名表:rename table test2 to test3;

  3)删除多个表:drop table test1, test2, test3;

  4)批量删除(某个库中的)表

select concat('drop table db_name.', table_name, ';') from information_schema.tables where table_name like '%table_pre%';

  将上面的结果另存为a.sql,再在MySQL中执行source a.sql;,批量删除表。

  5)查看表名匹配某个模式的表:show tables like '%20131105%';

  6)用结果集创建一个新表:create table test1 as select *from test2;

 

  4、数据库操作:

  1)查看当前正在使用的数据库:select database();

 

  5、数据导出与导入

  1)导出

  (1)mysqldump(一个数据库备份程序)。

mysqldump -uusername -ppasswd db_name table_name --where="column_name='xxx'" > a.sql

  a.sql中包含表示表定义和表数据的SQL语句等。

  2)导入

  (1)使用mysqldump导出的结果:

mysql -uusername -ppasswd db_name < a.sql

 

  6、插入/更新/替换:

  1)无则插入,有则更新(根据唯一索引或主键判断有无):insert into table_name values(... ...) on duplicate key update column_name = new_value;

  若实际插入了一条新记录,则affected-rows是1;若是更新了一条已有记录,则affected-rows为2。

  2)无则插入,有则替换(根据唯一索引或主键判断有无):replace into table_name values(... ...);

 

  7、结果处理:

  1)group_concat():分组之后,将组内的结果按","连接起来。例子:

  

  sql语句是:select name, group_concat(book) from (select name, concat(book_name, ":", book_num) as book from temp) as a group by name; 结果即右上图。

  2)随机选择表中的若干条记录:select * from test1 order by rand() limit 5;

  3)以竖排形式显示结果:select *from test1 limit 2 \G。更多可参考mysql> help。

 

  8、账户相关操作

  1)创建一个账户的步骤:

  (1)创建一个无密码登陆、没有任何权限的用户:create user username@hostname;

  (2)修改账户密码:update mysql.user set password = password('Your Password') where host = 'hostname' and user = 'username';

  使用flush使上面的update语句即时生效,而不需要重启MySQL:flush privileges;

  这两个步骤可以合并('*ABC24182CDA346DE32475ED7B40AEAC7113AA1F0'是password('Your Password')的返回值):

  CREATE USER 'username'@'hostname' IDENTIFIED BY PASSWORD '*ABC24182CDA346DE32475ED7B40AEAC7113AA1F0';

  (3)授予权限(除了Grant权限):如GRANT ALL ON *.* TO 'username'@'hostname';

  如要授予Grant权限,则在该语句后面加上with grant option;

  或撤销权限:如REVOKE INSERT ON *.* FROM 'username'@'hostname';

  查看当前用户被授予的权限:SHOW GRANTS;

  2)删除用户

drop user username@hostname;
delete from mysql.user where user = 'username' and host = 'hostname';

  3)查看当前用户:select user();

 

  参考资料:

  http://dev.mysql.com/doc/refman/5.5/en/insert.html

 

 

不断学习中。。。

posted on 2013-10-15 16:57  han'er  阅读(252)  评论(0编辑  收藏  举报

导航