数据库学习
------------恢复内容开始------------
一、数据库
关系型数据库:mysql,oralce
非关系型数据库:redis,mongodb
二、创建表
create table 表名(
id int(4) auto_increment,
name varchar(32) not null default ' ' comment ' ',
primary key (id)
)engine-innodb default charset=utf8;
三、数据库的类型
myisam与innodb的区别
事务支持:myisam不支持,innodb支持
数据行锁定:myisam不支持,innodb支持
外键约束:myisam不支持,innodb支持
全文检索:myisam支持,innodb不支持
表空间的大小:myisam小,innodb大
常规操作:myisam节约空间,速度快,innodb安全性高,支持多表操作,支持事务
四、查看创建数据库的语句 show create database school
查看表的定义语句 show create table 表名
查看表结构 desc 表名
数据库查询的要求:
select ..from..where ..group by ..having..order by..limit
五、查询的时候可以给字段起别名 使用as
六、数据库去重用关键字 distinct
SELECT DISTINCT 字段名 FROM 表名
七、模糊查询
查询姓名中姓刘的
select name from where name like ‘’刘%’;
查询姓刘后面只有一个字的
select name from where name like ‘’刘_’;
查询命中还有刘字的
select name from where name like ‘’%刘%’;
八、联表查询
主要就是要找两个表的交集部分,当两个表中的字段有重复的时候,一定要表明是哪张表的字段
select 字段名 from 表1 as 别名 inner join 表2 as 别名 where 条件
右连接查询
select 字段名 from 表1 as 别名 right join 表2 as 别名 on 条件
三种查询的不同
inner join 如果表中有一个匹配,就可以返回
right join 会从右表中返回所有的值,即使左表中没有匹配
left join 会从左表中返回所有的值,即使右左表中没有匹配
思路:首先判断查询几张表,
先试着查询两张表,在慢慢的拼接条件
九、分页和排序查询
升序 order by 字段名 asc
降序 order by 字段名 desc
分页 limit 起始页,每页显示的条数
查询课程成绩前十,分数大于80分的学生信息
select 字段名字 from 表1 inner join 表2 on 条件 inner join 表3 on 条件 where 条件 order by 字段名 desc limit 0,10
十、查询总结
select distinct(去重) ..from [xxx join..on]
where ..group by ..having..order by..limit
十一、使用命令行(cmd)导出数据库和表
mysqldump --h主机的IP地址 -uroot -p密码 数据库名 表名 >导出的地址值
------------恢复内容结束------------