1.约束
1.主键约束
`id` int PRIMARY KEY,
`name` varchar not null,
primary key(`id`) using btree
2.外键约束
FOREIGN KEY(`cid`) REFERENCES `c_out_users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
3.非空约束
NOT NULL
4.check 约束 mysql不支持
2.数据库的完整性
1.实体完整性(主键) 搜索 唯一
2.外键的完整性
3.用户自定义完整性 check约束
单表
1.列名 DISTINCT
2.运算 + - * / % CONCAT
SELECT id+1 from text
SELECT id+-1 from text
SELECT `name`+'1' from text
SELECT * from text
SELECT t.id-t.price from text t;
SELECT id*price*8 from text;
SELECT id/price from text;
SELECT text.id%text.money from text
SELECT CONCAT(id,name) from text
3.条件
1.逻辑
1.and 并且 两个条件都满足
SELECT text.id,text.`name`,text.money
FROM text WHERE text.`name` ='小明' AND text.money=2;
2.or 或 两个条件满足其中之一就成立 true
SELECT text.id,text.`name`,text.money
FROM text WHERE text.`name`='小明' OR text.money=2;
3.not 非 表示否定
SELECT text.id,text.`name`,text.money
FROM text WHERE text.`name`='小明' OR not text.money=2;
2.Between and 在 ...之间
SELECT text.id,text.`name`,text.money
FROM text WHERE id BETWEEN 2 and 6;
3.IN 在...内 具体的值,类比数组,不是范围,查看的是2和4的内容
SELECT text.id,text.`name`,text.money
FROM text WHERE id IN(2,4);
4.IS
SELECT text.id,text.`name`,text.money
FORM text WHERE SEX IS NULL;
4.模糊查询
like
1.右侧不定
SELECT text.id,text.`name`,text.money
FROM text WHERE name LIKE '大%'
2.左侧不定
SELECT text.id,text.`name`,text.money
FROM text WHERE name LIKE '%黑'
3.左右不定
SELECT text.id,text.`name`,text.money
FROM text WHERE name LIKE'%黑%'
5.排序
limit 0, 10
begin 0 开始的记录天数
size 10 每页大小
DESC 降序
ASC 升序
SELECT text.id,text.`name`,text.money
FROM text OREDR BY id DESC LIMT 60,10;
6.聚合函数
count 计数
sum 和
avg 平均
MAX
MIN
SELECT COUNT(id) from text;
多表
一对一
身份证
一对多
Teacher - Student
放射状
多对一
Student - Teacher
放射状
多对多
交叉状
Student - Teacher
Student - Teacher
创建第三张表
1.自然连接
等值连接,会把相同的部分抽取出来
select * from goods1 natural join goods2;
2.交叉连接
3X3 交叉 -》笛卡尔积
selec * from goods1,goods2;
阅读(1349) | 评论(0) | 转发(0) |