Mysql学习笔记备份
来源:互联网 发布:cf23 2网络出现异常 编辑:程序博客网 时间:2024/04/28 01:04
查找支持的储存引擎
show engines;
\g方式查看比较友好
创建数据库:create database +库名字
删除数据库:
查看库:show databases
创建表:drop database +名字
1.use 库名字
2.create table +表名字
查看表:use 库名字
show 表名字
创建表的形式如下:
create table class(
stu int ,
name varchar(20),
age int ,
area varchar(20)
);
修改表的名字(库名是不能改的):
rename table (oldname) to (newname)
删表:
drop table+ 表名字
描述一张表:
desc+表名
\c终止从新开始
在一张表里写东西
insert into 表名
(id,title,name,content)
values
(1,'初来乍到','张三',‘谁不服?’);
查看表:
select *from +表名
声明插入的字符集:
set names gbk;
增加:
insert into student
(stu,name,age,area)
values
(2,'我',17,'不'),
(3,'asas',23,'sas');
改:
update student
set
stu=3;
where
stu=2;
删除:
delete from student
where name='';
查:
查找列:
select +你想要查找的列的名字+form 表名
查找行:
select *from 表名where name='';
create table class(
id int primary key auto_increment,
name varchar(10),
age tinyint
)charset utf8;
insert into class
(name,age)
values
('张三',25);
tinyint(M)unsigned 1字节 m using
smallint 2字节
mediumint 3字节
int和integer 4字节
bigint 8字节
增:
insert into 表名
(id,title,name,content)
values
(1,'初来乍到','张三',‘谁不服?’);
改:
update student(表名)
set
id=2(属性名)
where
name='';(定位)
整形列的可选属性
M:宽度,填充为0时才有意义
unsign;无符号
zerofill:用零填充
增加一列:
alter table +表名 add age2 tinyint +(属性);
可以声明列默认值,并且推荐设置:
not null default 0
例如可以:
alter table +表名 add age2 tinyint not null default 0
浮点列
浮点型Float(M,D)m:存储范围 总位数 d:代表小数位
定点型decinal(M,D)更精确一点
字符型
char (M)定长M:最大可容纳字符数,注意代表的是字符而不是字节 不够用空格补齐,拿的时候去掉 会丢失尾部空格
vaichar(M)变长 多占1-2字节 用来表示实际长度 也就是说最多表示65535个字节转换为字符之后其实可以表示大概22000个字
选的原则:1.空间利用效率2.速度上定长的速度更快
text 大段的文本 搜索速度慢 不能加默认值
尽量用空间换时间;
赋值取出
select concat (name,'!')from stu;将name取出赋值'!';
年:year;
年月日:date;
时间:11:00:00 time
年月日时间:datetime
插入的方式例如:
select * from 表名(
x,y)
values
(‘1991’,‘1991-11-11’);注意时间用单括号因为其实是字符型
正式开发中多用时间戳而不是datetime
枚举类型:
create tbale t(
gender emun('男','女')
)charset utf8;
1.排序:order by 默认是升序
desc降序排列
asc显示声明
可以多字段排序
2.limit起到限制条目的作用
取价格4到6的商品
limit [],[] 第一个是偏移量 第二个是取出数量
limit 第一个不写 limit 0,n
union:
把多次查询结果合并起来
要求:两次查询的次数一致 可以来自多张表
select *from ta
union
select*from tb
如果不同表中有完全相同的行,将会合并,加all就可以破
如果语句中有order by 或limit要加括号
连接查询:表可以看成集合
左连接:1.接上表
2.连接条件
select
取出的列名
from
表名1 left join 表名2
on 表名1.列名=表名2.列名
完全可以当成一个大表看 可以加五个子句
左为准,右补齐;多则多,少则null 左连接兼容性好
右连接:换成right
内连接:换成inner 左右都连 不要null 左右连接的交集
不支持外连接(左右连接的并集),但是可以用union达到目的
可以三表内连接!!
表的创建
表增加列 alter table 表名 add 列名 列类型 not null default ...;
默认最后一列 可以用after来声明新增的列在谁后面
如果想增加到第一列最后加first 就可以
修改列
alter table 表名 change 被改变的列名 改变后的列名 列声明
删除列
alter table 表名 drop 列名
视图:view
语法
create view 视图名 + as select
删除视图:
drop view 视图名
作用
1.可以简化查询
2.可以进行权限控制
3.大数据分表时可以用到
表的行数超过200万时会变慢,把一张表的数据拆成4张表来存放
id%4+1=(1,2,3,4)表
还可以把4张表合成一张视图
create (algorithm=merge )view newa as select from n1 union select n2 union....
查看视图:show create view + 视图名;
select * from 视图名
视图的修改
alter view as select ...
mysql> alter algorithm=merge view info_view(id,name,gender,address) as select i
d,name,sex,address from work_info where age<20 with local check option;
视图的更新(单行修改)
视图和表的关系:
视图是表的查询结果 ,表的数据改变了影响视图的结果
视图的修改也会影响表
但是视图并不是总能影响表
注释:一一对应时可以修改
视图的algorithm
algorithm=merge/temptable/undefined
merge 意味着只是一个规则,语句规则,在使用的时候替换
temptable 创建了临时表
undefined 未定义,系统帮你选
字符和编码
1.告诉服务器,我给你发送的数据是什么编码的?character_set_client
2.告诉转换器转换成什么编码?character_set_connection
3.查询结果用什么编码?character_set_results
如果以上三者都为字符集N,则可以简写为set names N
推论什么时候产生乱码:
1.client 声明与事实不符
2.result 与客户端不符
什么时间将会丢失数据:
utf8-->gbk
校对集
触发器:
监视某张表,触发某种操作
监视器:增删改
相关操作:增删改
主键:
1.单字段主键primary key
2.多字段主键primary key(分别包含字段名)
外键:
create table example3(
id int primary key,
stu_id int,
course_id int,
constraint 外键名fk_id foreign key(当前表的字段名)references example2(对应表的主键字段名));
唯一属性:unique
自动增加字段:
auto_increment
显示详细表信息:
show create table example \g
修改表名:
alter table 旧表名 rename to 新表名
修改表的数据类型:
alter table 表名 modify 字段名 varchar(30);
修改字段名:
alter table 表名 change 旧属性名 新属性名 新数据类型;
增加字段:
alter table 表名 add 属性名1 数据类型(完整性约束条件)(first|after 属性名2);
删除父表需要先删除外键
删除外键:
alter table 表名 drop foreign key 外键名
表的引擎
Myism 粗略
innodb 仔细
事物
1.一切操作要么都发生要么都不 原子性
2.看不到中间过程 隔离性
3.保证数据发生前发生后总额一致 一致性
4.事务产生的影响是不能够撤销的 持久性
清空表:truncate table ...
max : 求最大
min : 求最小
sum : 求总和
avg : 求平均
count:求总行数
where,group by,having,order by,limit
索引:
在存的时候:frm文件是结构文件 myd是数据文件 Myi是索引文件
1.普通索引:就是加快搜索速度
2.主键索引: 主键必然是唯一,但是唯一不一定是 主键,一张表上,只能有一个主键但是可一多个唯一
3.唯一索引:行上不能重复
4.全文索引:就是全文加
查看表上的所有索引
show index from 表名\G换显示格式
建立索引:
alter table 表名 add index/unique/fulltext 索引名<如果不加就默认列名>(列名)
primaty key:不能写索引名 其他同上
增加主键:alter table 表名 add primary key(列名);
删除非主键索引:
alter table 表名 drop index 索引名;
删除主键的索引:alter table 表名 drop primary key;
删除主键时要先删除数据再删除主键
导入表时:要先删索引,再导入数据,再统一建索引
建索引时:1.在where条件最频繁的地方2.尽量唯一可查的值(不要男女这种)
搜索方式:select * from 表名 where match(列名)against <'匹配词'>;
全文索引的匹配度:
select ...match(列名)against ('匹配词')from 表名;
exists;
SELECT CategoryName
FROM Categories
WHERE EXISTS (SELECT NULL)
ORDER BY CategoryName ASC
show engines;
\g方式查看比较友好
创建数据库:create database +库名字
删除数据库:
查看库:show databases
创建表:drop database +名字
1.use 库名字
2.create table +表名字
查看表:use 库名字
show 表名字
创建表的形式如下:
create table class(
stu int ,
name varchar(20),
age int ,
area varchar(20)
);
修改表的名字(库名是不能改的):
rename table (oldname) to (newname)
删表:
drop table+ 表名字
描述一张表:
desc+表名
\c终止从新开始
在一张表里写东西
insert into 表名
(id,title,name,content)
values
(1,'初来乍到','张三',‘谁不服?’);
查看表:
select *from +表名
声明插入的字符集:
set names gbk;
增加:
insert into student
(stu,name,age,area)
values
(2,'我',17,'不'),
(3,'asas',23,'sas');
改:
update student
set
stu=3;
where
stu=2;
删除:
delete from student
where name='';
查:
查找列:
select +你想要查找的列的名字+form 表名
查找行:
select *from 表名where name='';
create table class(
id int primary key auto_increment,
name varchar(10),
age tinyint
)charset utf8;
insert into class
(name,age)
values
('张三',25);
tinyint(M)unsigned 1字节 m using
smallint 2字节
mediumint 3字节
int和integer 4字节
bigint 8字节
增:
insert into 表名
(id,title,name,content)
values
(1,'初来乍到','张三',‘谁不服?’);
改:
update student(表名)
set
id=2(属性名)
where
name='';(定位)
整形列的可选属性
M:宽度,填充为0时才有意义
unsign;无符号
zerofill:用零填充
增加一列:
alter table +表名 add age2 tinyint +(属性);
可以声明列默认值,并且推荐设置:
not null default 0
例如可以:
alter table +表名 add age2 tinyint not null default 0
浮点列
浮点型Float(M,D)m:存储范围 总位数 d:代表小数位
定点型decinal(M,D)更精确一点
字符型
char (M)定长M:最大可容纳字符数,注意代表的是字符而不是字节 不够用空格补齐,拿的时候去掉 会丢失尾部空格
vaichar(M)变长 多占1-2字节 用来表示实际长度 也就是说最多表示65535个字节转换为字符之后其实可以表示大概22000个字
选的原则:1.空间利用效率2.速度上定长的速度更快
text 大段的文本 搜索速度慢 不能加默认值
尽量用空间换时间;
赋值取出
select concat (name,'!')from stu;将name取出赋值'!';
年:year;
年月日:date;
时间:11:00:00 time
年月日时间:datetime
插入的方式例如:
select * from 表名(
x,y)
values
(‘1991’,‘1991-11-11’);注意时间用单括号因为其实是字符型
正式开发中多用时间戳而不是datetime
枚举类型:
create tbale t(
gender emun('男','女')
)charset utf8;
1.排序:order by 默认是升序
desc降序排列
asc显示声明
可以多字段排序
2.limit起到限制条目的作用
取价格4到6的商品
limit [],[] 第一个是偏移量 第二个是取出数量
limit 第一个不写 limit 0,n
union:
把多次查询结果合并起来
要求:两次查询的次数一致 可以来自多张表
select *from ta
union
select*from tb
如果不同表中有完全相同的行,将会合并,加all就可以破
如果语句中有order by 或limit要加括号
连接查询:表可以看成集合
左连接:1.接上表
2.连接条件
select
取出的列名
from
表名1 left join 表名2
on 表名1.列名=表名2.列名
完全可以当成一个大表看 可以加五个子句
左为准,右补齐;多则多,少则null 左连接兼容性好
右连接:换成right
内连接:换成inner 左右都连 不要null 左右连接的交集
不支持外连接(左右连接的并集),但是可以用union达到目的
可以三表内连接!!
表的创建
表增加列 alter table 表名 add 列名 列类型 not null default ...;
默认最后一列 可以用after来声明新增的列在谁后面
如果想增加到第一列最后加first 就可以
修改列
alter table 表名 change 被改变的列名 改变后的列名 列声明
删除列
alter table 表名 drop 列名
视图:view
语法
create view 视图名 + as select
删除视图:
drop view 视图名
作用
1.可以简化查询
2.可以进行权限控制
3.大数据分表时可以用到
表的行数超过200万时会变慢,把一张表的数据拆成4张表来存放
id%4+1=(1,2,3,4)表
还可以把4张表合成一张视图
create (algorithm=merge )view newa as select from n1 union select n2 union....
查看视图:show create view + 视图名;
select * from 视图名
视图的修改
alter view as select ...
mysql> alter algorithm=merge view info_view(id,name,gender,address) as select i
d,name,sex,address from work_info where age<20 with local check option;
视图的更新(单行修改)
视图和表的关系:
视图是表的查询结果 ,表的数据改变了影响视图的结果
视图的修改也会影响表
但是视图并不是总能影响表
注释:一一对应时可以修改
视图的algorithm
algorithm=merge/temptable/undefined
merge 意味着只是一个规则,语句规则,在使用的时候替换
temptable 创建了临时表
undefined 未定义,系统帮你选
字符和编码
1.告诉服务器,我给你发送的数据是什么编码的?character_set_client
2.告诉转换器转换成什么编码?character_set_connection
3.查询结果用什么编码?character_set_results
如果以上三者都为字符集N,则可以简写为set names N
推论什么时候产生乱码:
1.client 声明与事实不符
2.result 与客户端不符
什么时间将会丢失数据:
utf8-->gbk
校对集
触发器:
监视某张表,触发某种操作
监视器:增删改
相关操作:增删改
主键:
1.单字段主键primary key
2.多字段主键primary key(分别包含字段名)
外键:
create table example3(
id int primary key,
stu_id int,
course_id int,
constraint 外键名fk_id foreign key(当前表的字段名)references example2(对应表的主键字段名));
唯一属性:unique
自动增加字段:
auto_increment
显示详细表信息:
show create table example \g
修改表名:
alter table 旧表名 rename to 新表名
修改表的数据类型:
alter table 表名 modify 字段名 varchar(30);
修改字段名:
alter table 表名 change 旧属性名 新属性名 新数据类型;
增加字段:
alter table 表名 add 属性名1 数据类型(完整性约束条件)(first|after 属性名2);
删除父表需要先删除外键
删除外键:
alter table 表名 drop foreign key 外键名
表的引擎
Myism 粗略
innodb 仔细
事物
1.一切操作要么都发生要么都不 原子性
2.看不到中间过程 隔离性
3.保证数据发生前发生后总额一致 一致性
4.事务产生的影响是不能够撤销的 持久性
清空表:truncate table ...
max : 求最大
min : 求最小
sum : 求总和
avg : 求平均
count:求总行数
where,group by,having,order by,limit
索引:
在存的时候:frm文件是结构文件 myd是数据文件 Myi是索引文件
1.普通索引:就是加快搜索速度
2.主键索引: 主键必然是唯一,但是唯一不一定是 主键,一张表上,只能有一个主键但是可一多个唯一
3.唯一索引:行上不能重复
4.全文索引:就是全文加
查看表上的所有索引
show index from 表名\G换显示格式
建立索引:
alter table 表名 add index/unique/fulltext 索引名<如果不加就默认列名>(列名)
primaty key:不能写索引名 其他同上
增加主键:alter table 表名 add primary key(列名);
删除非主键索引:
alter table 表名 drop index 索引名;
删除主键的索引:alter table 表名 drop primary key;
删除主键时要先删除数据再删除主键
导入表时:要先删索引,再导入数据,再统一建索引
建索引时:1.在where条件最频繁的地方2.尽量唯一可查的值(不要男女这种)
搜索方式:select * from 表名 where match(列名)against <'匹配词'>;
全文索引的匹配度:
select ...match(列名)against ('匹配词')from 表名;
exists;
SELECT CategoryName
FROM Categories
WHERE EXISTS (SELECT NULL)
ORDER BY CategoryName ASC
0 0
- Mysql学习笔记备份
- mysql学习笔记--数据备份与还原
- MySQL学习笔记(五)数据备份
- MYSQL备份+增量恢复+引擎 -学习笔记
- Mysql备份恢复笔记
- MySQL学习笔记——备份和恢复
- MySQL学习笔记20:数据备份与还原
- MySQL学习笔记 7 -数据备份与还原
- Mysql学习笔记<4>数据库的备份与恢复
- mysql学习笔记(四):备份和恢复数据库
- MySQL学习笔记20:数据备份与还原
- mysql学习笔记[日志][备份][表导入导出]
- mysql学习笔记七( 数据库备份 导入导出)
- MySQL学习笔记十二:数据备份与恢复
- MySQL主从备份 + MyCat读写分离 学习笔记
- mysql学习笔记-2.实用的数据库备份和表格备份
- 【mySQL学习】mysql备份多个库
- mysql备份和恢复笔记
- Milking Time
- ZooKeeper典型应用场景(转)
- 组播地址Multicase address
- Zookeeper-Zookeeper的配置
- Android提权漏洞分析——rageagainstthecage
- Mysql学习笔记备份
- C++中的return、exit与abort
- Tip
- Zookeeper-Zookeeper启动过程
- Hadoop之——搭建ZooKeeper服务器集群
- 黑马程序员——OC语言基础——面向对象三大特性之多态
- Zookeeper-Zookeeper leader选举
- Zookeeper-Zookeeper client
- log4j.properties 详解与配置步骤