首页 > 代码库 > mysql基础操作

mysql基础操作

登陆mysql命令行

      mysql -h192.168.1.110 -uroot -p


查看所有数据库

    show databases;


使用mysql数据库  

    use mysql;


如果数据库mysql存在就drop掉

    drop database if exists `mysql`;


创建mydb数据库 

    create database `mydb`;

 

授权root用户可以从任意主机使用YOURPASSWORD对mydb数据库做任何操作 

    grant all privileges on mydb.* to root@‘%.%‘ IDENTIFIED BY "YOURPASSWORD";

 

撤销root从任意主机操作mydb的权限

    revoke all privileges on mydb.* from root@‘%‘;

 

使grant和revoke授权生效!执行grant或revoke之后再执行!

    flush privileges;

 

查看mydb库中所有数据表 

    show tables from mydb;

 

查看mydb库中mytable表的所有列名称,类型,是否为空,默认值,索引等 

    desc mydb.mytable;

 

查看mydb库中mytable表的建表SQL语句

    show create table  mydb.mytable;

 

查看mydb库中mytable表的所有内容,以每行数据,列名-值的键值对方式查看 

    select * from mydb.mytable\G;

 

表mytable改名为mytablenew

  alter table mydb.mytable rename mydb.mytablenew;

 

清空mydb库mytable表的数据,比delete快很多

    truncate table mydb.mytable

 

将数据库mydb1和mydb2以sql语句形式导出到 /data/backup/20120630.sql文件中 

    mysqldump --opt --user=YOURS --password=YOURS -B "mydb1 mydb2" --max_allowed_packet=1048576  --net_buffer_length= 16384  > /data/backup/20120630.sql

 


执行文件中的sql语句

    source /data/backup/mydb.sql

 

查看当前MySQL连接 

    show processlist;

 

断掉某个客户端连接,ID是show processlist命令输出第一列的值

    kill ID;

 

查看MySQL各种变量值 

    show variables;

 

查看MySQL的各种状态,cacti监控MySQL的原理就是定时收集这些状态值绘图

    show global status;

 

查看当前数据版本和日期

    select version(),current_date();

 

查看innodb引擎状态 

    show engine innodb status;

 

查看innodb表状态 

    show table status from test like ‘mydb.mytable‘


--------------------------------------------------------------------------------


创建数据库表90sec:在mysql>后粘贴以下SQL语句,存储引擎为MYISAM,字段id为主键、唯一索引。

    CREATE TABLE `90sec` (

`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,

`username` VARCHAR( 20 ) NOT NULL ,

`password` CHAR( 32 ) NOT NULL ,

`time` DATETIME NOT NULL ,

`number` FLOAT( 10 ) NOT NULL ,

`content` TEXT NOT NULL ,

PRIMARY KEY ( `id` ) 

) ENGINE = MYISAM ;


查看90sec表结构

    DESCRIBE 90sec;


从90sec表中检索所有记录

    SELECT * FROM 90sec;


从90sec表中检索特定的行:字段username等于abc,字段number等于1,按字段id降序排列

    SELECT * FROM zhangyan WHERE username = abc AND number=1 ORDER BY id DESC;


从90sec表中检索指定的字段:username和password

    SELECT username, password FROM 90sec;


从90sec表中检索出唯一的不重复记录:

    SELECT DISTINCT username FROM 90sec;


插入信息到90sec表

    INSERT INTO 90sec (id, username, password, time, number, content) VALUES (, abc, 123456, 2007-08-06 14:32:12, 23.41, hello world);


更新90sec表中的指定信息

    UPDATE 90sec SET content = hello china WHERE username = abc;


删除90sec表中的指定信息

    DELETE FROM 90sec WHERE id = 1;


清空90sec表

    DELETE FROM 90sec;


删除90sec表

    DROP TABLE 90sec;


更改表结构,将90sec表username字段的字段类型改为CHAR(25)

    ALTER TABLE zhangyan CHANGE username username CHAR(25);


将当前目录下的mysql.sql导入数据库、

    SOURCE ./mysql.sql;



--------------------------------------------------------------------------------


创建一个具有root权限,可从任何IP登录的用户80sec,密码为admin

    GRANT ALL PRIVILEGES ON *.* TO 80sec@% IDENTIFIED BY admin;


创建一个具有"数据操作"、"结构操作"权限,只能从192.168.1.***登录的用户80ec,密码为admin

    GRANT SELECT , INSERT , UPDATE , DELETE , FILE , CREATE , DROP , INDEX , ALTER , CREATE     TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON *.* TO 80sec@192.168.1.% IDENTIFIED BY admin;


创建一个只拥有"数据操作"权限,只能从192.168.1.110登录,只能操作win数据库的90sec表的用户80sec,密码为admin

    GRANT SELECT , INSERT , UPDATE , DELETE ON  win.90sec TO 80sec@192.168.1.110 IDENTIFIED BY admin;


创建一个拥有"数据操作"、"结构操作"权限,可从任何IP登录,只能操作win数据库的用户80sec,密码为admin

    GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON win.* TO 80sec@% IDENTIFIED BY admin;


删除用户

    DROP USER 80sec@%;


MySQL中将字符串aaa批量替换为bbb的SQL语句

    UPDATE 表名 SET 字段名 = REPLACE (字段名, aaa, bbb);

   

修复损坏的表(本例中要修复的表为90sec):

  repair table 90sec;udent; 


本文出自 “断了的军刀” 博客,请务必保留此出处http://90sec.blog.51cto.com/7404127/1552686

mysql基础操作