>

起码知识点,Mysql学习路径

- 编辑:www.bifa688.com -

起码知识点,Mysql学习路径

本文内容:

  • mysql学习路线

 

首发日期:2018-04-19


由于现在很多都是有api了,很多问题都转接到编程语言上来处理了,所以这篇mysql之路仅仅是作为“了解”之用。不深究mysql。

很多东西都是讲解怎么使用以及一些使用的注意点,不探究原理;不深究各种使用方法;但对于某些细节脉络,会大概提一提。


  1. 什么是数据库?什么是关系数据库?什么是非关系型数据库?
  2. mysql的安装
  3. mysql的连接
  4. mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库
    1. 相关内容:全球化和本地化【库选项问题】
  5. mysql数据表的基本操作:表结构操作,字段操作
    1. 基础知识: mysql的数据类型和字段属性
  6. mysql数据的基本操作
  7. 高级查询:
    1. mysql学习之完整的select语句
    2. mysql之连接查询、联合查询、子查询
  8. mysql之外键
  9. mysql之常用函数
    1. 聚集函数
    2. 字符串函数、数值函数、时间日期函数
  10. mysql之索引
  11. mysql之视图
  12. mysql之变量
  13. mysql之触发器
  14. mysql之存储过程
  15. mysql之自定义函数
  16. mysql之游标
  17. mysql之代码执行结构
  18. mysql之事务管理
  19. mysql之用户管理
  20. mysql之用户权限管理
  21. mysql之数据备份与恢复
  22. mysql日志管理【占位,什么时候有空再写咯,这里是用作展示知识点的,还有这个知识点】
  23. mysql的诊断与性能优化【占位,什么时候有空再写咯,这里是用作展示知识点的,还有这个知识点】
  24. 补充:
    1. mysql之全球化和本地化:字符集、校对集、中文编码问题
    2. mysql之系统默认数据库
    3. 范式
    4. 锁机制

 


待续...

本文知识点

  • mysql安装
  • mysql增删改查

ALTER TABLE `t_user` ADD UNIQUE KEY(`name`);  -- 唯一约束
ALTER TABLE `t_user` ADD UNIQUE KEY(`phone`,`mail`); -- 联合唯一约束

(三) mysql 使用

密码重置

如果忘记了 MySQL 的 root 密码,可以用以下方法重新设置:

Linux:

1. KILL掉系统里的MySQL进程;
killall -TERM mysqld
2. 用以下命令启动MySQL,以不检查权限的方式启动;
    mysqld_safe --skip-grant-tables &

3. 然后用空密码方式使用root用户登录 MySQL;
 mysql -u root

设置数据库密码
方法一:
在mysql系统外,使用mysqladmin

# mysqladmin -u root -p password "test123"
Enter password: 【输入原来的密码】

方法二:
通过登录mysql系统,

# mysql -uroot -p

Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit;
## 查看mysql 的用户
mysql> select Host,User,Password from user; 

mac:

mac系统中搭建apache mysql php的开发环境,安装mysql后,登录报错:mac ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

解决方法:
第一步:如果mysql服务正在进行,将之停止。
第二步:在终端中以管理员权限启动mysqld_safe,命令如下:

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

第三步:不要关闭当前的终端窗口,新建一个终端窗口,输入如下命令,回车登录mysql
/usr/local/mysql/bin/mysql

下一步:
设置数据库密码

    /usr/local/mysql/bin/mysqladmin -uroot password 123456

然后就可以用123456登陆了

设置mysql 在终端下给mysql 和 mysqladmin 起别名

    alias mysql=/usr/local/mysql/bin/mysql

    alias mysqladmin=/usr/local/mysql/bin/mysqladmin

(3)数据库表的增删改查操作

  • 插入数据
$ insert into 表名 (字段1,字段2) values ("值1","值2");

案例解析

$ insert into qingche(id,name) values("1","小明");
  • 删除数据
delete from 表名 where 列名 = 值

案例赏析

delete from student where name = "小明";
  • 修改表数据
