如何建网站教程,wordpress portfolio 缩略图,多网合一网站,深圳小程序开发官网文章目录 DML数据操作语言1、新增记录2、删除记录3、修改记录 DQL数据查询语言1、查询记录2、条件筛选3、排序4、函数5、分组条件6、嵌套7、模糊查询8、limit分页查询 集合操作union关键字和运算符in关键字any关键字some关键字all关键字 联合查询1、广义笛卡尔积2、等值连接3、… 文章目录 DML数据操作语言1、新增记录2、删除记录3、修改记录 DQL数据查询语言1、查询记录2、条件筛选3、排序4、函数5、分组条件6、嵌套7、模糊查询8、limit分页查询 集合操作union关键字和运算符in关键字any关键字some关键字all关键字 联合查询1、广义笛卡尔积2、等值连接3、外连接4、内连接自连接 常用SQL总结SQL分类DDL - 数据定义语言DML - 数据操作语言DQL - 数据查询语言TPL - 事务处理语言列的约束常用SQL语句DCL - 数据控制语言 MySQL基础知识DDL、DML、DQL、DCL及TPL的使用 DDL用于创建、修改和删除数据库及表DML执行数据的增删改操作DQL主要用于数据检索包括基本查询、条件筛选、排序、分组、嵌套查询等功能DCL负责权限管理如授权和撤销访问权限TPL处理事务确保数据操作一致性。SQL关键词如INSERT, DELETE, UPDATE, SELECT, WHERE, ORDER BY, GROUP BY, UNION, IN, LIKE, LIMIT以及事务控制语句BEGIN, COMMIT, ROLLBACK等构成核心操作集。表约束如主键、唯一、非空和外键保障数据完整性。常用SQL如SHOW DATABASES, USE, SHOW TABLES等方便数据库和表的管理。
SQL分类
DML数据操作语言
操作的是表中的数据信息
1、新增记录
insert into 表名 (列名, ......, 列名) values (值, ......, 值);注意
如果新增全部列可以省略表名后的括号及内容此时values后的值的个数、类型、顺序要与表中列保持一致。若想要一条insert语句新增多个记录每个 (值, …, 值) 之间用逗号隔开。
2、删除记录
delete from 表名 [where ....] ;没有where条件会删除表中所有数据
3、修改记录
update 表名 set 列值, ... , 列值 [where ...] ;没有where条件会将对应的列的数据全部都修改
DQL数据查询语言
1、查询记录
select 列名, ... , 列名 from 表名 [where ...] ;需要起别名使用as关键字 列名as 别名
去重使用关键字distinct
根据列去重复如果有一样的列信息将一样的信息合并行数可能会减少。
distinct 列1,列2 两个列以上的会当作一个整体整体一样的才去重否则全部显示。
2、条件筛选
用来筛选符合条件的记录行并不是控制显示的列。
按照某个列或某些条件进行筛选
使用where关键字其后可以跟
比较运算符、、 、、!、 算术运算符、-、*、/逻辑运算符and、or、not如果and和or同时出现and优先级更高[not] between ... and ...[not] in (... , ...)[not] like %xxx_% 匹配0~n个字符_ 仅匹配一个字符
3、排序
order by 列名 asc/desc连接在查询语句后先筛选再排序asc 升序 默认
desc 降序
联合排序
order by 列名1, 列名2按书写顺序依次排序不同的列可以有不同的排序规则
4、函数 MySQL的函数都有返回值但不一定都有参数列表。 函数直接放置在SQL语句中相当于调用可以放置在 查询中用来显示的部分select 函数(列) from 表名;条件筛选where的后面
5、分组条件
group by 列
一旦搭配了分组条件select能展示的信息就只有两种
分组条件按什么分组就可显示什么聚合函数结果就剩一个值
查询时分组了查询的行数会减少。
比如按班级分组统计每个班的人数那么原来可能有多个班级数据一个班级可能又有多条学生数据但现在查询出来就一个班级一条数据统计着每个班级的人数。
先分组还是先筛选条件
先筛选后分组where group by先分组再筛选group by having先筛选一部分后分组分完组再筛选符合条件的where group by having
优先级where group by having order by
6、嵌套
一个完整的SQL语句中嵌套了另一个完整的SQL语句用括号括起来优先级更高
嵌套可以将一个查询的结果当作另一个查询的条件来使用同一张表格可以将查询的结果当作一张表格在这个表格的基础上再次查询 注意在将结果当作表格时需要给这个表格起别名才能用表别名不需要as关键字空格即可嵌套将一个查询结果当作条件时使用的表格可以不是同一张将另外一张表格查询的信息当作当前表格的查询条件。即与第1点不同在于是可以不同表格
7、模糊查询
使用like关键字
% 表示任意 0 个或多个字符。
_ 表示任意单个字符。
8、limit分页查询
语法select * from xxx limit a,b;
a想要显示的起始行索引偏移量从0开始包括此行。 b想要显示的行数多少条记录。
集合操作union
用union连接两条查询语句将两个查询结果进行合并是那种上下拼合的效果
要求前后两个查询子集的列数一致对应的类型没有要求拼接后显示的列名是前一个查询子集默认的列名
union和union all的区别
union 合并后做去重复的处理性能比较慢如果有重复元素记录的是第一次出现的那一行。union all 将两个查询到的子集直接合并不做任何处理性能比较快。
关键字和运算符
in关键字
in() 括号内是待查询的子集满足下面一个即可
常量固定值另一条SQL语句查询出来的结果
默认以进行比较
以下三个关键字使用与in相似查询是否满足子集中的条件区别在于不允许写固定值只允许写SQL语句通过嵌套来获取子集。
any关键字
满足查询子集中的某一个即可
some关键字
与any一样
all关键字
满足查询子集中的全部才可以
联合查询
1、广义笛卡尔积
将两张表格或多张表格进行无条件的拼接。(即使两张表格没有关系也可以进行拼接)
语法select * from A , B
列的个数 A和B表之和A数据在左边显示B数据在右边显示按上述语法
行的个数 A和B表乘积
2、等值连接
语法select * from A , B where 条件
在拼接后的一张大表格的基础上进行了where的筛选 - 等值连接
在笛卡尔积的基础上进行了where条件筛选只不过筛选条件都是按照值相等来进行的。
拼接后相当于在一张大的表格中挑选有用的记录性能比较慢。
3、外连接
外连接分为左外连接和右外连接。
语法select * from A left/right [outer] join B on 条件
可省略outer关键字 两张表格A和B 谁的数据在左边显示 A和B表格出现的顺序决定了 谁在左边 谁在右边 A表格先出现A左边显示 B表格后出现B右边显示 left和right来决定以哪一个表格的数据作为基准 作为基准的表格数据必须全部显示出来 非基准的表格按照on条件与之拼接若找到则正常显示若找不到满足条件的则显示 null。
因此外连接查询结果有可能比等值连接的最终结果多一部分数据。
4、内连接自连接
语法select * from A inner join B on 条件
特点
查询出的结果与等值连接的结果一致。内连接不分左右不能省略inner关键字。A和B是可以不同的两张表格。A和B也可以是相同的一张表格但必须给表格起别名可能还需要当前的表格有一定的设计。
常用SQL
# 显示有哪些database
show databases; #使用哪个数据库
use database名字;# 显示当前数据库有哪些table
show tables;# 查询数据库的字符集
select schema_name, default_character_set_name from information_schema.schemata where schema_name 查询的数据库名;# 查询表格信息
show table status from 数据库名 like 表名;#查看表有什么约束
desc 表名;
show keys from 表名;
show create table 表名;总结
SQL分类
DDL (Data Definition Language)用于定义数据库对象如创建、修改、删除数据库或表。DML (Data Manipulation Language)用于操作表中的数据包括插入、更新和删除。DQL (Data Query Language)主要用于查询数据即SELECT语句。DCL (Data Control Language)用于控制用户权限如GRANT和REVOKE命令。TPL (Transaction Processing Language)用于处理事务确保数据操作的完整性和一致性。
DDL - 数据定义语言
创建数据库CREATE DATABASE创建表CREATE TABLE修改表结构ALTER TABLE删除表或数据库DROP TABLE, DROP DATABASE数据类型如INT, VARCHAR, DATE等。
DML - 数据操作语言
插入记录INSERT INTO删除记录DELETE FROM更新记录UPDATE
DQL - 数据查询语言
查询记录SELECT条件筛选WHERE排序ORDER BY函数如COUNT(), SUM()等。分组GROUP BY嵌套查询IN, ANY, ALL模糊查询LIKE分页查询LIMIT集合操作UNION
TPL - 事务处理语言
事务特性原子性(Atomicity), 一致性(Consistency), 隔离性(Isolation), 持久性(Durability)事务操作BEGIN, COMMIT, ROLLBACK隔离级别SERIALIZABLE, REPEATABLE READ, READ COMMITTED, READ UNCOMMITTED
列的约束
主键约束PRIMARY KEY唯一约束UNIQUE KEY非空约束NOT NULL检查约束CHECK (MySQL中不常用)外键约束FOREIGN KEY
常用SQL语句
查看数据库SHOW DATABASES使用数据库USE查看表SHOW TABLES查看表信息SHOW TABLE STATUS, DESCRIBE, SHOW KEYS, SHOW CREATE TABLE
DCL - 数据控制语言
用户管理创建、修改、删除用户权限管理GRANT, REVOKE查看权限SHOW GRANTS修改密码UPDATE mysql.user删除用户DROP USER
这些语言和命令构成了MySQL的核心功能涵盖了从数据建模到数据操作、数据查询和数据安全性管理的各个方面。掌握这些知识能够帮助你有效地管理和操作数据库。
相关文章 《数据库管理的艺术MySQLDDL、DML、DQL、DCL及TPL的实战应用上数据定义与控制》