简介:Mysql是开源免费的中小型关系型数据库,由Sun公司开发,sun公司后被Oracle收购。
关系型数据库:建立在关系模型基础上由多张相互连接的二维表组成的数据库。
Mysql企业级的连接方式为在CMD窗口中输入 mysql -h****(ip地址) -P***(端口号) -uroot -p123
操作语言:SQL语言是操作关系型数据库的标准语言
SQL可根据功能分为四种:
1.DDL(数据库定义语言,用于定义数据库,表等)
{
查询:1.show databases;2.select database();
创建:1.create database [if not exists] databasename;
删除:drop database if exists dababasename;
使用:use dababasename;
创建语句:create table tablename(
列名 数据类型 [约束] [comment '注释信息']
)comment '注释信息'
2.1约束的类型:
1.primary key 主键约束(唯一标识)
2.not null 非空约束
3.unique 重复约束
4.default ‘默认值’ 默认值约束
5.foreign key 外键约束
}
2.DML(数据库操作语言,用于对数据库中表的增删改操作),{
insert语句{
对表中的指定字段插入数据:
insert into tablename (字段1,字段2) values(值1,值2)
对表中的所有字段插入信息就可以直接填入values:
insert into tablename values(.......)
若要插入多个数据则直接values后写入多个
insert into tablename (字段1,字段2) values(值1,值2),(值3,值4)
}
可以通过sql语句中的now()方法来获取系统当前时间,时间类型需要加引号
}
修改数据:{
若由where限定语句则指定修改某个字段的值,若没有则修改整张表
updata tablename set 字段名1=值1,字段名2=值2 [where ....]
}
删除数据{
delete from tablename [where ..]
删除数据不能只删除某个字段,若不加where语句则默认删除整张表的数据
}
3.DQL(数据库查询语言,用于对数据的查询)
查询语句{
1.基础查询
select 字段1['别名'] form tablename
例:selct username as '姓名' from Emp //as关键字可省略
若查询的值想要去重可以加入distinct关键字
select distinct job from emp
}
条件查询{
使用where关键字来定义条件语句
例:select * from emp where name='张三'
若where查询语句需要由多个条件则可通关关键字and来定义
常用的比较运算符:{
=,>,<,!=(<>),like,in(value1,value2),between and,is null
模糊查询中'-'代表一个字符,%代表多个字符
}逻辑运算符{
and(&&)
or(||)
not(!)}
}
分组查询{
聚合函数:sum,max,min,avg,count
null值不参与聚合函数的运算
select 字段列表 from tablename where 判断条件 group by 分组字段名 having 过滤条件
having和where的区别:
1.判断时机不同:where在分组前进行条件判断,而having是判断分组后的数据
2.where语句不能以聚合函数为判断条件而having可以
执行顺序:where>group by >having
}
sql中的if语句
if(判断语句 true取值,false取值)
Select if(job=1 '讲师','主任') from emp
case语句
select case job when case=** then value1 when case ** then value2 else elsevalue end
4.DCL(数据库控制语言,用于对数据库用户的管理)
二.多表查询
内连接{
1.显示内连接:select conlum1 conlum2 from table1,table2 where table1.id=table2.id;
2.隐式内连接:select conlum1 conlum2 from table1 inner join table2 on table1.id=table2.id
}
外连接{
1.左外连接:select 字段列表 from table1 left join table2 where 判断条件
2.右外连接:select 字段列表 from table1 right join table2 where 判断条件
}
子查询{
}
四.事务:定义:事物是一组操作的集合,事物会把所有的操作看成一个整体一起向系统提交(这些操作要么同时成功,要么都失败)
用法:star transation/begin (开启一个事物)
//操作语句
commit(提交事务)
roll back(回滚事物
四大特性(ACID):
1.原子性:事务是一个整体不可再分,要么全部成功,要么全部失败
2.一致性:事务操作后保证数据库中的数据都保持一致性
3.隔离性:数据库通过隔离机制,保证事务在不受外部的影响情况下独立运行
4.永久性:事务一旦提交或者回滚,对数据库中的数据的改变都是永久的。
索引:索引是帮数据库高效获取数据的数据结(B+树)
当建表时创建了主键那么数据库会自动为该字段添加一个索引。
当某个字段添加了uique字段时,就是为该字段添加了一个unique索引
优点:提高查询效率,降低了cpu的消耗
缺点:索引是一种数据结构也会占用内存空间,索引会降低增删改操作的效率,因为需要维护索引结构
索引的创建create [unique] index 索引名 on tablename(字段名)
查询索引:show index from tablename
删除索引:drop index indexname on tablename