MySQL基础之?表连接、约束、外键、分组、分页、排序、唯一索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL基础之?表连接、约束、外键、分组、分页、排序、唯一索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4939字,纯文字阅读大概需要8分钟。
内容图文
1.重要的重复:键的数据类型
1)数字相关
tinyint 255int 65535
bigint 42亿
decimal 十进制小数,实际是字符串保存,有精度的小数。
float 浮点型 保留有限位小数
double 双精度 保留双倍有限位小数
2)字符相关
char 固定长度,查询速度快,节约时间 最长255个字节varchar 可变长度 节约空间 最长255个字符
text 文本型 最长:65535个字符
3)时间
date,time,datetime,timestamp4)二进制:
blob5)枚举、set
enum(‘xl’,‘xxl’,‘xxxl’)set(‘a‘,‘b‘,‘c‘,‘d‘) # 任意组合
2.sql操作
(1)对数据库的操作
1)查看数据库
show databases;2)打开数据库:
use (数据库名);3)创建数据库
create database test default charset utf8;4)删除数据库
drop databases test;5)查看数据库下所有的表:
show tables;(2)对表的操作
1)创建表
create table student(id int auto_increment primary key,
name varchar(12) not null,
info varchar(22)) engine=innodb charset=utf8;
2)查询表
select * from student;3)查看表:
desc student; # 表结构show create table class \G; # 建表的信息
4) 清空表:
保留自增id号:delete from student;不保留自增号:truncate table student;
5) 彻底删除表:
drop table student;6) 修改表
alter table student auto_increment = 1;(3)对行的操作:
增删改查:
insert into student(name,info) values(‘tom‘,‘‘);#一次插入多个值:
insert into user(name,age) values(‘tom‘,22),(‘jim‘,23),(‘tomas‘,18),(‘jerry‘,19);
# 将临时表插入实体表
insert into t2(name) select name from user; # 修改内容
update student set name=‘‘,info=‘‘ where name = ‘‘;
update user set age = 29 where age = 18; # 查询的条件
select * from user where age between 18 and 22; # 综合查询
select * from user where age > 17 and name like ‘t%‘;
select name as s_name,age, 20 from user;
select name as s_name,age, ‘avg_20‘ from user; select * from user order by uid limit 3;
select * from user order by age desc limit 3;
3、约束和条件查询
(1)主键约束
create table score(id int auto_increment not null,
student_id int not null,
class_id int not null,
score_num tinyint,
pimary key(id),
(2)外键约束
constraint fk_stu_cls foreign key (class_id) references class(cid)(3)唯一约束
unique uq_std_cls_id (student_id, class_id))engine=innodb default charset=utf8
(4)自增设置步长
1)修改会话,局部变量,只影响当前绘画(登录的用户),常用。默认为1
show session variables like ‘auto_incre%‘set session auto_increment = 2
2)修改全局,影响所有的会话。
show globle variables like ‘auto_incre%‘set globle auto_increment = 2
(5)特殊的外键:
1)一对一
外键加上唯一索引,就是一对一的关系。2)一对多
自带支持3)多对多
双向都有一对多关系,就是多对多关系。这种情况下,为了操作方便,会建立一张中间表,记录两表的关系。
中间表存储两个表的id,建立外键约束,如果需要,可以加唯一索引,将两个id加入。
(6)条件语句
1)分页
取前10行结果select * from student limit 10;
从第一条记录开始,取前10条
select * from student limit 0,10;
取第一条
select * from student limit 0 1;
取第二条
select * from student limit 1 1;
2)通配符
查询学生表中,以t开头的名字的学生select * from student where name like ‘t%‘;
查询以nd结尾的名字的学生
select * from student where name like ‘%du‘
查询由t开头的,两个字符组成的名字
select * from student where name like ‘t_‘;
3)排序
默认升序,从小到大select * from student order by id;
可设置为倒序,即从大到小
select * from stduent order by id desc;
4)分组
默认的查询都是一个分组,查询的结果必须是一个聚合函数:sum,avg,count,max,min等,或聚合的列,即跟group by后的列,是一对一的关系。
select count(id) from score where score_num > 60 group by id having count(id) > 1
mysql5.7版本,新增sql_mode=only_full_group_by,可以关闭,但不建议!
4、表连接
(1)左右连接 join
1)内连接
隐藏有null值的行2)外连接
左外连接 left join 全部显示左边的表的列右外连接 right join 全部显示右边的表的列
(2)上下连接 union
1)去掉重复内容
union
2)不去重
union all
MySQL基础之?表连接、约束、外键、分组、分页、排序、唯一索引
标签:信息 reference 一个 table 查看 max 连接 类型 avg
本文系统来源:https://www.cnblogs.com/funyou/p/12181507.html
内容总结
以上是互联网集市为您收集整理的MySQL基础之?表连接、约束、外键、分组、分页、排序、唯一索引全部内容,希望文章能够帮你解决MySQL基础之?表连接、约束、外键、分组、分页、排序、唯一索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。