mysql> update mysql.user set password=password("3306") where user='root' and host='localhost'; ==》设置新的密码
mysql> flush privileges; ==》刷新数据库的权限
mysql> quit ==》退出数据库
/data/3306/mysql start ==》启动数据库
mysql -uroot -p3306 -S /data/3306/mysql.sock ==》重新登录即可 第4章 mysql库操作 4.1 显示数据库
mysql> show databases; ==》显示所有数据库
mysql> help show; ==》查看帮助方法 4.2 进入数据库
mysql> use mysql;
mysql> help use; 4.3 创建数据库
mysql> create database LZH;
mysql> help create database; ==》查看帮助
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name 4.4 删除数据库
mysql> drop database LZH;
mysql> help drop database; ==》查看帮助
Syntax:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name 4.5 查看当前连接的数据库
mysql> select database();4.6 查看连接数据库包含的表信息
mysql> show tables;4.7 查看建库的完整语句
mysql> show create database lzh\G4.8 删除系统多余账号
mysql> drop user "root"@"::1";
mysql> drop user ""@"db02";
mysql> drop user "root"@"db02";
mysql> drop user ""@"localhost"; 4.9 建立用户并赋予权限 4.9.1 create和grant配合法
mysql> create user 'lzh'@'localhost' identified by '123456';
mysql> grant all on oldboy.* to 'lzh'@’localhost’; 4.9.2 直接grant法
mysql> grant all on oldboy.* to 'lzh'@'localhost' identified by '123456';4.10 查看mysql的用户
mysql> select user from mysql.user;
mysql> select user,host from mysql.user; 第5章 mysql表操作 5.1 建表
mysql> create table test(
-> id int(4) primary key AUTO_INCREMENT,
-> name char(20) NOT NULL
-> )ENGINE=innodb default
mysql> help create table; 5.2 mysql表的常用字段类型 5.2.1 数字类型
列类型
需要的存储量
TINYINT
1字节
INT
4字节
BIGINT
8字节
SMALLINT
2字节
MEDIUMINT
3字节
INTEGER
4字节
FLOAT
4字节 5.2.2 日期和时间类型
列类型
需要的存储量
DATE
3字节
TIMESTAMP
4字节
DATETINE
8字节
TINE
3字节
YEAR
1字节 5.2.3 字符串类型
列类型
需要的存储量
CHAR(M)
1= alter table test add dept char(20) after id; ==
》在某个字段之后加入
默认是在最后插入字段 5.3.3 查看建表语句
mysql> show create table test\G
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
1 row in set (0.00 sec)
5.4 插入数据
mysql> insert into test values(1,'oldboy');
mysql> insert into test(name) values('oldgirl');
mysql> insert into test values(3,'zuma'),(4,'keke'),(5,'icna'); 5.5 清空表
mysql> truncate table test;
mysql> delete from test; 5.6 为字段创建索引 5.6.1 创建普通索引
mysql> create index index_name on test(name);
mysql> alter table test add index index_name(name); 5.6.2 创建联合索引
mysql> alter table test add index index_name_dept(name,dept);5.6.3 创建及删除主键索引
mysql> alter table test change id id int primary key auto_increment; ==》创建
mysql> alter table test drop primary key; 5.6.4 根据前n个字符创建索引
mysql> alter table test add index index_name(name(8));5.6.5 创建唯一索引
mysql> alter table test add unique index_name(name);5.6.6 删除索引
mysql> alter table test drop index index_name;5.6.7 查看索引
mysql> show index from test\G5.6.8 索引列的创建及生效条件 5.6.8.1 为什么不给所有的列都创建索引
因为索引不但占用系统空间,而且在更新数据时还需要维护索引数据的,因此索引是把双刃剑,并不是越多越好,譬如数十到几百行的数据就不需要建立索引,插入更新频繁,读取比较少的索引需要建立索引。 5.6.8.2 在哪些列上创建索引,可以加快查询速度?
select user,host from mysql.usre where password= 索引一定要建在where后的条件列上,并且要尽量选择在唯一值多的大表上的列建立索引。 5.6.9 索引知识小结
q 索引类似书籍的目录,会加快查询的速度
q 要在表的列上创建索引
q 索引会加快查询速度,但是也会影响更新的速度,因为更新要维护索引数据
q 索引列并不是越多越好,要在频繁查询的表语句where后的条件列上创建索引
q 小表或重复值很多的列上可以不建立索引,要在大表以及重复值少的条件列上创建索引
q 多个联合索引有前缀生效特性
q 当字段前N个字符已经接近唯一时,可以对字段前N个字符创建索引
q 索引从工作方式区分,有主键、唯一、普通索引
q 索引类型会有BTREE(默认)和hash(适合做缓存(内存数据库))等 5.7 查询操作 5.7.1 查询表的所有内容
mysql> select * from test;
mysql> select * from oldboy.test; 5.7.2 查询前两行数据
mysql> select * from test limit 2;5.7.3 从第N行开始查询,查询M行
mysql> select * from test limit 1,2;
mysql> select * from test limit N,M; 5.7.4 按照固定条件查询
mysql> select * from test where id=1;
mysql> select * from test where name='kaka'; 5.7.5 按照固定范围查找
mysql> select * from test where id=5 and name='kaka';
mysql> select * from test where id=1 or name='kaka';
mysql> select * from test where id>2 and id select * from test order by id desc; ==》按照逆序排序
mysql> select * from test order by id asc; ==》按照正序排序 默认是正序 5.7.7 查询mysql版本、当前用户等
mysql> select version();
mysql> select user();