数据库(基本操作)

前言:数据库分为库和表,库包括表

1.库操作
1.新增库(create)
2.查看所有的数据库(show)
3.更新数据库(alter)
4.删除数据库(drop)
2.表操作
3.表内操作
1.检索(SELECT )
2.增加(INSERT INTO VALUE)
3.删除(DELETE FROM TABLE)
4.更新(UPDATE TABLE SET )
5.分页(LIMIT A OFFSET B)
TIPS:

前言:数据库分为库和表,库包括表

1.库操作

1.新增库(create)

库选项:用来约束数据库,分为两个选项:字符集设定和校对集设定

字符集设定:charset/character set 具体字符集(数据存储的编码格式);常用的字符集:GBK和utf8

校队集设定:collate 具体校队集(数据比较的规则)

create database 数据库名字 [库选项];

2.查看所有的数据库(show)

show database;
show databases like 'pattern';    --pattern是匹配模式
%:表示匹配多个字符
_:表示匹配单个字符
show create databases; 查看数据库的创建语句 就是返回创建时候的语句

3.更新数据库(alter)

 数据库的名字不可修改,数据库的修改仅限选项:字符集和校对集

alter databases name [];

4.删除数据库(drop)

drop database 数据库的名字;

2.表操作

新增数据表(create)

  1. database 数据库名.表名()
  2.  database  A.B(
    ID VARCHAR(10),
    AGE INTT
    )CHARSET UTF8;

查看数据表表(show)

  1. 查看所有表:show tables;
    2.查看部分表(模糊匹配):show tables like ‘pattern’;
    3.查看表的创建语句:show create table 表名;
    4.查看表结构:查看表中的字段信息
    desc columns from 表名;
    describe columns from 表名;
    show columns from 表名;
    desc/describe/show columns from 表名;

修改数据表

表本身

修改表名(rename)

    • rename table 老表名 to 新表名
    •  2.修改表选项:字符集,校队集和存储引擎(alter)
    1.  table 表名 表选项 [=] 值;  --其中[]表示其中的内容可以省略。

  3.删除表(drop)

删除数据表
drop table 表名1,表名2....; --可以一次性删除多张表

 2.修改字段

新增

  1.  table 表名 add [column] 字段名 数据类型 [列属性][位置];

修改


  • alter table 表名 modify 字段名 数据类型 [属性][位置];

重名


  • alter table 表名 change 旧字段 新字段名 数据类型 [属性][位置];

删除


  • alter table 表名 drop 字段名;

3.表内操作

1.检索(SELECT )

SELECT *
FROM  A
JOIN  B  ON A.ID=B.ID
WHERE A.ID=1883
GROUP BY A.NAME
HAVING NAME='ljh'
ORDER BY A.NUMBER

2.增加(INSERT INTO VALUE)

INSERT INTO A() VALUE ()
INSERT INTO A() SELECT A

3.删除(DELETE FROM TABLE)

DELETE FROM A WHERE

4.更新(UPDATE TABLE SET )

UPDATE A() SET  WHERE

5.分页(LIMIT A OFFSET B)

SELECT *
FROM A
LIMIT 3 OFFSET 0;
/*将所有数据 分成 每页三份 并且显示 第0页*/

TIPS:

多表查询和连接查询有什么区别?

  •  多表相当于几张表一起查询相同符合条件的结果,最后结果集进行交集。但是会引起笛卡尔积的问题。而连接查询是先将表连接成一张表在进行查询。

GROUP BY 和 HAVING 的区别是?

    • GROUP BY 子句用于将筛选出来的数据按照一个或多个列的值进行分组,生成多个分组,每个分组包含相同值的行。 这允许您对数据进行分类或分组,以便后续的汇总操作。
    • HAVING 子句用于对 GROUP BY 分组后的数据进行条件筛选。具体地说,它允许您对每个分组应用条件,只保留那些满足条件的分组。这就是对分组级别的筛选,通常用于对聚合函数结果的分组进行进一步的筛选或过滤。

所以, GROUP BY 用于数据的初步分组,而 HAVING 用于对这些分组进行进一步的筛选和过滤,通常涉及到聚合函数的结果。这使得 SQL 查询非常灵活,能够进行复杂的数据分析和统计操作。

3.JOIN系列有哪些?

INNER JOIN 或 JOIN:内连接,合并匹配的行。

LEFT JOIN 或 LEFT OUTER JOIN:左连接,合并左表的所有行和匹配的右表行。

RIGHT JOIN 或 RIGHT OUTER JOIN:右连接,合并右表的所有行和匹配的左表行。

FULL JOIN 或 FULL OUTER JOIN:完整外连接,合并左表和右表的所有行,包括未匹配的行。

CROSS JOIN:笛卡尔积操作,返回两个表的所有可能组合,不需要连接条件。

#多表连接
SELECT orders.order_id, customers.customer_name, products.product_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
JOIN order_details ON orders.order_id = order_details.order_id
JOIN products ON order_details.product_id = products.product_id;

上述除了cross join都需要连接条件像是full join这种包括未匹配的行的就会使用null来进行填充

4.join中如何区分那个是左表那个是右表?

from下面跟left那么from就是左表跟right就是右表(这是博主自己记录的野方法hhh)

5.表连接还有什么方法?

常见的 SQL 查询中的条件连接

WHERE orders.customer_id = customers.customer_id)

UNION 操作 : UNION 允许合并两个具有相同列的查询结果。虽然它通常用于合并行,但也可以用于合并表。

SELECT customer_id, customer_name
FROM customers
UNION
SELECT supplier_id, supplier_name
FROM suppliers;

WITH 子句(Common Table Expressions):使用 WITH 子句可以为一个查询定义一个临时表,然后在主查询中引用它。这对于在多个地方使用相同的子查询非常有用。

WITH CustomerOrders AS (
    SELECT customer_id, order_date
    FROM orders
)
SELECT customer_name, order_date
FROM customers
JOIN CustomerOrders ON customers.customer_id = CustomerOrders.customer_id;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值