SQL语言和MySQL数据库(三)

SQL语法详解 2
一.查询

1.排序查询
语法:order by 子句 [desc降序 asc升序默认]
order by 字段1 排序方式1,字段2 排序方式;

SELECT * FROM student ORDER BY math DESC;
SELECT * FROM student ORDER BY math DESC,english DESC;

2.聚合函数:将一列数据作为一个整体,进行纵向计算。
count(列名): 计算个数 一般选择非空的列或count(*);
max: 计算最大值; min: 计算最小值; sum: 计算和; avg: 计算平均值;
注意事项:聚合函数的计算,排除null值。
解决方案:选择非空的列 或者 ifnull函数

SELECT COUNT(IFNULL(english,0)) FROM student;

3.分组查询
语法:group by 分组字段;
注意事项:
分组之后查询的字段是分组字段和聚合函数;
where和having的区别:where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足,则不会查询出来;where后不可以跟聚合函数,而having可以进行聚合函数的判断。

4.分页查询
语法:limit 开始的索引,每页查询的条数;这是MySQL的方言。
公式:开始的索引=(当前页码数-1)*每页显示的条数;

SELECT id,NAME,age,sex,math,english FROM student LIMIT 0,3;  -- 第一页
SELECT id,NAME,age,sex,math,english FROM student LIMIT 3,3;  -- 第二页
SELECT id,NAME,age,sex,math,english FROM student LIMIT 6,3;  -- 第三页
二.约束

对表中的数据进行限定,保证数据的正确性、有效性、完整性。
分类:主键约束 primary key 、非空约束 not null 、唯一约束 unique 、外键约束 foreign key。
1.非空约束
创建表时添加非空约束

Cerate table stu(
	Id int,
	Name varchar(20) not null
);

创建表完成后添加约束

Alter table stu modify name varchar(20) not null;

删除name的非空约束

Alter table stu modify name varchar(20);

(2)唯一约束 unique
创建表时添加唯一约束

Create table stu1(
	Id int;
	Phone_number varchar(20) unique
);

删除唯一约束(比较特殊)

Alter table stu1 drop index phone_number;

在创建表之后,添加唯一约束

Alter table stu1 modify phone_number varchara(20) unique;

(3)主键约束 primary key
注意:非空且唯一、一张表只能有一个唯一字段作为主键,主键就是表中记录的唯一标识
在创建表时添加主键

CREATE TABLE stu(
	Id INT PRIMARY KEY,
	Name VARCHAR(20)
);

删除主键

alter table stu drop primary key;

创建完表之后添加主键

 alter table modifu id int priamary key;

(4)自动增长
如果某一列是数值类型,使用auto_increment 可以自动完成增长

CREATE TABLE stu(
	Id INT PRIMARY KEY AUTO_INCREMENT,
	Name VARCHAR(20)
);
Insert into stu values(null, ‘jack’);

删除自动增长

 alter table stu modify id int;

添加自动增长

alter table stu modify id int auto_increment;

(5)外键约束 foreign key
让表与表之间产生关系,从而保证数据的正确性
添加外键

Create table 表名称(
·····
外键列,
Constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);

删除外键

 alter table employee drop foreign key 外键名称;

表创建后添加外键

alter table employee add constraint 外键名称 foreign key (外键列名称) references 主表名称 (主表列名称);

级联操作 :
级联更新 ON UPDATE CASCADE
级联删除 ON DELETE CASCADE 存在弊端、危险,谨慎使用

-- 添加级联操作
ALTER TABLE 表名称 ADD CONSTRAINT外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值