数据库学习

------------恢复内容开始------------

一、数据库

关系型数据库: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密码 数据库名 表名 >导出的地址值

 

------------恢复内容结束------------

posted @ 2020-06-07 15:51  牛牛171125  阅读(166)  评论(0编辑  收藏  举报