SQL数据库操作之简单操作命令
MySQL数据库操作的命令之简单语法汇总
SQL由两部分组成:数据操作语言(DML),数据定义语言(DDL)
DML:
DDL:
- create database (新建数据库)
- alter database (修改数据库)
- create table (新建表)
- alter table (修改表)
- drop table (删除表)
- create index (创建索引)
- drop index (删除索引)
语法分析:
select语法
- select 列表名 from 表名 从数据库中查询某一列的值
- (select * from 表名) 从数据库中查询所有
- select distinct 列表名 from 表名 关键词 DISTINCT 用于返回唯一不同的值(去掉重复的值)
select 列表名 from 表名 where 列表名 运算符 值 (值为字符,用单双引号都可以,值为数值,不需要引号)
select 列表名 from 表名 where 列表名 运算符 值 and/or 列表名 运算符 值
运算符 and or (and 全真为真 or 全假为假)
and: 若第一个条件和第二个条件都成立,则and运算符显示一条记录
or: 若多个条件中只要有一个条件成立,则or运算符显示一条记录- select 列表名 from 表名 order by 列表名
select 列表名 from 表名 order by 列表名 DESC
order by 语句根据指定的列 对结果进行排序(默认升序排序 ASC),降序排序 使用关键字DESC
- insert into 语法
- insert into 表名 values (值1,值2,…..) 向表中插入新的行(值全部要根据列 完整填写)
- insert into 表名(列1,列2,…)values(值1,值2,….) 指定要插入数据的列
- update语法
- update 表名 set 列名 = 新值 where 列名 = 某值 (修改表中的某一列的数据)
- update 表名 set 列名1 = 新值,列名2 = 新值,… where 列名 = 某一值 (更新某一行中的若干列数据)
- delete语法
- delete from 表名 where 列名 = 值 (删除某一行)
- delete from 表名 / delete * from 表名 (删除所有行)
- like 操作符语法
- select * from 表名 where 列名 like ‘’(模式 也就是 通配符)
- in 操作符语法
- select 列名 from 表名 where 列名 in (value1,value2,….) 筛选列名值存在value值中的数据
- between操作符语法
- select * from 表名 where 列名 between value1 and value2
- BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。(部分会包括临界值)
- Alias 操作符语法(别名)
- select 列名 from 表名 AS 表别名 (指定表的别名)
- select 列名 AS 列别名 from 表名 (指定列的列名)
- 使用 SQL,可以为列名称和表名称指定别名(Alias)
- Join 联表查询
- join: 如果表中有至少一个匹配,则返回1行 (加上ON)
- left join :即使右表中没有匹配,也从左表返回所有的行
- right join : 即使左表中没有匹配,也从右表返回所有的行
- full join : 只要其中一个表存在匹配,就返回行 (也称full outer join 外连接)
- inner join : 内连接 (inner join 表2 ON)
- select * from 表1,表2 where 表1.主键 = 表2.key(表1的主键作为表2的外键 值是一样的)
- select * from 表1 inner join 表2 ON 表1.主键 = 表2.key
- SELECT 列名s FROM 表1 INNER JOIN 表2 ON表.列名=表2.列名
- SELECT 列名s FROM 表1 left join 表2 ON表.列名=表2.列名
- SELECT 列名s FROM 表1 right join 表2 ON表.列名=表2.列名
- SELECT 列名s FROM 表1 full join 表2 ON表.列名=表2.列名
- union 操作符语法
- UNION 操作符用于合并两个或多个 SELECT 语句的结果集
- UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
- select 列名s from 表1 union select 列名s from 表2
- UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名
- UNION 命令只会选取不同的值(若两个表中有相同的数值,只取一个 不会全部显示)
- UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。(相同的数值也会打印出来)
- create database 语法
- create database name (创建数据库)
- create table
- CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
….
) - 用于创建数据库中的表
- CREATE TABLE 表名称
- SQL约束
- not null 强制列不接受 NULL 值 (如果不向字段添加值,就无法插入新记录或者更新记录)
- union 约束唯一标识数据库表中的每条记录 最后加上UNIQUE (列名)
- primary key 主键 主键必须包含唯一的值,主键列不能包含 NULL 值,每个表都应该有一个主键,并且每个表只能有一个主键。
- foreign key
- check
- default
- 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
- 如果需要命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束(CONSTRAINT 取名 UNIQUE (列名1,列名2))
- 当表已被创建时,如需在 “某一” 列创建 UNIQUE 约束 (ALTER TABLE 表名 ADD UNIQUE (Id_P))
- 如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束 (ALTER TABLE 表名 ADD CONSTRAINT 取名 UNIQUE (列名1,列名2))
- 撤销 UNIQUE 约束 (ALTER TABLE 表名 DROP INDEX 取名)
- MySQL数据类型
- 文本–》text类型

- 数字–》number类型

- 时间–》date类型

- 文本–》text类型
- SQL函数
- 合计函数—aggregate函数

- 纯量函数—scalar函数

- 合计函数—aggregate函数
- 运算符与通配符
| 操作符 | 描述 | 通配符 | 描述 | |
|---|---|---|---|---|
| = | 等于 | % | 替代一个或多个字符 | |
| <> | 不等于(!=) | _ | 仅替代一个字符 | |
| > | 大于 | [charlist] | 字符列中的任何单一字符 (like ‘[ALN]%’ 表示匹配以A L N来头的数据 ) | |
| < | 小于 | [^charlist] | 不在字符列中的任何单一字符 | |
| >= | 大于等于 | [!charlist] | 不在字符列中的任何单一字符 | |
| <= | 小于等于 | |||
| BETWEEN | 在某个范围内 | |||
| LIKE | 搜索某种模式 |
需要注意的点
- group by 与 where 一起使用时候: where 一定在 group by 之前
- having 只能在 group by 后面,对分组后的结果进行筛选 (使用having的前提条件: 分组)
- where 后的表达式 不允许使用 聚合函数
- having 可以使用聚合函数
- where group by having order by 执行顺序
- order by 默认升序排序,后面必须是要排序的列名,也可以多个列名
- group by 分组 必须有聚合函数(sum(),count(),avg())配合使用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 筱茗辰!