暑期学习

语法

dml:增删改表中数据
1 . 添加数据
insert into 表名(列名1 ,…)values(值1,…);(除了数字其他都得用引号)
2 删除数据
delete from 表名 [where 条件] //没有条件则删除所有数据
删除所有记录
1 truncate table 表名 – 先删除表,然后再创建一张一样的表(推荐使用)
3 修改数据:
update 表名 set 列名 =值1,…【where 条件】;
dql:查询表中的记录
1 select * from 表名
语法
select
字段列表
from
表名列表
where
条件列表
grouo by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
2.基础查询
1.多个字段的查询
select 字段名1,字段2…from表名
select * from 表名 查询所有
2.去除重复
distinct
3 计算列
ifnull(表达式1,表达式2)
表达式1 那个字段可能为NULL
表达式2 替换后的
4 起别名
AS
3条件查询
1where 子句

2

**DQL: 查询语句
1.排序查询
order by
{
asc 升序
desc 降序
}
2.聚合函数
1 count 计算数量个数
2 max 计算最大值
3 min
4 sum
5 avg 平均数
会排出NULL
ifnull(s1,s2);
3.分组查询
group by 分组字段

注意
1 分组之后查询的字段:分组字段,聚合函数
2 where 和having的区别
wrere 再分组之前进行限定 不满足 不参与
having 在分组之后进行限定 如果不满足结果则不会被查询出来

where后不可以跟聚合函数   having可以进行聚合函数的判断

4.分页查询
limit 开始的索引 每页查询的条数
公式 开始的索引 = (当前的页码-1)每页显示的条数
分页是“方言”
4.自动增长
CREATE TABLE stu(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);
删除
alter table stu modify id int
增加
alter table stu modify id int auto_increment
*

**操作表
1
创建
语法:
create table 表名(
列名1 数据类型1.
列名2 数据类型2,
. .
列名n 数据类型n
);
数据库类型:
1.int  
2. double(5,2)99999.99
3.data:只包含年月日 yyyy-mm-dd
4. datetime:日期 包含 yyyy-mm-dd HHH:mm:ss
5 timestamp:时间戳类型 yyyy-mm-dd HHH:mm:ss(不赋值 则自动赋值)
6.varchar
name varchar(20):最大字符

//复制表
create table 表名 like 被复制的表名
2
查询某个数据库中所有的表的名称 show tables;
查询表结构 desc 表名
3
修改表名 alter table 表名 rename to 新表名
修改表的字符集 alter table 表名 character set 字符集的名称
添加一列 alter table 表名 add 列名 数据类型
修改名称 类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型
删除列 alter table 表名 drop 列名;

4
drop table 表名
drop table if exists 表名

CRUD
1.
创建数据库 create databases;
创建数据库并判断是否存在 create database if not exists 数据库名称 character set 字符集名

查询数据库名称 show databases;
查询每个数据库的字符集:创建语句  show create database 数据库名称;

3
修改数据库的字符集名称 alter database 名称 character set 数据库名称

4
删除数据库 drop database 数据库名称

drop database if exist 名称;

5
查询当前正在使用该数据库 select database();
使用数据库 use 数据库名称;

1
添加外键
creat table 表名(

外键列
constraint 外键名称 foreign key 外键列名称 refernces 主表名称(主表列名称)
);
删除外键
alter table employee drop foreign key 外键名称
添加键
alter table employee add constraint 外键名称 foreign key 外键列名称 refernces 主表名称(主表列名称)
4 级联操作
alter table employee add constraint 外键名称 foreign key 外键列名称 refernces 主表名称(主表列名称)on updata cascade(级联更新) on delete cascade(级联删除);

数据库的设计

  1. 一对一
  2. 一对多
  3. 多对多

实现关系
1.一对多(多对一)
(在多的一方建立外键,指向一的一方的主键)

2.多对多

创建中间表(至少两个字段)
且这两个字段做完第三张表的外键,分别指向两张表的主键

3 一对一的关系
在任意的地方添加唯一外键指向另一方的主键(外键唯一-------unique)

案例 p507

2.数据库设计的范式

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

**分类:
第一范式(1NF)即数据库表的每一列都是不可分割的原子数据项
第二范式(2NF)在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)

函数依赖 :属性 属性组 学号==> 姓名 (学号,课程名称 )==>分数

完全依赖:(学号,课程名称 )==>分数 基于属性组 依赖全属性

部分依赖 ( 学号,课程名称 )==>姓名 基于属性组

传递依赖 学号==> 姓名 姓名==>系主任 a->b b->c 所以C传递依赖A

码: 如果一个属性或者属性组,被其他的所有属性所完全依赖,则称这个属性组(属性)为该表的码
例如 (学号 课程名称)

主属性 :码属性组中的所有属性
非主属性:除过码属性组的属性
第三范式(3NF)在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)**

数据库的备份和还原

1.命令行:
备份语法 mysqldump -u用户名 -p密码 数据库的名称 >保存路径
还原:
1 登录
2创建
3使用
4指向sql source

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值