数据库知识总结

MySQL笔记


设置中文
当识别不了中文时,输入密令 set names gbk

什么是数据库

数据库是由表、关系以及操作对象组成 数据存放在表中

数据管理技术发展阶段

人工管理阶段--文件系统阶段--数据库管理

数据库类型

1、纯文本数据库
2、关系数据库
数据DATA
数据库DataBase
数据库管理系统DBMS
数据库系统DBS
数据库管理员DBA
BD、DBS、DBMS三者之间的关系
DBS包含DB和DBMS

标题数据库三大模型:

1、层次、网状、关系

MySQL属于关系数据库

关系模型就是一个二维表

E-R模型:实体、属性、关系。

矩形 椭圆形 菱形

主码(关键字)能唯一标识其对应实体

能作为属性的就不要作为

实体,这有利于E—R图的简化。

第一范式:遵循不可分割

第二范式:只能一对一

第三范式。

数据库的增、删、改、查

1.查看数据库 
SHOW DATABASES;
2、创建数据库 
CREATE DATABASE ITCAST(数据库名称);
3、修改数据库 
ALTER DATABASE;
4、删除数据库:
DROP DATABASE 数据库名称; 
5、查看数据库信息:
SHOW CREATE DATABASE 数据库名称;

##数据类型char和varchar的比较
char固定长度
varchar可变长度

表的增删改查

1、创建数据表 
CREATE TABLE 表名(数据类型);
2、查看数据表信息 
SHOW CREATE TABLE 表名; (表名后加G显示的美观)
3、查看数据表内容 
DESC 表名;
4、查看数据表 
SHOW TABLES( 字段名 新数据类型,);
5、修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
6、修改字段名 
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
7、修改字段的数据类型 
ALTER TABLE 表名  MODIFY 字段名 数据类型
8、添加字段 
ALTER TABLE 表名 ADD 新字段名 新数据类型
9、删除字段 
ALTER TABLE 表名 DROP 字段名;
10、修改字段的排列顺序 
ALTER TABLE 表名 MODIFY 字段1(被修改的字段) 数据类型 FIRST(第一)/AFTER(之后)字段2
11、删除数据表 
DROP TABLE 表名;
12、as 用于给字段名起别名
SELECT last_name as 姓, frist_name as 名 from 表名
# as 可以省略

标的约束

1、主键约束 字段名 数据类型 primary key;
2、外键约束  constraint 外键名(自起)foreign key (外键字段名)references 外表表名(主键字段名)
3、唯一约束 字段名 数据类型 unique
4、非空约束 字段名 数据类型 not null;
5、默认值约束 字段名 数据类型 default 默认值;
6、auto_increment自动增加

插入信息

1、insert into 表名 (字段名,...)
 values(数据);
2、select * from 表名;查看表中数据内容 	注释:*代表所有字段

更新数据

1、update+表名
 set 更改的数据
 where   数据的位置信息 (更新指定数据)
2、update 表名
 set   数据           (更新全部数据)

注:UPDATE 表名 SET author=‘未知’ limit 2;

删除数据

1、delete from表名where 删除部分数据
2、delete删除全部数据

查询


1、带in关键字查询(范围查询)
select * \字段名\ from 表名 where 字段名 (not)in(元素1...)
2、带between and关键词(范围查询)
select * \字段名\from 表名 where 字段名\NOT\between 数值 1and 数值2
3、空值查询
select * \字段名\ from 表名 where 字段名is \NOT\null;
4、带distinct关键词(查重复)
select distinct 字段名 from 表名 where 字段名 ;
5、带like关键词
select * \字段名\ from 表名 where 字段名 \NOT \like‘匹配字串’\X%\表示开头 ,\%X\ 表示结尾
通配符 % 代表一个或多个字符 “_”代表一个字符
6、带and关键词
select * \字段名\ from 表名 where 条件1and条件2)(可以精确查询)
7、带or关键词
select * \字段名\ from 表名 where 条件1or条件2(可以查询多个)
		(AND的优先级高于OR)
