第一部分-安装:
1、下载Mysql Server并安装,下载workbench并安装。
2、记下安装过程中生成的随机密码,类似下图。
3、命令行输入mysql -u root -p
,登陆mysql,提示输入密码,输入刚才截图的密码即可成功登陆。
4、已进入mysql,输入命令将密码修改为root(或其他):
SET PASSWORD=PASSWORD('root');
5,继续以下命令:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
重新载入授权表:flush privileges;
6、即可用root密码登陆mysql。
第二部分-使用:
1、存储引擎:
改变某个表的存储引擎命令:
ALTER TABLW mytable
ENGINE = InNoDB;
1)MyISAM,默认存储引擎,支持表级并发控制锁,当某个进程对某个表
进行更新时,其他进程将不能访问表里的任何数据。速度最快。
2)BDB,支持页面级的并发控制锁,当某个进程对某个表进行更新时,
其他进程将不能访问与被更新的记录出于一个内存页面的任何数据。
3)InnoDB,支持记录级的并发控制锁,当某个进程对某个表进行更新时
其他进程将不能访问被更新的记录。在并发访问频繁的系统上最合适使用
该方式。
2、查看数据库:
show databases;
3、选择数据库:
use 数据库名;
4、查看表:
show tables;
5、查看某个表的列:
show columns from 表名;
6、查看所有:
select * from 表名;
7、删除某条记录:
delete from 表名 where 条件;
8、创建数据库:
mysqladmin -u root -p create 库名
输入密码:
如果不存在就创建:
CREATE DATABASE IF NOT EXISTS 库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
9、删除数据库(退出mysql命令执行):
mysqladmin -u root -p drop 库名;
10、创建表:
create table if not exists test(
id int unsigned auto_increment,
tile varchar(10) not null,
primary key(id))
engine=InnoDB default charset=utf8;
12、删除表:
drop table test;
13、清空表(把数据清空):
truncate table test;
14、插入数据:
insert into test(表名)
(title1(列名),title2)
values
('title1','title2');
15、查询数据:
select title1,title2 from test(表名)
where id=1,2,3;(查询条件)
//#where binary id=...可区分大小写
16、更新数据:
update test(表名) set title1='title1',title2='title2'
where id=1,2,3;
17、like子句:
select title1 from test
where title like '%tle'; //以%来匹配tle结尾的字符。
18、order子句:
select * from test order by title1 ASC(DESC); //ASC表示升序,反之降序
19、group by子句:
*选取title1列,统计各记录出现次数。或则sum求和或avg求平均。*
select title1 ,count(*) from test group by title1;
//select title1 ,count(*) as new_title from test group by title1;*更换新列名*
select coalesce(name,'new_title') ,count(*) from test group by name with rollup;多一个统计所有的记录new_title。
20、修改表名:
alter table table2 rename to table1;
21、修改列名、属性:
alter table table1 change singin count smallint default 0;
//将表table1的列名singin修改为count,类型smallint,默认0;
alter table table1 modify count char(10);
//修改count列的属性。
22、增加列:
alter table table1 add(column) t varchar(10) default null(after x/first);
//增加列t(位置在x后面/第一列)
alter table table1 drop t;
23、查看表的列名及属性:
desc table1;
24、join子句:
select a.name,b.count from table1 a join table2 b on a.name=b.name;
//选取和table1中的name相同的table2中的count记录。
select a.name,b.count from table1 a left join table2 b on a.name=b.name;
//与上面默认不同的是,即使在table1中的某些name在table2中没有对应的记录,也会把table1的记录列出来,那样在那些记录中就会显示null。(right join类似。)
//在上面table1中,有些name值为空,进行判断时用name is null来判断,而不是name=null
select count from table1 where name is null;
26、事务:
以begin开始一个事务,rollback进行回滚取消,commit进行进行事务确认。
insert,update,delete
27、读取不重复数据:
select distinct count from table1;
//读出table1中的count列不重复的数据。