mysql基础查询

本章内容

1、掌握SQL中的约束

2、掌握单表查询的语法结构(重点)

3、掌握where条件(重点)

4、掌握分组查询(重点)

5、掌握聚合函数(重点)

6、掌握排序

7、掌握联合查询

约束的概念和分类

  • 约束的概念

    • 对表中的数据进行限定,保证数据的正确性、有效性、完整性!

  • 约束的分类

约束说明
PRIMARY KEY主键约束
AUTO_INCREMENT自动增长
UNIQUE唯一约束
NOT NULL非空约束
FOREIGN KEY外键约束
2.主键约束
  • 主键约束特点

    • 主键约束包含:非空和唯一两个功能

    • 一张表只能有一个列作为主键

    • 主键一般用于表中数据的唯一标识

  • 建表时添加主键约束

-- 标准语法
CREATE TABLE 表名(
    列名 数据类型 PRIMARY KEY,
    列名 数据类型,
    ...
);
​
-- 创建student表
CREATE TABLE student(
    id INT PRIMARY KEY  -- 给id添加主键约束
);
​
-- 添加数据
INSERT INTO student VALUES (1),(2);
-- 主键默认唯一,添加重复数据,会报错
INSERT INTO student VALUES (2);
-- 主键默认非空,不能添加null的数据
INSERT INTO student VALUES (NULL);
​
-- 查询student表
SELECT * FROM student;
-- 查询student表详细
DESC student;
  • 删除主键

-- 标准语法
ALTER TABLE 表名 DROP PRIMARY KEY;
​
-- 删除主键
ALTER TABLE student DROP PRIMARY KEY;
  • 建表后单独添加主键

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 PRIMARY KEY;
​
-- 添加主键
ALTER TABLE student MODIFY id INT PRIMARY KEY;
3.主键自动增长约束
  • 建表时添加主键自增约束

-- 标准语法
CREATE TABLE 表名(
    列名 数据类型 PRIMARY KEY AUTO_INCREMENT,
    列名 数据类型,
    ...
);
​
-- 创建student2表
CREATE TABLE student2(
    id INT PRIMARY KEY AUTO_INCREMENT    -- 给id添加主键自增约束
);
​
-- 添加数据
INSERT INTO student2 VALUES (1),(2);
-- 添加null值,会自动增长
INSERT INTO student2 VALUES (NULL),(NULL);
​
-- 查询student2表
SELECT * FROM student2;
-- student2表详细
DESC student2;
  • 删除自动增长

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型;
​
-- 删除自动增长
ALTER TABLE student2 MODIFY id INT;
  • 建表后单独添加自动增长

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;
​
-- 添加自动增长
ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;
4.唯一约束
  • 建表时添加唯一约束

-- 标准语法
CREATE TABLE 表名(
    列名 数据类型 UNIQUE,
    列名 数据类型,
    ...
);
​
-- 创建student3表
CREATE TABLE student3(
    id INT PRIMARY KEY AUTO_INCREMENT,
    tel VARCHAR(20) UNIQUE    -- 给tel列添加唯一约束
);
​
-- 添加数据
INSERT INTO student3 VALUES (NULL,'18888888888'),(NULL,'18666666666');
-- 添加重复数据,会报错
INSERT INTO student3 VALUES (NULL,'18666666666');
​
-- 查询student3数据表
SELECT * FROM student3;
-- student3表详细
DESC student3;
  • 删除唯一约束

-- 标准语法
ALTER TABLE 表名 DROP INDEX 列名;
​
-- 删除唯一约束
ALTER TABLE student3 DROP INDEX tel;
  • 建表后单独添加唯一约束

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;
​
-- 添加唯一约束
ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;
5.非空约束
  • 建表时添加非空约束

-- 标准语法
CREATE TABLE 表名(
    列名 数据类型 NOT NULL,
    列名 数据类型,
    ...
);
​
-- 创建student4表
CREATE TABLE student4(
    id INT PRIMARY KEY AUTO_INCREMENT,
    NAME VARCHAR(20) NOT NULL    -- 给name添加非空约束
);
​
-- 添加数据
INSERT INTO student4 VALUES (NULL,'张三'),(NULL,'李四');
-- 添加null值,会报错
INSERT INTO student4 VALUES (NULL,NULL);
  • 删除非空约束

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型;
​
-- 删除非空约束
ALTER TABLE student4 MODIFY NAME VARCHAR(20);
  • 建表后单独添加非空约束

    -- 标准语法
    ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL;
    ​
    -- 添加非空约束
    ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;

练习:

创建员工表(编号、姓名、性别、年龄、籍贯、职位、身份证号)

要求编号为主键、自增长

其余所有字段非空

身份证唯一

添加5行数据作为测试

单表查询

查询语法结构

select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件
order by 排序 limit 分页限定

查询表所有数据

*代表所有字段

select * from 表;

查询指定列

select 列1,列2... from 表;

别名查询

SELECT 列名1,列名2,... AS 别名 FROM 表名;
或
SELECT 列名1,列名2,... 别名 FROM 表名;

where子句

条件分类

符号功能
>大于
<小于
>=大于等于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN ... AND ...在某个范围之内(都包含)
IN(...)多选一
LIKE 占位符模糊查询 _单个任意字符 %多个任意字符
IS NULL是NULL
IS NOT NULL不是NULL
AND 或 &&并且
OR 或 ||或者
NOT 或 !非,不是

分页查询

limit 关键字

select ... from 表 limit 起始位置,长度;

distinct关键字

去掉重复的值

select distinct 列名 from 表

--distinct 后面有多列,就是多列的组合 不会重复

GROUP BY 语句

按照某一字段或多个字段进行分类,将数据进行合并,having子句可以对分组后的结果进行筛选

select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组后的条件

7、查询每种品牌里卖的最好的颜色

SELECT brand, color, MAX(sales) AS best_color_sales FROM Cars GROUP BY brand;

聚合函数

函数名功能
count(列名)统计数量(一般选用不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值

Order by 子句

对一个字段或多个字段进行排序

排序类型:

  • 升序 asc

  • 降序 desc

union/union all

合并两个查询结果集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值