8、从两表中查出部门号 使用union合并查询
SELECT d_id FROM department UNION SELECT d_id FROM employee ;
9、查询 表中所有的字段名
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME = '表名' AND table_schema ="数据库名";

聚合函数

函数名称作用
COUNT() 返回某列的行数 SELECT COUNT(*) FROM 表名;
SUM() 返回某列值的和 SELECT SUM(*) FROM 表名;
AVG() 返回某列的平均值 SELECT AVG(*) FROM 表名;
MAX() 返回某列的最大值 SELECT MAX(*) FROM 表名;
MIN() 返回某列的最小值 SELECT MIN(*) FROM 表名;

查询结果排序

1、SELECT 字段名1,字段名2,……FROM 表名 ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC]…… ASC表示升序 DESC表示降序
2、分组查询
group by 字段名 having 条件 GROUP BY一 般和聚合函数一起使用 HAVING关键字指定条件表达式对分组后的内容进行过滤
select * \字段名\ from 表名 group by 字段名 

高级查询

1、使用limit限制查询结果的数量
SELECT 字段名1,字段名2,……FROM 表名 LIMIT [OFFSET,] 记录数
函数(列表)
select concat(字段名,,,) from 表名
select 字段名 if(条件,1,0)from 表名(查询student表中的id和gender字段值,如果gender字段的值
为“男”则返回1,如果不为“男”则返回0,)

交叉连接

select * from 表1 cross  join 表2;

内连接

select 表1.字段名 ,表2.字段名 from 表1 join 表2 on 表1.字段名=表2. 字段名;(join...ON )
select 表1.字段名 ,表2.字段名 from 表1 表2 WHERE 表1.字段名=表2. 字段名; (where)

外连接

select 表1.字段名 ,表2.字段名 from 表1 left join 表2 on 表1.字段名=表2. 字段名;左连接
select 表1.字段名 ,表2.字段名 from 表1  right join 表2 on 表1.字段名=表2. 字段名; 右链接

带in的关键字的子查询

select * from  表1 where 相同的字段 in(select * from 表2 where 条件);
带exists关键字的子查询
select * from  表1 where exists (select * from 表2 where 条件);

带 any 关键字的子查询

select * from  表1 where did>any(select * from 表2 );

带all关键字的子查询

select * from  表1 where did>all(select * from 表2 );

事物管理


开启事务 start transaction;
提交事务 commit;
回滚事务 rollback;

** 事物的四个特性:原子性、一致性、隔离性、持久性。 **

事务的隔离级别:

read uncommitted(读未提交)--不做任何隔离,具有脏读,不可重复度,虚读(幻读)问题
read committed(读提交)可以防止脏读 ,不能防止不可重复度,虚读(幻读)问题
repeatable read (可重复读)可以防止脏读,不可重复度和虚读(幻读)
serializable(可串行化)数据库运行在串行化来实践 所有问题都没有,但性能低
从安全上考虑:
serializable>repeatable read> read committed>read uncommitted
从性能上考虑:
read uncommitted>read committed>repeatable read>serializable

视图


1、创建视图 
create view 视图名
as select 	
2、查看视图
 desc 视图名
3、查看视图的基本信息 
show table status like‘视图名’;(\G查询的更详细)
4、查看视图 
show create view 视图名 \G;有
5、修改视图 (有两种):
1、create or replace 视图名 as select from 表名;(注:修改后字段信息完全相同)
2、alter view 视图名 as select 字段名(其余字段则删除) from 表名;
6、更新视图: (当基本表中的数据改变时,与基本表对应的视图数据也会一同改变)
7、增加数据 
1、update 视图名 set 更新的字段
(注:其他的都等于更新的字段)
2、删除视图
	drop view 视图名
8、删除数据
 delete from 视图名 where 数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值