文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL的基础(一)

2023-10-25 08:41

关注

MySQL的基础(一)

SQL

SQL,全称为结构化查询语言(Structured Query Language),是一种用于管理关系数据库的标准计算机语言。它可以用于数据库的创建、查询、更新和修改等操作。

SQL语言包括数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)、数据控制语言(DCL)等部分。
-- 创建表CREATE TABLE Students (    ID INT PRIMARY KEY,    Name VARCHAR(20),    Age INT);-- 插入数据INSERT INTO Students (ID, Name, Age) VALUES (1, 'Tom', 20);-- 查询数据SELECT * FROM Students;-- 更新数据UPDATE Students SET Age = 21 WHERE ID = 1;-- 删除数据DELETE FROM Students WHERE ID = 1;

SQL的语法特点主要包括以下几点:

SQL的关键字大小写不敏感,可以以单行或多行书写,空格/缩进–增强可读性,并以分号结束。SQL的注释有两种方式:

  1. (1)单行注释:使用--或者# 注释开始,直到行尾。
    (2) 多行注释:使用 结束。

注意:
虽然SQL的关键字大小写不敏感。但是,对于字符串和字符数据类型的值,是区分大小写的。
但是推荐使用小写,方便

  1. 反引号(`)用于包裹数据库名称,字段,数据表名称。是TAb键上方,数字1左边的英文状态的键。
  2. 以分号结束也可使用\g或者\G
    (1)以分号结尾_show databases;
    在这里插入图片描述
    (2)以\g结尾_ show databases\g和分号效果是一样的。
    在这里插入图片描述
    (3)以\G结尾_show databases\G 以一给信息为“一段”后换行,纵向排列的
    在这里插入图片描述

一、 SQL - DDL – 数据定义语言

DDL(Data Definition Language,数据定义语言)语句: 数据定义语言,主要是进行定义数据库、表的结构、数据类型、表之间的链接等操作。 例如:关键字有 CREATE用于创建数据表和数据表、ALTER用于修改表、DROP用于删除库和表 等。

1.1 数据库操作

1.1 显示现有的数据库

(1)查看MySQL服务器下的所以被创建出来的数据库

SHOW DATABASES
在这里插入图片描述

(2)查看当前数据库

SELECT DATABASE()
下方的NULL是因为,没有选择数据库
在这里插入图片描述
在DataGrip中
我们可以选择对应的数据库即可,或者切换数据库
在这里插入图片描述

(3)查看指定的数据库的创建信息

show create database 数据库名称;

在这里插入图片描述

1.2 创建数据库

创建: CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则]

(1)简单创建:
在这里插入图片描述
有无反引号都可以
在这里插入图片描述
都存在
在这里插入图片描述
(2)不可创建同名的数据库,存在即不创建
create database if not exists 数据库名称

在这里插入图片描述

(3)设置指定的字符集

utf8 -存储长度 3个字节【不建议】
utf8mb4 - 4字节

create database ss default utf8mb4
如果已经存在了该库,但没指定字符集,那就指定通过修改的方式来了。

alter database 库名 default character set 字符集
在这里插入图片描述

1.3 删除数据库

DROP DATABASE [IF EXISTS] 数据库名
在这里插入图片描述
[IF EXISTS] 是为了进一步确认存在。

1.4 使用

USE 数据库名
在这里插入图片描述
查看当前数据库名用前面,并切换数据库
在这里插入图片描述

1.2 数据表操作

对数据库中的表结构进行增删查改等操作,在这之前我们需要准备一张数据表。

1.2.1 表查询

先use指令找到数据库,
(1)查询当前所有表
show tables;

在这里插入图片描述
(2)查询表结构
DESC 表名;
在这里插入图片描述
(3)查询指定表的建表语句
SHOW CREATE table 表名;

在这里插入图片描述

1.2.2 表创建

创建库–使用库–创建表

CREATE [字段类型] TABLE [if  not  exists]表名(字段1 字段1类型[COMMENT   字段1注释]字段2 字段2类型[COMMENT   字段2注释]字段3 字段3类型[COMMENT   字段3注释]... 字段n 字段n类型[COMMENT   字段n注释])[COMMENT   表注释];

在这里插入图片描述
验证 – 查询表结构

DESC 表名;
在这里插入图片描述

在这里插入图片描述

1.2.3 修改表

(1)添加字段

ALTER RABLE 表名 ADD 字段名 类型(长度) [comment 注释] [约束];
在这里插入图片描述
修改字段名和类型

ALTER RABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [comment 注释] [约束]
在这里插入图片描述
在这里插入图片描述
删除字段

ALTER TABLE 表名 DROP 字段名

在这里插入图片描述
修改表名

ALTER table 表名 RENAME TO 新表名;
在这里插入图片描述

删除:

删除表

(1)TROP TABLE [IF EXISTS]表名;
删除指定表,并重新创建该表 --剩下表结构,数据被清除
在这里插入图片描述
(2)TRUNCATE TABLE 表名;
在这里插入图片描述

1.2.4 小结

(1)库操作

show databases;create database 数据库名;use 数据库名;select database();drop database 数据库名;

(2)表操作

show tables;create table 表名(字段 字段类型 ,字段 字段类型);desc 表名;show create table 表名;alter table 表名 add/modify/change/drop/rename to ..drop table 表名;

二、SQL - DML – 数据操作语言

DML(Data Manipulation Language)语句: 主要是对数据进行增加、删除、修改操作。常用的语句关键字有 INSERT添加数据、UPDATE修改数据、DELETE删除数据 等。

2.1 添加数据 insert

( 1 )给指定的字段添加

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

( 2 )给全部的字段添加数据

`INSERT INTO 表名 values(值1.。值b);`

( 3 ) 批量添加数据

INSERT INTO 表名(字段1.,,字段2VALUES(值1.2....)(值1.2....).(值1.2....);INSERT INTO 表名 values(值1.。值n),(值1.。值n),(值1.。值n);

注意:

  1. 插入时期,指定字段顺序,键值一一对应
  2. 字符串、日期应该在引号之中
  3. 大小、长度应该在规定的字段的范围之内
    在这里插入图片描述
    如果是插入多条数据,就多来点语句或者(3)的方请添加图片描述

2.2 修改数据 update

UPDATE 表名 SET 字段名1 =1,字段名2 =2[where 条件]; 

修改语句的条件可以有,也可无。如果没有条件,则修改整张表的所有数据
请添加图片描述

这项操作是不安全的,容易破坏元数据的----但可以同意
请添加图片描述

成功完全替换掉

请添加图片描述

2.3 删除数据 delete

`DELETE FROM 表名 [WHERE 条件]`

注意: (1)条件可有可无,没有就是所有的数据

(2)DELETE 语句不能删除某个字段的值(可以用UPDATE)

请添加图片描述

2.4 总结一下

(1)添加数据:
INSERT INTO 表名 (字段1,字段2,)VALUES(值1,值2,)[,(值1,值2,..)..];

(2)修改数据
UPDATE 表名 SET 字段1=值1 ,字段2 =值2 [WHERE 条件]l

(3)删除数据
DELETE FROM 表名 [WHERE 条件];

三、SQL - DQL – 数据查询语言

3.1 语句顺序

3.1.1 书写顺序
SELECT字段列表    字段名[AS]别名FROM表名列表WHERE 条件列表   分组之前过滤GROUP BY分组字段列表  HAVING分组后条件列表   分组之后过滤ORDER BY 排序字段列表  升序ASC 降序DESCLIMIT分页参数   起始索引从0开始
3.1.2 执行顺序
FROM表名列表WHERE条件列表GROUP BY分组字段列表HAVING分组后条件列表SELECT字段列表ORDER BY排序字段列表LIMIT分页参数

3.2 基本查询(SELECT和FROM配合)

3.2.1.> 查询多个字段

(1)SELECT 字段1 ,字段2,字段3..FROM 表名;
在这里插入图片描述

(2)SELECT *FROM 表名;
SELECT* 的*为通配符,效率低
在这里插入图片描述

3.2.2> 设置别名

as可以省略写

SELECT 字段1[AS 别名1] ,字段2[AS 别名2],..FROM 表名;

真名和替换名使用

select id,id as stu_id,name,name as stu_name from username;

在这里插入图片描述

3.2.3 去除重复记录

SELECT DISTINCT 字段列表 FROM 表名

去除的时候,不能在distinct前面有其他的字段,要不然“长度”不对呀,会报错
在这里插入图片描述

在这里插入图片描述

3.3 条件查询(where)

注意事项:

对于selct语句执行顺序  FROM   WHERE  GROUP BY  HAVING   SELECT   ORDER BY  LIMIT
3.3.1 SELECT 字段列表 FROM 表名列表

‘>’ ‘>=’ '< ’ '<= ‘=’
不等于 '<> 或者 !=
BETWEEN…AND 介于某个范围之间
IN(…)介于in列表之间的某个值
LIKE 站位符 模糊查询【_匹配单个字符 ,%匹配多个字符】
IS NULL
AND 与 && 、 OR 与|| 、 NOT与 !,他们各自效果是一样的

·
注意事项
between ……and……语句 上下包含。
between…and不能写反

3.4.分组查询(GROUP BY)

3.4.1 学习一下聚合函数(一列的整体数据纵向的计算)

count 、max、 min、 avg、 sum 直接作用字段,且null值不参与聚合函数运算

SELECT 聚合函数(字段列表)FROM 表名

在这里插入图片描述

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

请添加图片描述

3.4.3 WHERE,GROUP BY和HAVING

在SQL中,WHERE,GROUP BY和HAVING都是用于筛选和分组数据的关键字,但它们的使用场景和方式有所不同。

SELECT 列名, 聚合函数(列名)FROM 表名WHERE 列名 运算符 值GROUP BY 列名HAVING 聚合函数(列名) 运算符 值;

注意事项
执行顺序:where > 聚合函数 > having
分组后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

3.4.4 排序查询ORDER BY排序字段列表
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2,排序方式2;

(1)排序方式:

ASC:升序 (默认)

DESC:降序

(2)排序先按第一个方式,再第二个方式

在这里插入图片描述

3.4.5.分页查询LIMIT

SELECT 字段列表 FROM LIMIT 起始索引,查询记录数;

在这里插入图片描述
如果你想要实现分页查询,你可以使用OFFSET关键字,语法如下:

SELECT 列名FROM 表名LIMIT 数量 OFFSET 数量;

LIMIT语句的简写形式也是对的。如果你只想限制返回的记录数,而不指定起始索引,你可以直接写LIMIT 数量。

四、SQL - DCL – 数据控制语言

DCL(Data Control Language)是数据控制语言的缩写,主要用于控制不同数据的权限和访问级别,这种语言包括两个部分:GRANT和REVOKE。GRANT用于授予用户权限,而REVOKE用于撤销用户的权限。

4.1 管理用户

4.1.1,查询用户
use mysql;SELECT * FROM user;

在这里插入图片描述

4.1.2.创建用户
CREATE USER ‘用户名’@'主机名' IDENTIFIED BY '密码'

在这里插入图片描述

检测有没有权限访问其他数据库
在这里插入图片描述
在任意主机访问

CREATE user 'GG'@'%' identified  by '123456';
4.1.3.修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码'ALTER USER 'HH'@'localhost' IDENTIFIED with mysql_native_password BY '10000';

在这里插入图片描述

4.1.4.删除用户
DROP USER '用户名'@‘主机名’;

在这里插入图片描述
注意事项:

主机名可以用%通配;

主要有DBA数据库管理员使用

4.2权限控制

4.2.1.查询权限
show grants for '用户名'@'主机名'
4.2.2.授予权限
grant 权限列表 on数据库名.表名 to '用户名'@'主机名'
4.2.3.撤销权限
revoke 权限列表 on数据库名.表名 from'用户名'@'主机名'
4.2.4.全部权限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';

来源地址:https://blog.csdn.net/m0_74154295/article/details/133943563

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