update 表名 set 列名=新值 where 列名= 值
  • 案例赏析
update  student set name = "小红" where id="1"
  • 查询

要是查询所有就是

$ select * from 表名

要是查询某一个列就是

select name(列名) from student(表名)

要是查询很多个列就是

select name(列名), scort(列名2) from student(表名);
update users set password=md5(password) where id=2;

(6) 列类型

  • 整型 int
  • 浮点型 float(m,d) m表示的固定位数,d就表示显示的位数
    decimal(M,D) m是可变长度。而float则是固定了长度
float(10,2) 表示只能存10位数字,显示2位
  • 字符串

char() 固定位数
varchar() 可变位数
Text() 文本类型

  • 时间

Date 日期 1998/12/31
Time 时间 13:56:23
datetime 时期时间 1998-12-31 23:50:23
timestamp 时间戳

我们一般存储时间的时候用的都是时间戳。这样方便计算

前端转化时间就是:
var time = new Date(时间戳);

查询语句

mysql中查询字段为null或者不为null

在mysql中,查询某字段为空时,切记不可用 = null,
而是 is null,不为空则是 is not null ; column字段;

select * from table where column is null; 
select * from table where column is not null;

多表查询:

  • 嵌套查询 (一个查询的结果是另外查询的条件)

  • where关联查询

  • join连接查询:内联inner join,左联 left join,右联right join

  • 嵌套查询:

数据的DQL操作:数据查询

    格式:
        select [字段列表]|* from 表名
        [where 搜索条件]
        [group by 分组字段 [having 子条件]]
        [order by 排序 asc|desc]
        [limit 分页参数]

- 统计函数(聚合函数)max() min() sum() avg() count()
- 获取最大年龄,最小年龄,年龄总和,平均年龄,总计条数

    select max(age),min(age),sum(age),avg(age),count(id) from stu;


concat 函数用于将两个字符串连接起来,形成一个单一的字符串
>    select concat(classid,' : ',name) from stu;
在表后面加一列city
>    select *,'shanghai' city from stu;
正则查询 4位小写字母


select * from stu where name regexp '^[a-z]{4}$';

查10条数据 table1 表名

select * from table1 limit 10

like模糊查询

like模糊查询 ‘%’多个字符 ‘_’单个字符

下面介绍mysql中模糊查询的四种用法: 

1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 
比如 
    SELECT * FROM [user] WHERE u_name LIKE '%三%' ;
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。 

另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件 
    SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE ‘%猫%’;

若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%' 
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。 

2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句: 
比如 
    SELECT * FROM [user] WHERE u_name LIKE '_三_' ;
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的; 

再比如 
    SELECT * FROM [user] WHERE u_name LIKE '三__'; 
    只找出“三脚猫”这样name为三个字且第一个字是“三”的; 

3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。 
比如 
    SELECT * FROM [user] WHERE u_name LIKE '[张李王]三' ;
    将找出“张三”、“李三”、“王三”(而不是“张李王三”); 
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e” 
    SELECT * FROM [user] WHERE u_name LIKE ‘老[1-9]’;
    将找出“老1”、“老2”、……、“老9”; 

4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。 
比如 
    SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三' ;
    将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;

    SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]'; 
    将排除“老1”到“老4”,寻找“老5”、“老6”、…… 

5,查询内容包含通配符时 
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数: 
function sqlencode(str) str=replace(str,"';","';';") 
str=replace(str,"[","[[]") ';此句一定要在最先 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function

以上就是mysql初级知识点.

id为2的password字段的值改为md5

(4)列的5种子查询

  • where 条件查询
$ select * from student where id>=2;
  • 模糊查询like
$ select * from teacher where name like '%诺基亚%';
  • group by 就是组聚合了。比如 一个字段里面有天津北京等等。用了group by就是把天津都聚合在一起了
$ select goods_name from goods group by goods_number;

这个就是查询商品单号下面的商品名称

  • group by 一般配合聚合函数来使用
聚合函数

