基于mysql数据库的基础知识二
来源:互联网 发布:scala编程思想 pdf下载 编辑:程序博客网 时间:2024/05/18 08:31
约束
约束直接在属性类型后面加上便可
主键约束 PRIMARY KEY (自主编号AUTO_INCREMENT)
唯一约束 UNIQUE KEY
默认约束 DEFAULT
外键约束 FOREIGN KEY
···························
1.主键约束
每张数据表只能 存在一个主键
主键保证记录的唯一性
主键自动为 NOT NULL
添加主键约束
如:ALTER TABLE persion(数据表名称) ADD CONSTRAINTPK_persion_id(系统自动生成的主键id名字、格式) PRIMARY KEY (id);
删除:persionDROP PRIMARY KEY;···························
保证数据完整性,一致性
表极约束:两个字段以上, 列极约束:某个字段
···························
2.外键约束
保持数据的完整性,一致性
实现一对一或是一对多的关系
要求:父表、子表用相同的存储引擎,唯一的数据表引擎,INNODB
外键列和参照列有相似的数据类型,若不存在则自动创建
这个是干嘛的呢??????
可以:pid SMALLINT UNSIGNED
添加约束外键
如:ALTER TABLE persion(数据表名称) ADD FOREIGNKEY(子表id) REFERENCES persion父表(id)
删除:··················
3.添加唯一约束
如:ALTER TABLE persion(数据表名称) ADDUNIQUE(username1,username2,...);
删除:ALTER TABLE persion DROP INDEXusername;
4.添加/删除默认约束
如:ALTER TABLE persion(数据表名称) SET/DROPDEFAULT
··································
子查询
可以返回标量,一行一列,或是子查询
求平均值
平均值=SELECT AVG(goods_price) FROMtdb_goods;
保留多少位
SELECT ROUND(ANG(goods_price),2) FROM tdb_goods;
子查询:
SELECT goods_id,goods_name,goods_price FROM tdb_goods WHEREgoods_price>=平均值
当使用自查询返回多个结果是要使用:AND,SOME,ALL连接语句
把查询到的记录插入到别的表中
INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goodsGROUP BY tdb_cates;
···············································
连接
tbl_name
数据表中赋予别名tbl_name AS name_alias
在子查询中子表就一定要赋予别名
连接类型
内连接 INNER
左外连接
右外连接
使用ON关键来设定连接条件,也可以使用WHERE来代替,过滤
1.内连接
SELECT goods_id,goods_name,cate_name
2.外连接
SELECT goods_id,goods_name,cate_name
SELECT goods_id,goods_name,cate_name
多表连接
SELECT goods_id,goods_name,goods_price,cate_name,brand_name FROMtdb_goods AS g
INNER JOIN tdb_goods_cates AS c ON g.cates_id=b.cates_id
INNER JOIN tdb_goods_brands AS b ONg.brand_id=b.brands_id
无限分类表设计
自身连接
父类--子类
SELECT s.type_id,s.type_name,p.type_name FROM tdb_good INNER JOINtdb_goods_type AS p ON s.parent_id=p.type_id;
父类--子类
多表删除
DELETE
(SELECT goods_id,goods_name FROM tdb_goods GROUP BY
WHERE
SELECT goods_id,goods_name FROM tdb_goods GROUP BY tdb_goods_nameHAVING count(goods_name)>=2;
···························
- 基于mysql数据库的基础知识二
- 基于mysql数据库的基础知识一
- 基于mysql数据库的基础知识三
- Mysql数据库的基础知识。
- mysql数据库的基础知识
- mysql数据库的基础知识
- MySQL数据库的基础知识
- Schemaless架构(二):Uber基于MySQL的Trip数据库
- Schemaless架构(二):Uber基于MySQL的Trip数据库
- springboot学习笔记(二):基于MySql数据库的JDBC操作
- mysql数据库的一些基础知识
- Spirng基础知识之基于属性文件链接MySQL数据库的配置
- MySQL数据库备份的基础知识大全
- 数据库基础知识(二)
- 数据库基础知识二
- 数据库基础知识(二)
- MYSQL基础知识总结(二)
- MySQL基础知识二
- 数据库试题
- Programming学习3_前端学习路线
- smb协议详解和samba服务的配置
- Maven
- 设计模式——原型模式
- 基于mysql数据库的基础知识二
- poj2096[Collecting Bugs] 又懂了一点期望概率DP
- JZOJ 5417 方阵
- spark调优第二篇:spark内存溢出还可能是你的driver memory的内存内存不够
- 运行django的时候出现127.0.0.1:8080 服务器拒绝访问
- iOS日志记录当前文件的堆栈、类名、函数名、行号及文件路径等信息
- ubuntu16.04 编译kinfu_remake-master错误集锦
- 基于箱子排序对一堆n组卡片进行排序(C++单链表描述)
- Leetcode 718. Maximum Length of Repeated Subarray