MySQL——基本语法

http://www.w3school.com.cn/sql/sql_union.asp

一、约束
https://blog.csdn.net/w_linux/article/details/79655073

非空约束(not null) :不需为空
唯一性约束(unique)  : unique约束的字段,具有唯一性,不可重复,但可以为null
主键约束(primary key) PK  :给某个字段添加主键约束之后,该字段不能重复也不能为空,还会默认添加”索引——index”
外键约束(foreign key) FK  : 某个字段添加外键约束之后,该字段称为外键字段,外键字段中每个数据都是外键值

二、创建数据库、表,增删该查
https://www.cnblogs.com/heyangblog/p/7624645.html
创建数据库 create database dataname;
在这里插入图片描述
创建表 create table Student(
-> Sno int(4) unsigned primary key comment ‘学号’,
-> Sname varchar(16) unique comment ‘姓名’,
-> Ssex enum(‘男’,‘女’) comment ‘性别’,
-> Ssage tinyint(3) unsigned comment ‘年龄’,
-> Sdept varchar(20) comment ‘所在系’
-> );
在这里插入图片描述
插入信息:INSERT INTO Student VALUES (1002, ‘李四’, ‘男’, 20, ‘英语’);
在这里插入图片描述insert Student into set 字段=‘字段值’;
在这里插入图片描述
修改字段:update Student set 字段=‘字段值’ where 条件;
在这里插入图片描述查询select

select*from 表名 [where 条件];

eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来

select field1,field2,…fieldn… from 表名 [where 条件];

eg:select id,name,age from students;//查询 students 表中所有记录, 只显示出 id,name,age三个字段的值

查询不重复的字段 select distinct 字段 from 表名;
在这里插入图片描述
带条件查询 select 字段 from 表名 where 条件;
where后面的条件可以用>、<、>=、<=、!=等多种比较运算符,多个条件之间可以用or、and等逻辑运算符
在这里插入图片描述排序,限制
排序 select * from 表名 [where 条件] [ order by field1 [desc/asc],field2 [desc/asc]… ];
1.desc 降序排列,asc 升序排列
2.order by 后面可以跟多个不同的排序字段,每个排序字段都可以有不同的排序顺序。
3.如果排序字段的值一样,则相同的字段按照第二个排序字段进行排序。
4.如果只有一个排序字段,则字段相同的记录将会无序排列。
在这里插入图片描述
限制select … [limit 起始偏移量,行数];
在这里插入图片描述聚合
select 字段 fun_name from 表名 [where 条件] [group by field1,field2…] [with rollup] [having 条件];

eg:

1.fun_name 表示要做的聚合操作,也就是说聚合函数,常用的有 : sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
2.group by关键字 表示要进行分类聚合的字段。比如要按照部门分类统计员工数量,部门就应该写在group by 后面。
3.with rollup 是可选语法,表明是否对分类聚合后的结果进行再汇总
4.having 关键字表示对分类后的结果再进行条件过滤。
统计出所有人数
mysql> select count(1) from Student;
在这里插入图片描述按性别统计出人数,并按性别分组
mysql> select Ssex,count(1) from Student group by Ssex;
在这里插入图片描述
分组后再次统计出总人数
select Ssex,count(1) from Student group by Ssex with rollup;
在这里插入图片描述
按年龄统计分组select Ssage,count(1) from Student group by Ssage;
分组后在统计出人数大于两人的组select Ssage,count(1) from Student group by Ssage having count(1)>2;
在这里插入图片描述查询出最大年龄与最小年龄select max(Ssage),min(Ssage) from Student;
在这里插入图片描述
表连接分为内连接和外连接。
他们之间最主要的区别:内连接仅选出两张表中互相匹配的记录,外连接会选出其他不匹配的记录。
±-----±-------±-----±------±----------+
| Sno | Sname | Ssex | Ssage | Sdept |
±-----±-------±-----±------±----------+
| 1002 | 李四 | 男 | 20 | 英语 |
| 1003 | 王五 | 男 | 22 | 计算机 |
| 1004 | 赵六 | 女 | 20 | 英语 |
| 1005 | 钱七 | 男 | 21 | 计算机 |
| 1006 | 孙八 | 男 | 20 | 计算机 |
| 1007 | 李九 | 男 | 22 | 数学 |
| 1008 | NULL | 男 | 23 | NULL |
±-----±-------±-----±------±----------+
±----±----------+
| Cno | Cname |
±----±----------+
| 1 | 英语 |
| 2 | 高数 |
| 3 | 计算机 |
| 4 | 单片机 |
| 5 | java |
±----±----------+
±-----±----±------+
| Sno | Cno | Score |
±-----±----±------+
| 1002 | 1 | 90 |
| 1003 | 1 | 54 |
| 1003 | 2 | 62 |
| 1003 | 3 | 81 |
| 1003 | 4 | 80 |
| 1003 | 5 | 72 |
| 1003 | 6 | 88 |
| 1003 | 7 | 77 |
| 1003 | 8 | 67 |
| 1004 | 1 | 92 |
| 1005 | 1 | 53 |
| 1005 | 4 | 63 |
| 1005 | 7 | 77 |
| 1006 | 1 | 70 |
| 1006 | 2 | 82 |
| 1006 | 4 | 78 |
| 1006 | 6 | 68 |
| 1006 | 8 | 55 |
| 1007 | 2 | 76 |
| 1007 | 4 | 90 |
| 1007 | 6 | 89 |
| 1008 | 1 | 81 |
| 1008 | 2 | 48 |
±-----±----±------+
内连接
select 字段 from 表 where 条件;
在这里插入图片描述
外连接 分为左连接和右连接
左连接:包含所有左边表中的记录,甚至是右边表中没有和他匹配的记录。
右连接:包含所有右边表中的记录,甚至是右边表中没有和他匹配的记录。
外连接(左连接):
select 字段 from 表 left join 表 on 条件;

外连接(右连接):
select 字段 from 表 right join 表 on 条件;

IN/ONT IN 关键字
select [关键字] from [表] where 关键字 [not] in (查询域);
mysql> select Sno,Sname from Student
-> where Sno in (select Sno from SC group by Sno having count(Sno)>4); #查询选课数大于4门的同学,学号姓名。
±-----±-------+
| Sno | Sname |
±-----±-------+
| 1003 | 王五 |
±-----±-------+
1 row in set (0.00 sec)

删除delete语句delete from SC ;
delete from SC where Sno between 1004 and 1008; 删除学号在1004到1008之间的学生。
delete from SC; 删除所有表内容。
drop table SC; 删除表
drop database SC; 删除数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值