avg() 返回平均值括号里面写列名
count()返回某列的行数
max() 返回某列的最大值
min() 返回某列的最小值
sum() 返回某列之和

select count(click_count) from goods group by goods_number;
  • having 作用于组 必须和group by 配合使用
    having 就是条件类似where但是与where不同的是where作用于表和视图,having不行
select goods_name,count(click_count) from goods group by goods_number having count(click_count)>3;
  • order by 排序 就是当最终结果出来后按照一列的顺序排序
    desc/asc一个降序一个升序
select goods_name,goods_number from goods order by goods_number;

案例

select goods_name,goods_number from goods order by goods_number desc;
  • limit 限制 就是每页显示多少条 这样每页就显示10个了
select goods_name,goods_number from goods order by goods_number desc limit 10;
  • offset偏移量 ,跳过多少行
select goods_name,goods_number from goods order by goods_number desc limit 10 offset 10;

limit 和offset配合一起来说用分页

  • 左连接 left join b on 条件
    左连接 就是两张表要是某一个字段相同那么可以两张表的数据一起查询。 左连接依据的就是from后面的表名
    比如boy表里面就3条数据。girl里面就4条数据。那么他结果只有3调数据。girl里面的第四条数据被舍弃
    要是girl对面的boy里的序号里面没有数据那么就会用null填满
select bname,gname from boy left join girl on boy.hid = girl.hid;
  • 内连接就是取交集(了解就好)

MySQL数据库的数据类型

MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。

5.1 数值类型:

    *tinyint(1字节)0~255  -128~127
    smallint(2字节)
    mediumint(3字节)
    *int(4字节)
    bigint(8字节)
    *float(4字节)   float(6,2)
    *double(8字节)  
    decimal(自定义)字串形数值

5.2 字串类型

    普通字串
    *char  定长字串      char(8)  
    *varchar 可变字串 varchar(8)

    二进制类型
    tinyblob
    blob
    mediumblob
    longblob

    文本类型
    tinytext
    *text      常用于<textarea></textarea>
    mediumtext
    longtext

    *enum枚举
    set集合

5.3 时间和日期类型:

    date  年月日
    time  时分秒
    datetime 年月日时分秒
    timestamp 时间戳
    year 年

5.4 NULL值

    NULL意味着“没有值”或“未知值”
    可以测试某个值是否为NULL
    不能对NULL值进行算术计算
    对NULL值进行算术运算,其结果还是NULL
    0或NULL都意味着假,其余值都意味着真

MySQL的运算符:

    算术运算符:  - * / % 
    比较运算符:= > < >= <= <> != 
    数据库特有的比较:in,not in, is null,is not null,like, between and 
    逻辑运算符:and or not

表的字段约束:

    unsigned 无符号(正数)
    zerofill 前导零填充
    auto_increment  自增
    default 默认值
    not null  非空
    PRIMARY KEY 主键 (非null并不重复)一个表只能有一个
    unique 唯一性   (可以为null但不重复)
    index 常规索引

建表语句格式:

 create table 表名(
   字段名 类型 [字段约束],
   字段名 类型 [字段约束],
   字段名 类型 [字段约束],
   ...
  );

mysql> create table stu(
    -> id int unsigned not null auto_increment primary key,
    -> name varchar(8) not null unique,
    -> age tinyint unsigned,
    -> sex enum('m','w') not null default 'm',
    -> classid char(8)
    -> );
Query OK, 0 rows affected (0.05 sec)

修改表结构

格式: alter table 表名 action(更改选项);
1. 添加字段:alter table 表名 add 字段名信息
    --1. 在tt表末尾添加一个phone字段,类型varchar(11),无其他约束
    mysql> alter table tt add phone varchar(11);
    --2. 在tt表中age字段后添加一个address字段,类型varchar(100) ,无其他约束
    mysql> alter table tt add address varchar(100) after age;
    --3. 在tt表首位插入一个mm字段,类型int
    mysql> alter table tt add mm int first;

2. 删除字段:alter table 表名 drop 被删除的字段名
    --修改name字段名为username
    mysql> alter table tt change name username varchar(16);
