1、mysql服务的启动和停止
net stop mysql
net start mysql
2、登陆本机mysql
语法如下: mysql -u用户名 -p
键入命令mysql -uroot -p,回车后提示你输入密码,输入root,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
连接到远程主机上的MYSQL:
假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grantselect,insert,update,delete on *.* to user1@localhost Identified by"password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.*to user1@localhost identified by "";
4、操作数据库(重点)
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
(1)显示数据库列表:
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
(2)显示库中的数据表:
use mysql;
show tables;
(3)显示数据表的结构:
describe 表名;
(4)建库与删库:
create database 库名;//创建
drop database 库名;//删除
use database 库名;//使用数据库
(5)建表及删表:
use 库名;
创建表是先判断表是否存在
exists
若确定不存在表名,直接创建:
create table 表名(<字段名1> <类型1> [,..<字段名n> <类型n>]);
例:
mysql> create tableMyClass(id int(4) not null primary key auto_increment,name char(20) notnull,sex int(4) not null default '0',degree double(16,2));
drop table 表名;//删表
复制表:create table table2 select * from table1;
对表重新命名: alter table table1 rename as table2;
(6)清空表中记录:
delete from 表名;
(7)显示表中的记录:
select * from 表名;
匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串;
(8)往表中加入记录
mysql> insert into MYTABLE values("hyq","M");
(9)更新表中数据
mysql>update MYTABLE setsex="f" where name=’hyq’;
(10)增加一个字段:
alter table tabelName add column fieldName dateType;
增加多个字段:
alter table tabelName add column fieldName1 dateType,add columnsfieldName2 dateType;
(11)导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
5、导出和导入数据
(1) 导出数据:
mysqldump --opt
即将数据库test数据库导出到mysql.sql文件,后者是一个文本文件
如:
mysqldump -u root -p123456 --databases dbname > mysql.sql
就是把数据库dbname导出到文件mysql.sql中。
(2) 导入数据:
将要导入的.sql文件移至bin文件下,这样的路径比较方便
进入MySQL:mysql -u用户名 -p
如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)
在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库
输入:mysql>use目标数据库名
如我输入的命令行:mysql>use news;
导入文件:mysql>source 导入的文件名;
如我输入的命令行:mysql>source news.sql;
MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。
(3) 备份数据库
基本语法:mysqldump -u username -p dbname table1 table2 ...->BackupName.sql
其中:dbname参数表示数据库的名称;
table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
备份多个数据库:
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
加上了--databases选项,然后后面跟多个数据库
备份所有数据库:
mysqldump -u username -p -all-databases > BackupName.sql
mysqldump -u -root -p -all-databases > D:\all.sql
(6)退出MYSQL命令: exit (回车)
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
查询时间:select now();
查询当前用户:select user();
查询数据库版本:select version();
查询当前使用的数据库:select database();
(12)主键
Mysql的两种主键。Primarykey 和not null auto_incriment
在建立mysql表时,给一个字段添加了主键primary key
在insert数据时可以不用insert主键,mysql会自动添加0,但是在第二次insert时没有填写值mysql数据库还是默认添加0,会导致有重复的主键,这是不可以的。所有在定义了primary key时,在insert数据时要给主键填写值。
在建立mysql表时,给一个字段添加了主键not null auto_increment=1;
这也是一个主键。时自增长的以1为开始。这个字段是可以不用填写值的,mysql数据库会 自动给填写值,不会出现primarykey的状况。
Alter table tb add primary key(id);
Alter table tb change id id int(10)not null auto_increment=1;
删除自增长的主键id
先删除自增长在删除主键
Alter table tb change id idint(10);//删除自增长
Alter table tb drop primary key;//删除主建
(13)索引
UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE(`column` )
INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEXindex_name ( `column` )