在MySQL中的命令要以分号结尾
1.连接数据库
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 试验成功 由于无密码,用 mysql –uroot 亦可
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样)
3、连接时指定编码方式: mysql -u用户名 -p用户密码 --default-character-set gb2312
4、退出MYSQL命令: exit (回车)
2.修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:将root密码改为321(原始密码123) mysqladmin -uroot -p123 password 321
2、例2:再将root的密码改为123。
mysqladmin -uroot -p321 password 123
3.添加用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
4.操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。 2、你可以使用光标上下键调出以前的命令。
5.显示数据库列表
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息
6.显示数据库中的表(tables)
use mysql;
show tables;
7.显示数据表结构
describe 表名;
8.创建数据库
create database 数据库名;
9.创建数据库中的表
use 库名;
create table 表名 (字段设定列表);
注:在建表中 (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状态进入目录mysqlbin,然后键入以下命令: mysql -uroot -p密码 < c:school.sql 如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
可使用复合索引在同一个数据表里创建多个相互独立的自增序列,具体做法是这样的:为数据表创建一个由多个数据列组成的PRIMARY KEY OR UNIQUE索引,并把AUTO_INCREMENT数据列包括在这个索引里作为它的最后一个数据列。这样,这个复合索引里,前面的那些数据列每构成一种独一无二的组合,最末尾的AUTO_INCREMENT数据列就会生成一个与该组合相对应的序列编号。 我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。MySQL支持多种数据表,每种数据表的自增属性都有差异,这里将介绍各种数据表里的数据列自增属性。 1 用法: CREATE TABLE test ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, username VARCHAR(15) NOT NULL )AUTO_INCREMENT = 100; 可在建表时可用“AUTO_INCREMENT=n”选项来指定一个自增的初始值。 可用alter table table_name AUTO_INCREMENT=n命令来重设自增的起始值。 说明: (1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。 (2)把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。 (3)当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。 (4)当插入记录时,如果为AUTO_INCREMENT数据列明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。 (5)如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。
10.删除数据库和表
drop database 库名;
drop table 表名;
11.清空表中记录
delete from 表名;
12.向表中插入数据
insert into 表名 values(各个字段的值);
调用deccribe看看我们新建的表结构:
13.显示表中记录
select * from 表名;
14.将文本数据转到数据库中
文本数据应符合的格式:字段数据之间用tab键隔开,null值用n来代替. 例: 3 rose 深圳二中 1976-10-10 4 mike 深圳一中 1975-12-23
数据传入命令 load data local infile "文件名" into table 表名; 注意:你最好将文件复制到mysqlbin目录下,并且要先用use命令打表所在的库。
15. 备份数据库
备注:命令在DOS的mysqlbin目录下执行 mysqldump --opt school>school.bbb 注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。