3. 修改字段:alter table 表名 change[modify] 被修改后的字段信息
6. 更改AUTO_INCREMENT初始值:
        ALTER TABLE 表名称 AUTO_INCREMENT=1
7. 更改表类型:
        ALTER TABLE 表名称 ENGINE="InnoDB"

(5) 修改表的语法

  • 增加列 alter 表名 add 列名 列参数
alter table girl(表名) add age int not null;
  • 删除列
alter table 表名 drop 列名
  • 修改列
Alter table 表名 change 旧列名 新列名 新类型 新参数
Alter table girl change gname girlname varchar(20);

MySQL的其他操作

1.MySQL的表复制

复制表结构
mysql> create table 目标表名 like 原表名;
复制表数据
mysql> insert into 目标表名 select * from 原表名; 

2.数据表的索引

创建索引
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)

删除索引
DROP INDEX index_name ON talbe_name

3.mysql视图

创建视图:
mysql> create view v_t1 as select * from t1 where id>4 and id<11;
Query OK, 0 rows affected (0.00 sec)

view视图的帮助信息:
mysql> ? view
ALTER VIEW
CREATE VIEW
DROP VIEW

查看视图:
mysql> show tables;

删除视图v_t1:
mysql> drop view v_t1;

4.MySQL的内置函数

字符串处理函数

*concat(s1,s2,…Sn) 连接s1,s2..Sn为一个字符串
insert(str,x,y,instr)将字符串str从第xx位置开始,y字符串的子字符串替换为字符串str
lower(str)将所有的字符串变为小写
upper(str)将所有的字符串变为大写
left(str,x)返回字符串中最左边的x个字符
rigth(str,y)返回字符串中最右边的x个字符
lpad(str,n,pad)用字符串pad对str最左边进行填充,直到长度为n个字符串长度
rpad(str,n,pad)用字符串pad对str最右边进行填充,直到长度为n个字符串长度
trim(str)  去掉左右两边的空格
ltrim(str) 去掉字符串str左侧的空格
rtrim(str) 去掉字符串str右侧的空格
repeat(str,x)   返回字符串str重复x次
replace(str,a,b)将字符串的的a替换成b
strcmp(s1,s2)   比较字符串s1和s2
substring(s,x,y)返回字符串指定的长度
*length(str)  返回值为字符串str 的长度    

数值函数

*abs(x)    返回x的绝对值
ceil(x)   返回大于x的最小整数值
floor(x)  返回小于x的最大整数值
mod(x,y)  返回x/y的取余结果
*rand()    返回0~1之间的随机数
*round(x,y)返回参数x的四舍五入的有y位小数的值
truncate(x,y) 返回x截断为y位小数的结果

日期和时间函数

curdate()  返回当前日期,按照’YYYY-MM-DD’格式
curtime()  返回当前时间,当前时间以'HH:MM:SS' 
*now()      返回当前日期和时间,
*unix_timestamp(date) 返回date时间的unix时间戳
from_unixtime(unix_timestamp[,format])  返回unix时间的时间
week(date)      返回日期是一年中的第几周
year(date)      返回日期的年份
hour(time)      返回time的小时值
minute(time)    返回日time的分钟值
monthname(date) 返回date的月份
*date_fomat(date,fmt) 返回按字符串fmt格式化日期date值
date_add(date,INTERVAL,expr type) 返回一个日期或者时间值加上一个时间间隔的时间值
*datediff(expr,expr2)   返回起始时间和结束时间的间隔天数

//统计时间戳647583423距离当前时间相差天数(生日天数(不考虑年份))

mysql> select datediff(date_format(from_unixtime(647583423),"2017-%m-%d %h:%i:%s"),now());

其他常用函数

*database() 返回当前数据库名
version()   返回当前服务器版本
user()      返回当前登陆用户名
inet_aton   返回当前IP地址的数字表示 inet_aton("192.168.80.250");
inet_ntoa(num) 返回当前数字表示的ip   inet_ntoa(3232256250);
*password(str)  返回当前str的加密版本
*md5(str)      返回字符串str的md5值

