一、服务的启动和停止
net start mysql
net stop mysql
二、mysql登陆/退出
mysql -u"root" -p"pw"
mysql -u"root" -p,回车后输入密码"pw",再回车进入
注意:如果连接到另外的机器上,则加入一个参数-h机器IP
mysql> quit;//退出
三、mysql用户管理
说明:数据库安装后缺省有两个数据库mysql和;mysql存放mysql的系统和用户权限信息,我们改密码和新增用户,实际就是对这个库进行操作。
1.增加新用户
grant权限on数据库.* to用户名@登录主机identified by "密码"
例如:增加一个用户test密码为123456,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先以root用户进入mysql,然后键入命令:grant select,insert,update,delete on *.* to test@localhost Identified by "123456";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想test有密码,键入命令:grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
全局管理权限:
FILE:在MySQL服务器上读写文件。
PROCESS:显示或杀死属于其它用户的服务线程。
RELOAD:重载访问控制表,刷新日志等。
SHUTDOWN:关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER:修改已存在的数据表(例如增加/删除列)和索引。
CREATE:建立新的数据库或数据表。
DELETE:删除表的记录。
DROP:删除数据表或数据库。
INDEX:建立或删除索引。
INSERT:增加表的记录。
SELECT:显示/搜索表的记录。
UPDATE:修改表中已存在的记录。
特别的权限:
ALL:允许做任何事(和root一样)。也写作all privileges
USAGE:只允许登录--其它什么也不允许做。
2.修改密码
方式一:mysqladmin -u用户名[-p旧密码] password新密码(不推荐,修改后数据库无法访问)
方式二:
mysql> use mysql;
mysql> update User set password=password("123456")where User="root";
mysql> flush privileges;
3.删除用户
mysql> delete from mysql.user where user="test";
mysql> flush privileges;
4.其他管理
查询时间:select now();
查询当前用户:select user();
查询数据库版本:select version();
查询当前使用的数据库:select database();
四、操作数据库(多行命令输入不能将单词断开;每条语句输入完后要填加分号';')
1.显示数据库列表
mysql> show databases;
2.显示库中的数据表
mysql> use库名;
mysql> show tables;
3.显示数据表的结构
mysql> use库名;
mysql> describe表名;或者show columns from表名;
4.建库与删库
mysql> create database [if not exists]库名; //创建前检查是否存在库
mysql> drop database库名;
5.建表与删表、修改表
mysql> use库名;
mysql> create table [if not exists]表名(字段1类型1(长度),字段2类型2(长度)……); //创建前检查是否存在表
mysql> drop table表名;
mysql> alter table旧表名rename as新表名; //修改表名
mysql> alter table表名add column字段名1数据类型,add columns字段名2数据类型; //添加字段
mysql> alter table表名change column旧字段名新字段名数据类型; //修改字段和数据类型
mysql> alter table表名drop column字段名; //删除字段
mysql> alter table表名modify字段名数据类型; //只修改字段数据类型
6.查找\插入\更新\删除数据
mysql> use库名;
mysql> select * from表名where条件;
Commonly used:
sql="select * from表名where字段名=字段值order by字段名[desc]"
sql="select * from表名where字段名like '%字段值%' order by字段名[desc]"
sql="select top 10 * from表名where字段名order by字段名[desc]"
sql="select * from表名where字段名in ('值1','值2','值3')"
sql="select * from表名where字段名between值1 and值2"
mysql> insert into表名(字段列表) values(值列表);
Commonly used:
sql="insert into表名(字段1,字段2,字段3…) valuess (值1,值2,值3…)"
sql="insert into目标数据表select * from源数据表" (把源数据表的记录添加到目标数据表)
mysql> update表名set字段名="字段值" where条件;
Commonly used:
sql="update表名set字段名=字段值where条件表达式"
sql="update表名set字段1=值1,字段2=值2……字段n=值n where条件表达式"
mysql> delete from表名where条件;
Commonly used:
sql="delete from表名where条件表达式"
sql="delete from表名" (将表所有记录删除)
7.数据记录统计函数:
AVG(字段名)计算该字段筛选记录的平均值
COUNT(*|字段名)统计该字段筛选记录的记录行数
MAX(字段名)获取该字段筛选记录的最大值
MIN(字段名)获取该字段筛选记录的最小值
SUM(字段名)计算该字段筛选记录的和值
例:sql="select sum(字段名) as别名from数据表where条件表达式"其它函数运用类似。
8.索引创建\删除
mysql> alter table表名add index索引名(索引字段); //建立索引
mysql> create index索引名on表名(索引字段); //建立索引
mysql> create unique index索引名on表名(索引字段);//建立唯一性索引
mysql> drop index索引名on表名; //删除索引
mysql> alter table表名drop index索引名; //删除索引;
9.其他
a).联合字符或者多个列(将列id与":"和列name和"="连接): select concat(id,':',name,'=') from students;
b).replaced的替代用法:
eg:将表jitenant里面的eidb_url字段中包含的192.168.0.155替换为127.0.0.1。
update jitenant set eidb_url=replace(eidb_url,'192.168.0.155','127.0.0.1')
c).limit用法: select * from students order by id limit 9,10; (筛选id大于9的10条记录,若10改为-1则筛选大于9的所有记录)
d).创建临时表:create temporary table临时表名(字段列表);