SQL基础知识
2021/11/24 19:41:51
本文主要是介绍SQL基础知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
DDL语法
A:对数据库进行定义
CREATE DATABASE database_name; // 创建一个名为database_name的数据库 DROP DATABASE database_name; // 删除一个名为database_name的数据库
B:对数据表进行定义
创建表结构
CREATE TABLE [table_name](字段名 数据类型,......)
修改表结构
//给表增加字段 ALTER TABLE 表名 ADD (字段名 字段类型(字段长度)); //修改字段名从A到B ALTER TABLE 表名 RENAME COLUMN 字段名A to 字段名B; //修改字段类型为float显示3位整数,1位小数 ALTER TABLE 表名 MODIFY (字段名 float(3,1)); //删除表字段 ALTER TABLE 表名 DROP COLUMN 字段名;
数据表常见约束
- 主键约束。主键起的作用是唯一标识一条记录,不能重复,不能为空,即 UNIQUE+NOT NULL。一个数据表的主键只能有一个。主键可以是一个字段,也可以由多个字段复合组成。
- 外键约束。外键确保了表与表之间引用的完整性。一个表中的外键对应另一张表的主键。外键可以是重复的,也可以为空。
- 唯一性约束。唯一性约束表明了字段在表中的数值是唯一的,即使我们已经有了主键,还可以对其他字段进行唯一性约束。需要注意的是,唯一性约束和普通索引(NORMAL INDEX)之间是有区别的。唯一性约束相当于创建了一个约束和普通索引,目的是保证字段的正确性,而普通索引只是提升数据检索的速度,并不对字段的唯一性进行约束。
- NOT NULL 约束。对字段定义了 NOT NULL,即表明该字段不应为空,必须有取值。DEFAULT,表明了字段的默认值。如果在插入数据的时候,这个字段没有取值,就设置为默认值。
- CHECK 约束,用来检查特定字段取值范围的有效性,CHECK 约束的结果不能为 FALSE
数据表设计原则
- 数据表的个数越少越好
- 数据表中的字段个数越少越好
- 数据表中联合主键的字段个数越少越好
- 数据表使用主键和外键越多越好
SELECT查询的基础语法
SELECT 字段名1,字段名2,... FROM 表名
起别名
//查出来的数据表头将会替换成别名 SELECT 字段名 AS 别名 FROM 表名
查询常数
//查询出别名字段下值都为 王者荣耀 SELECT '王者荣耀' AS 别名 FROM 表名
去除重复行
//该字段下多种结果的重复值,只保留其中一个 SELECT DISTINCT 字段名 FROM 表名
如何排序检索数据
- 排序的列名:ORDER BY 后面可以有一个或多个列名,如果是多个列名进行排序,会按照后面第一个列先进行排序,当第一列的值相同的时候,再按照第二列进行排序,以此类推。
- 排序的顺序:ORDER BY 后面可以注明排序规则,ASC 代表递增排序,DESC 代表递减排序。如果没有注明排序规则,默认情况下是按照 ASC 递增排序。我们很容易理解 ORDER BY 对数值类型字段的排序规则,但如果排序字段类型为文本数据,就需要参考数据库的设置方式了,这样才能判断 A 是在 B 之前,还是在 B 之后。比如使用 MySQL 在创建字段的时候设置为 BINARY 属性,就代表区分大小写。
- 非选择列排序:ORDER BY 可以使用非选择列进行排序,所以即使在 SELECT 后面没有这个列名,你同样可以放到 ORDER BY 后面进行排序。ORDER BY 的位置:ORDER BY 通常位于 SELECT 语句的最后一条子句,否则会报错。
约束返回结果的数量
//只需要给我返回5条数据就好了LIMIT 5 SELECT 字段名1,字段名2,... FROM 表名 LIMIT 5; 特殊版本: Oracle SELECT 字段名1,字段名2,... FROM 表名 WHERE ROWNUM <=5 ORDER BY 字段名 DESC
SELECT语句执行顺序
FROM > WHERE > GROUP BY > HAVING > SELECT的字段 > DISTINCT > ORDER BY > LIMIT
注:好的查询习惯就是SELECT你需要的字段名就行
数据过滤
通配符就是我们用来匹配值的一部分的特殊字符。这里我们需要使用到 LIKE 操作符。
//字段名 含有太这个字的数据 SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '%太%'
这篇关于SQL基础知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南