5.MySQL的事务处理

    关闭自动提交功能(开启手动事务)
    mysql> set autocommit=0;
    从表t1中删除了一条记录
    mysql> delete from t1 where id=11;
    此时做一个p1还原点:
    mysql> savepoint p1;
    再次从表t1中删除一条记录:
    mysql> delete from t1 where id=10;
    再次做一个p2还原点:
    mysql> savepoint p2;
    此时恢复到p1还原点,当然后面的p2这些还原点自动会失效: 
    mysql> rollback to p1;
    退回到最原始的还原点:
    mysql> rollback;
    回滚

    mysql> commit;
    事务提交

    开启自动事务提交(关闭手动事务)
    mysql> set autocommit=1;

6.MySQL的触发器

格式:1、触发器的定义:

  CREATE TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt

说明:

# trigger_name:触发器名称
# trigger_time:触发时间,可取值:BEFORE或AFTER
# trigger_event:触发事件,可取值:INSERT、UPDATE或DELETE。
# tb1_name:指定在哪个表上
# trigger_stmt:触发处理SQL语句。

示例:

mysql> delimiter $$

mysql> create trigger del_stu before delete on stu for each row
    -> begin
    ->  insert into stu_bak values(old.id,old.name,old.sex,old.age,old.addtime);
    -> end;
    -> $$
Query OK, 0 rows affected (0.05 sec)

mysql> delimiter ;

(一)安装

  • 安装很简单网上下载个xampp或者phpstudy即可

  • 安装完以后一定要找到mysql安装包下面的bin目录,然后在计算机属性里面添加环境变量即可

数据库基本操作

SQL语句中的快捷键

G 格式化输出(文本式,竖立显示)
s 查看服务器端信息
c 结束命令输入操作
q 退出当前sql命令行模式
h 查看帮助

连接数据库:

 mysql -h 主机名 -u 用户名  -p密码  库名

授权:

格式:grant 允许操作 on 库名.表名 to 账号@来源 identified by '密码';

--实例:创建zhangsan账号,密码123,授权lamp61库下所有表的增/删/改/查数据,来源地不限
mysql> grant select,insert,update,delete on lamp61.* to zhangsan@'%' identified by '123';

mysql> grant all on *.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

查看数据库

show databases; 

查看建库语句

show create database mydb;

创建数据库

    create database mydb; 
    mydbmysql> create database mydb;
    Query OK, 1 row affected (0.02 sec)

解决重复创建数据库报错,尝试创建

mysql> create database if not exists mydb;
Query OK, 1 row affected, 1 warning (0.00 sec)
create database if not exists mydb;

删除数据库

drop database mydb; 

查看当前所有数据库位置:NULL表示没有在任何数据库中

 select database();

mydb数据库的表的基本操作

切换到mydb数据库

use mydb;

查看数据表

show tables;

创建数据表

create table user(id int,name varchar(16),age int);

查看数据表

desc users;

查看user创建语句

 show create table userG 

删除user数据表

drop table user;

查看数据表结构

desc user;

给所有字段添加值

1. insert into user(id,name,age) values(1,'zhou',22);
2. insert into 数据库名 values(2,'chen',22);

3. mysql> insert into user values
     -> (4,'wang',25),
    -> (6,'ji',26),
    -> (7,'ru',25);

查看user表的所有 数据

select * from user;

查看user和age字段的所有数据

select name,age from user;

修改表user,将id值为4的信息name改为bie(修改表)

update user set name=bie where id=4;

(二) mysql登录

  • 登录mysql
$ mysql -u root -p

这个时候按下回车他会让你输入密码。一般情况下密码是root

这样就登录成功了.登录成功以后,下面就是基本操作指令了

Mysql数据库修改&添加&删除

Mysql数据库添加:

把boss_job表的数据导入到job_51j里 最后一个字段没有逗号

