1. MySQL帐号操做mysql
# 进入mysql数据库 mysql -uroot -p # 默认登陆数据库以后并无实际操做的权限,须要使用root用户登陆,在mysql5.6默认没有密码 # 给当前数据库设置密码 mysql> set password = password('root') # 查看当前用户 mysql> select user(); # 退出数据库 mysql> exit mysql> \q quit # 建立帐号 mysql> create user 'user1'@'192.137.10.%'; # 指定网段 mysql> create user 'user1'@'192.137.10.120'; # 指定某台机器能够链接 mysql> create user 'user1'@'%'; # 指定全部机器均可以链接 # 远程登陆数据库 mysql -uroot -p -h 'ip' #帐号受权 mysql> grant all on *.* to 'user1'@'%'; mysql> flush privileges; # 建立帐号并受权 mysql> grant all on *.* to 'user1'@'%' identified by '123' # 查看某个用户的权限 mysql> show grants for 'user01'@'ip'
2. sql语言的分类sql
一、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER数据库
二、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT缓存
三、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE安全
3. MySQL基本操做服务器
增:create database dbname charset utf8; # 建立数据库并指定编码方式为utf8; 查:show databases; 改:alter database dbname charset latin1; # 修改数据库的编码方式为latin1; 删:drop database dbname;
# 要操做哪一个数据库,先要切换到库对应的文件夹下 mysql> use dbname; 增:create table table1(字段1,字段2,字段3); 查:show tables; 改:alter table table1 modify name char(3); # 修改表中的name字段内容长度不超过3 alter table table1 change name name1 char(2); # 将name字段修改成name1,并规定name1字段内容长度不能超过2; 删:drop table table1;
增:insert into table1 values(值1,值2),(值1,值2),(值1,值2); # 一次插入多条数据 查:select * from table1; 改:update table1 set name='haha' where 条件; 删:delete from table1 where 条件;
ps:网络
在清空表时,能够有其余的命令:架构
delete from table1; 在这个命令下,若是有自增字段,新增的数据依然是以删除前最后的id为起始自增,并非从0开始;ide
truncate table table1;数据量大,删除速度要比上一条命令块,并从0开始;函数
4. after和first的区别:
alter table table1 add 字段1 数据类型 限制条件 after 已有字段; # 指定了哪一个字段,就会在哪一个字段以后新添加一个字段1; alter table table1 add 字段2 数据类型 限制条件 first; # 会在这张表的最前面添加一个字段:字段2;
first:
MySQL架构总共分为四层,以上图的虚线做为划分。
首先,最上层服务不是MySQL独有的,大多数给予网络的C/S架构的工具或者服务都有相似的架构。好比:链接处理、受权认证、安全等。
第二层的架构包括大多数的MySQL的核心服务。包括:查询解析、分析、优化、缓存以及全部的内置函数(例如:日期、时间、数学和加密函数)。同时,全部的跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。
第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。服务器经过API和存储引擎进行通讯。这些接口屏蔽了不一样存储引擎之间的差别,使得这些差别对上层的查询过程透明化。存储引擎API包含十几个底层函数,用于执行“开始一个事务”等操做。但存储引擎通常不会去解析SQL(InnoDB会解析外键定义,由于其自己没有实现该功能),不一样存储引擎之间也不会相互通讯,而只是简单的响应上层的服务器请求。
第四层包含了文件系统,全部的表结构和数据以及用户操做的日志最终仍是以文件的形式存储在硬盘上。