• 学习MYSQL常用操作


    转:http://www.68design.net/Development/Database/25689-2.html

    有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接mysql、
    修改密码、增加用户等方面来学习一些mysql的常用命令。

    一、连接mysql。
    格式: mysql -h主机地址 -u用户名 -p用户密码
    1、 例1:连接到本机上的mysql。
    首先在打开DOS窗口,然后进入目录mysqlin,再键入命令mysql -uroot -p, 回
    车后提示你输密码,如果刚安装好mysql,超级用户root是没有密码的, 故直接回
    车即可进入到mysql中了,mysql的提示符是:mysql>
    2、 例2:连接到远程主机上的mysql。假设远程主机的IP为:110.110.110.110, 用户
    名为root,密码为abcd123。则键入以下命令:
    mysql -h110.110.110.110 -uroot -pabcd123
    (注:u与root可以不用加空格,其它也一样)
    3、 退出mysql命令:exit(回车)

    二、修改密码。
    格式:mysqladmin -u用户名 -p旧密码 password 新密码
    1、 例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
    mysqladmin -uroot password ab12
    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
    2、 例2:再将root的密码改为djg345。
    mysqladmin -uroot -pab12 password djg345
    另一种方法:
    shell>mysql -u root -p
    mysql>SET PASSWORD FOR root=PASSWORD("root");

    三、增加新用户。(注意:和上面不同,下面的因为是mysql环境中的命令, 所以后面都带
    一个分号作为命令结束符)
    格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
    例1、增加一个用户test1密码为abc,让他可以在任何主机上登录, 并对所有数据库有
    查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命
    令:
    grant select,insert,update,delete on *.* to test1@"%" Identified 
    by "abc";
    但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在
    internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,
    解决办法见例2。
    例2、增加一个用户test2密码为abc,让其只可以在localhost上登录, 并可以对数据库
    mydb进行查询、插入、修改、删除的操作(localhost指本地主机, 即mysql数据
    库所在的那台主机),这样用户即使用知道test2的密码,也无法从internet上直
    接访问数据库,只能通过mysql主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to test2@localhost 
    identified by "abc";
    如果你不想test2有密码,可以再打一个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to test2@localhost 
    identified by "";


    有关数据库方面的操作。注意:你必须首先登录到mysql中,以下操作都是在mysql的提
    示符下进行的,而且每个命令以分号结束。

    一、操作技巧
    1、 如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回
    车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束
    标志就OK。
    2、 你可以使用光标上下键调出以前的命令。但以前我用过的一个mysql旧版本不支持。
    我现在用的是mysql-3.23.27-beta-win。

    二、显示命令
    1、 显示数据库列表。
    show databases;
    刚开始时才两个数据库:mysql和test。 mysql库很重要它里面有mysql的系统信息,
    我们改密码和新增用户,实际上就是用这个库进行操作。
    2、 显示库中的数据表:
    use mysql; //打开库,学过FOXBASE的一定不会陌生吧
    show tables;
    3、 显示数据表的结构:
    describe 表名;
    4、 建库:
    create database 库名;
    5、 建表:
    use 库名;
    create table 表名(字段设定列表);
    6、 删库和删表:
    drop database 库名;
    drop table 表名;
    7、 将表中记录清空:
    delete from 表名;
    8、 显示表中的记录:
    select * from 表名;

    三、一个建库和建表以及插入数据的实例
    drop database if exists school; //如果存在SCHOOL则删除
    create database school; //建立库SCHOOL
    use school; //打开库SCHOOL
    create table teacher //建立表TEACHER
    (
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default '深圳',
    year date
    ); //建表结束
    //以下为插入字段
    insert into teacher values('','glchengang','深圳一中','1976-10-10');
    insert into teacher values('','jack','深圳一中','1975-12-23');

    注:在建表中
    (1) 将ID设为长度为3的数字字段:int(3),并让它每个记录自动加一: auto_increment,
    并不能为空:not null,而且让它成为主字段primary key
    (2) 将NAME设为长度为10的字符字段
    (3) 将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别
    呢,只有等以后的文章再说了。 
    (4) 将YEAR设为日期字段。
    如果你在mysql提示符键入上面的命令也可以,但不方便调试。 你可以将以上命令
    原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录
    mysqlin,然后键入以下命令:
    mysql -uroot -p密码 < c:school.sql
    如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你
    只要将//的注释去掉即可使用)。

    四、将文本数据转到数据库中
    1、 文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:
    3 rose 深圳二中 1976-10-10
    4 mike 深圳一中 1975-12-23
    2、 数据传入命令load data local infile "文件名" into table 表名;
    注意:你最好将文件复制到mysqlin目录下,并且要先用use命令选表所在的库。

    五、导出和导入数据:(命令在DOS的mysqlin目录下执行)
    导出表
    mysqldump --opt school > school.sql
    注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,
    文件名任取,打开看看你会有新发现。
    mysqldump --opt school teacher student > school.teacher.student.sql
    注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文
    件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。

    导入表
    mysql
    mysql>create database school;
    mysql>use school;
    mysql>source school.sql;
    (或将school.sql换为school.teacher.sql / school.teacher.student.sql)

    导出数据库
    mysqldump --databases db1 db2 > db1.db2.sql
    注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名
    任取,打开看看你会有新发现。
    (举个例子:
    mysqldump -h host -u user -p pass --databases dbname > file.dump
    就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)

    导入数据库
    mysql < db1.db2.sql

    复制数据库
    mysqldump --all-databases > all-databases.sql
    注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,
    文件名任取。

    导入数据库
    mysql
    mysql>drop database a;
    mysql>drop database b;
    mysql>drop database c;
    ...
    mysql>source all-databases.sql; (或exit退出mysql后 mysql < all-databases.sql)

    后记:
    其实mysql的对数据库的操作与其它的SQL类数据库大同小异, 您最好找本将SQL的书看
    看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。
    最好的mysql教程还是"晏子"译的"mysql中文参考手册"。不仅免费,每个相关网站都有
    下载,而且它是最权威的。可惜不象"PHP4中文手册"那样是chm的格式, 在查找函数命令的
    时候不太方便。

    3.打开数据库:use dbname;
    显示所有数据库:show databases;
    显示数据库mysql中所有的表:先use mysql;然后show tables;
    显示表的列信息:describe user;(显示表mysql数据库中user表的信息);

    4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
    GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

    5.删除授权:
    REVOKE ALL PRIVILEGES ON *.* FROM root@"%";
    USE mysql;
    Delete FROM user Where User="root" and Host="%";
    FLUSH PRIVILEGES;

    6. 创建一个用户custom在特定客户端webjx.com登录,可访问特定数据库bankaccount
    mysql> GRANT Select,Insert,Update,Delete,Create,Drop ON bankaccount.* 
    TO custom@webjx.com IDENTIFIED BY 'stupid';

    7.重命名表:
    Alter TABLE t1 RENAME t2;

    为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
    并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
    Alter TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

    增加一个新TIMESTAMP列,名为d:
    Alter TABLE t2 ADD d TIMESTAMP;

    在列d上增加一个索引,并且使列a为主键:
    Alter TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

    删除列c:
    Alter TABLE t2 Drop COLUMN c;

    增加一个新的AUTO_INCREMENT整数列,命名为c:
    Alter TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
    注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,
    因为索引了的列不能是NULL。

    8.删除记录:
    Delete FROM t1 Where C>10;

    6.改变某几行:
    Update t1 SET user=weiqiong,password=weiqiong;

    7.使用name列的头10个字符创建一个索引:
    Create INDEX part_of_name ON customer (name(10));

  • 相关阅读:
    我要开博!
    JavaScript变态题目
    jquery easyui小记
    Object.prototype.toString.call
    JavaMe开发,模拟器打开一片空白~
    开放●共享●创新
    Spring启动时指定properties文件B 依赖于properties文件A的配置项x (Spring multiple properties files picking one by config item in parent properties file)
    ECC证书操作汇总(ECC certificate operations summary)
    关于spring cloud gateway配置文件的总结
    arm汇编学习(一)
  • 原文地址:https://www.cnblogs.com/dlutxm/p/2100724.html
Copyright © 2020-2023  润新知