insert into `job_51`(`url`, `pname`, `smoney`, `emoney`, `location`, `syear`, `eyear`, `degree`, `ptype`, `tags`, `date_pub`, `advantage`, `jobdesc`, `jobaddr`, `company`, `crawl_time`, `num`)
select `url`,
       `pname`,
       `smoney`,
       `emoney`,
       `location`,
       `syear`,
       `eyear`,
       `degree`,
       `ptype`,
       `tags`,
       `date_pub`,
       `advantage`,
       `jobdesc`,
       `jobaddr`,
       `company`,
       `crawl_time`,
       `num`      
  from `boss_job` 

Mysql数据库删除:

删除qiji_job_t表里,pname字段为空的
    delete from `qiji_job_t`  where `pname`  is null;
删除qiji_job_t表里,pname字段为不为空的
    谨慎使用!!!
    delete from `qiji_job_t`  where `pname`  is not null;

Mysql数据库修改:

(2)数据库表的通用操作

  • 查询数据库下面的所有表
$ show tables;
  • 创建表的操作
$ create table 表名 (
  id int,
 name varchar(20)
) engine myisam charset utf8;
  • 删除表的操作
$ drop table 表名
  • 修改表名
$ rename table 旧名 to 新名
  • 清空表数据 truncate 和 delete最大的区别就是truncate是重新建一张表。而delete是沿用那张表
$ truncate 表名
  • 查看表结构
$ desc 表名
  • 备注要是使用命令台的话,无论执行增删改查等操作一定要先执行下面的代码
    这是因为我们的命令台默认是GBK 而控制台是utf8 所以告诉命令台先使用gbk
    这样在使用中文
$ set names gbk

备份&日志&恢复&

基本备份恢复

备份mydb数据库,

# mysqldump -u root -p mydb > mydb.sql

备份mydb下的stu0表

# mysqldump -u root -p mydb stu0 > mydb_stu0.sql

恢复mydb数据库

mysql -u root -p mydb < mydb.sql  数据库中必须先有mydb数据库

mysql日志

开启日志: 在mysql配置文件中开启:log-bin=mysql-bin

查看bin-log日志:
mysql>show binary logs;

查看最后一个bin-log日志:
mysql>show master status;

此时就会多一个最新的bin-log日志
mysql>flush logs;

查看最后一个bin日志.
mysql>show master status;

mysql>reset master;
清空所有的bin-log日志
执行查看bin-log日志

备份数据:
mysqldump -uroot -pwei test -l -F >/tmp/test.sql
其中:-F即flush logs,可以重新生成新的日志文件,当然包括log-bin日志 

// Linux关闭MySQL的命令
$mysql_dir/bin/mysqladmin -uroot -p shutdown
// linux启动MySQL的命令
$mysql_dir/bin/mysqld_safe &

有关慢查询操作:

开户和设置慢查询时间:
vi /etc/my.cnf
log_slow_queries=slow.log
long_query_time=5
查看设置后是否生效
mysql> show variables like "%quer%"; 
慢查询次数:
mysql> show global status like "%quer%";

数据库的恢复

1. 首先恢复最后一次的备份完整数据
[root@localhost mnt]# mysql -u root -p mydemo<mydemo_2017-7-26.sql 
Enter password: 

2. 查看bin-log日志
[root@localhost data]# mysqlbinlog --no-defaults mysql-bin.000009;
  查找到恢复的节点

3. 执行bin-log日志文件,恢复最后一块的增量数据。 
[root@localhost data]# mysqlbinlog --no-defaults --stop-position="802" mysql-bin.000009|mysql -u root -p123456 mydemo;

(1)数据库的操作

  • 显示数据库
$ show databases;
  • 使用数据库
$ use 数据库名字;
  • 创建数据库
$ create database 数据库名字 charset utf8;
必须设置字符集
  • 删除数据库
$ drop database 数据库名字
  • 表能改名,但是数据库改不了名字 phpadmin能做到

创建好表后设置字段不重复

本文由88bifa必发唯一官网发布,转载请注明来源:起码知识点,Mysql学习路径