1. sql语句:增
创建用户:create user 指定的用户名 @ ‘连接用户的方式’ identified by ‘密码’
创建数据库:create datebase 要创建的数据库名
创建数据表:create table 表名 (id int,name char(30));
插入数据:insert into 表名 (id,name,age)values (1,‘字符串’,23)
2. sql语句:删
删除用户:drop user 指定的用户名@‘%’;
删除数据库:drop databese 数据库名;
删除数据表:drop table 表名;
删除数据:delete from 表名 where 要删除的内容
delete from 表名 age between 23 and 25 删除23-25之间的
3. sql语句:改
修改数据表中的数据:update 表名 set age=21 where id=3
把3的年龄改为21 修改数据表的名称:alter table 表名 rename 要改的名;
修改数据表的字段类型:alter table 表名 modify name char(50));
修改数据表的字段类型: alter table 表名 change name username char(50)not null default ‘’;
添加删除字段:alter table 表名 add time datetime 增加 alter table 表名 drop time 删除
4. sql语句:查
查看所有数据库:show databases;
查看指定库内所有数据表:show tables;
查看指定数据表的字段结构:describe 表名
查看所有Mysql用户密码登录方式:select user,password,host from mysql.user;
5. sql语句授权
授予用户全部权限grant all on 库.表 to 用户@‘%’ 远程方式登录 授权对指定库所有权限
给存在的用户授权 创建用户并授权:grant all on 库.表 to 用户@‘@’identfied by ‘密码’
取消用户授权删除库表 表里数据的权限:revoke drop,delete on 库.表 from 用户@‘%’; 查
看指定用户的授权:show grants for 用户@‘%’;
6. sql语句启动关闭
service mysqld start service mysqld stop
/etc/init.d/mysqld start /etc/init.d/mysqld stop mysqld_safe & 源码包
mysqladmin -uroot -p123 shotdown
/etc/init.d/mysqld start /etc/init.d/mysqld stop
7.修改密码
set password=password("123456");
修改普通用户密码 set password=password("123456");
修改管理员密码 update mysql.user set password=password("123") where user='root';
登录 mysql 使用命令修改密码 查看指定用户的授权 show grants for 用户@‘%’;
二、 Mysql主从原理
开启主服务bin-log日志记录功能,将主服务器的bin-log日志传到从服务器 从服务器根据日志内容将数据还原到本地,从服务器主动把主服务器的数据同步到本地
第一步:从服务器 发起连接 主服务器 传输对应的同步信息 user passwd ip pos_file pos-size IO 线程的对接 验证 pos 值偏移位
第二步:主服务器验证主机偏移位 如果出现偏移,主服务器将偏移数据推送至 从服务器, 推送完毕后进入休眠状态
第三步:从服务器获取中继日志完成后,从服务器的 IO 线程进入休眠, 并且唤醒从服务器的 SQL 线程,SQL 将中继日志运行得到对应数据 如果以后再出现新的对数据结构发生改变的 SQL 语句, 主服务端主动唤醒从服务器端的 IO 线程,传递数据,后边步骤同理
SQL 线程:将中继日志转储数据 I/O 线程:传输二进制日志 从服务器的随机端口连接至主服务器的 3306 端口
mysql主从服务器:从服务器主动把主服务器上的数据同步到本地(备份) 从服务器分摊主服务器的查询压力)(负载均衡)
什么是索引:索引本身是数据结构排好序的快速查找数据结构, 可以提高查找效率数据分身 快速查找 快速的定位查询内容速度
什么是主键:唯一标识一条记录,不能有重复,不允许为空,用来保证数据完整性, 主键只能有一个,自增自减 数据库主键,指的是一个或多列的组合。其值能唯一的表示表中的每一行, 通过他可强制表的实体完整性,主键主要用于其他表的外键关联, 以及本记录的修改和删除。
什么是外键:表的外键是另一个表的主键,外键可以有重复的,可以是空值, 用来和其他表建立联系用的,一个表可以有多个外键
数据库引擎: InnoDB存储引擎:支持事务安全表、支持行锁定和外键、支持外键完整性约束
MyISAM存储引擎:拥有较高的插入、查询速度,但不支持事物、 每个MyISAM表最大索引数是64、最大的键长度是1000字节、可以通过编译来改变、 可以把数据文件和索引文件放在不同目录
MEMORY存储引擎:将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。
优化sql语句的一般步骤: 通过show status 命令了解各种SQL的执行效率
可以根据需要加上参数来显示session级(当前连接,默认)和global级 (自数据库上次启动至今)的统计结果
通过explain 或 desc分析低效SQL的执行计划
通过show profile 分析SQL。
SQL语句分类:DML:数据操作语言 DDL:数据描述语言 DCL:数据控制语言
一般查询日志 二进制日志 慢查询日志