你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

一些SQL基础操作

2021/12/13 14:16:15

一.DDL–操作数据库和表

1.查询

SHOW DATABASES;

2.创建
创建数据库

CREATE  DATABASE  数据库名称;

创建数据库(判断,如果不存在则创建)

CREATE DATABASE IF NOT EXISTS 数据库名称;

3.删除
删除数据库

DROP  DATABASE  数据库名称;

删除数据库(判断,如果存在则删除)

DROP DATABASE IF EXISTS 数据库名称;

4.使用数据库
查看当前使用的数据库

SELECT DATABASE();

使用数据库

USE 数据库名称;

5.查询表
查询当前数据库下所有表名称

SHOW TABLES;

查询表结构

DESC 表名称;

6.创建表

CREATE TABLE 表名 (
   字段名1  数据类型1,
   字段名2  数据类型2,
   ...
   字段名n  数据类型n,
);

7.删除表
删除表

DROP TABLE 表名;

删除表时判断表是否存在

DROP TABLE IF EXISTS 表名;

8.修改表
修改表名

ALTER TABLE 表名 RENAME TO 新的表名;

添加一列

ALTER TABLE 表名 ADD 列名 数据类型;

修改数据类型

ALTER TABLE 表名 MODIFY 列名 新数据类型;

修改列名和数据类型

ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

删除列

ALTER TABLE 表名 DROP 列名;

二.DML-- 操作数据

1.删除数据

DELETE FROM 表名 [WHERE 条件];

2.添加数据
给指定列添加数据

INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...);

给全部列添加数据

INSERT INTO 表名 VALUES(值1,值2,...);

批量添加数据

INSERT INTO 表名(列名1,列名2,...) VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...)...;

3.修改数据
修改表数据

UPDATE 表名 SET 列名1=值1,列名2=值2,... [WHERE 条件];

三.DQL
1.基础查询
查询多个字段

SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;--查询所有数据

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

起别名

AS: AS 也可以省略

2.条件查询(WHERE)
语法:

SELECT 字段列表 FROM 表名 WHERE 条件列表;

条件:

在这里插入图片描述
3.排序查询(ORDER BY)

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] ...;

排序方式:
ASC : 升序排列 (默认值)
DESC :降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
4.分组查询(GROUP BY)

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

where和having的区别:
执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
可判断的条件不一样:where不能对聚合函数进行判断,having可以。
执行顺序:where>聚合函数>having
5.分页查询(LIMIT)

SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;

起始索引:从0开始
计算公式:起始索引=(当前页码-1)* 每页显示的条数
tips:
分页查询limit是MySQL数据库的方言
Oracle分页查询使用rownumber
SQL Server分页查询使用top
6.聚合函数

SELECT 聚合函数名(列名) FROM 表;
--null值不参与所有聚合函数运算

count、max、min、sum、avg

四.数据类型

在这里插入图片描述

五.约束

在这里插入图片描述
外键约束
添加约束

-- 创建表时添加外键约束
CREATE TABLE 表名(
  列名 数据类型,
  ...
  [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
);
-- 建完表之后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

删除约束

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称

六.多表查询

内连接

--隐式内连接
SELECT 字段列表 FROM 表1,表2... WHERE 条件;
--显式内连接
SELECT 字段列表 FROM 表1,表2 [INNER] JOIN 表2 ON 条件;

外连接

--左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
--右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

子查询