【MYSQL入门】SQL语言

SQL(Structed Query Language 结构化查询语言)是一种用于管理关系型数据库的标准化编程语言。它包括数据查询、数据插入、数据更新、数据删除以及数据库结构的创建和修改等功能。

SQL语言的核心功能可以分为四个部分,即DDL( Data Definition Language 数据定义语言)DML(Data Manipulation Language 数据操纵语言)DQL(Data Query Language 数据查询语言)以及DCL(Data Control Language 数据控制语言)。

亦有说法称DQL(Data Query Language 数据查询语言)中的SELECT系列查询语句属于DML(Data Manipulation Language 数据操纵语言)。

且如果没有成为DBA(DATABASE ADMINISTRATOR 数据管理员)的想法的话,DCL(Data Control Language 数据控制语言)了解一下即可。

因此想要实现数据库中的CRUD(CREATE/READ/UPDATE/DELETE 增查改删)功能的话只需要学习DDL( Data Definition Language 数据定义语言)DML(Data Manipulation Language 数据操纵语言)即可

DDL( Data Definition Language 数据定义语言):

数据库:

  --使用某个数据库

USE 数据库名;

--查询当前使用的数据库名称

SELECT DATABASE();

--查看当前数据库服务器上面所有已创建的数据库

SHOW DATABASES;

--创建数据库 [IF NOT EXISTS]部分为检测要创建的数据库是否存在,不存在则会创建,加上这个部分即使要创建的数据库存在也不会报错,字符集一般使用"UTF8MB4"

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

表:

--查看当前数据库内所有已创建的表

SHOW TABLES;

--查询表的结构

DESC 表名;

--查询指定表的建表语句

SHOW CREATE TABLE 表名;

--以设置的形式创建表,注释可省略

CREATE TABLE 表名(
列名1 列类型1 [COMMEN 段注释],
 ... ,
列名n 列类型n [COMMEN 段注释]
) [COMMEN 表注释];

--向表中增加数据

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMEN 注释] [约束];

--修改表中对应字段的数据类型

ALTER TABLE 表名 MODIFY 字段名 新类型(长度);

--修改表中对应字段的字段名和类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMEN 注释] [约束];

--修改表的名字

ALTER TABLE 表名 RENAME TO 新表名;

--删除表中指定的字段名

ALTER TABLE 表名 DROP 字段名;

--删除指定的表(如果存在)

DROP TABLE [IF EXISTS]表名;

--删除表并重新创建->格式化表的数据

TRUNCATE TABLE 表名;

在创建表的时候,列的类型有很多,主要分为数值类型字符串类型日期类型

常见的数值类型:

  • INT/INTEGER --整数类型
  • FLOAT,DOUBLE --单双精度浮点类型
  • CHAR --不可变长度字符串
  • VARCHAR --可变长度字符串 
  • DATE --格式为YYYY-MM-DD
  • TIME --格式为HH:MM:SS

DML(Data Manipulation Language 数据操纵语言):

插入:

--不指定插入时列名可省略       VALUES后可一次批量插入多组数据,用','分隔

INSERT INTO 表名[(列名1, ... ,列名n)] VALUES (值1, ... ,值n)[,(值1, ... ,值n)];

更新:

--(在WHERE条件下)将对应列的值更新为新的值)

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

删除:

--(在WHERE条件下)删除对应表中的数据

DELECT FROM 表名 [WHERE 条件];

DQL(Data Query Language 数据查询语言):

编写顺序总览:

SELECT 字段列表(聚合函数) [AS 别名(AS可省略)] / *
FROM 表名
[WHERE 条件]
[GROUP BY 分组字段列表 [HAVING 分组后条件列表] ]
[ORDER BY 排列字段列表]
[LIMIT 分页参数];

基本查询:

--查询表中指定列的值或使用*查询所有值

SELECT 字段列表 [AS 别名(AS可省略)] / * FROM 表名;

条件查询:

--(在WHERE条件下)查询表中指定列的值或使用*查询所有值

SELECT 字段列表 [AS 别名(AS可省略)] / * FROM 表名 [WHERE 条件];

条件总览:

  • > --大于
  • >= --大于等于
  • < --小于
  • <= --小于等于
  • !=<> --不等于
  • BETWEEN ... AND ... --在BETWEENAND的范围之内(包含),BETWEEN后必须是最小值,AND后必须是最大值,不能颠倒顺序
  • IN (列表) --在列表中的值多选一
  • LIKE 占位符 --模糊匹配('_'匹配单个字符,'%'匹配多个字符)
  • (NOT) IS NULL --值为空(非空)
  • AND&& --与,并且
  • OR|| --或
  • NOT! --非

聚合查询:

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

常见的聚合函数:

  • COUNT(列名/*) --统计记录行数,*统计所有行
  • SUM(列名) --计算列数值的总和
  • AVG(列名) --计算列数值的平均值
  • MAX(列名) --取列的最大值
  • MIN(列名) --取列的最小值

NULL值不参与聚合函数的计算

分组查询:

--分组后一般查询的为聚合函数和分组字段,查询其他的无意义,执行顺序:WHERE>聚合函数>HAVING

SELECT 字段列表(聚合函数)
FROM 表名
[WHERE 条件]
GROUP BY 分组字段列表
[HAVING 分组过滤条件];

排列查询:

--排列方式:ASC->升序(默认) ,DESC->降序

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

分页查询:

--起始索引=(查询页码-1)*每页显示数,如查询第一页的数据,起始索引可省略

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

如:

查询前十个数据

SELECT 字段列表 FROM 表名 LIMIT 10;

去除重复记录:

--去除结果集中的重复行

SELECT DISTINCT 字段列表 FROM 表名;

DCL(Data Control Language 数据控制语言):

管理用户:

 --查询用户

USE mysql;

SELECT * FROM user;

--创建用户

CREATE USER '用户名'@'主机名' IDENTIFED BY '密码';

--修改用户密码

ALTER USER '用户名'@'主机名' IDENTIFED WITH mysql_native_password BY '新密码';

--删除用户

DROP USER '用户名'@'主机名';

主机名可以使用'%'通配

权限控制:

--查询权限

SHOW GRANTS FOR '用户名'@'主机名';

--授予权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

--撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

多个权限之间用逗号分隔,授予时,数据库名和表名可以用*进行通配,表示所有

常用的权限:

  • ALL,ALL PRIVILEGES --所有权限
  • SELECT --查询数据
  • INSERT --插入数据
  • UPDATE --修改数据
  • DELETE --删除数据
  • ALTER --修改表
  • DROP --删除数据库/表/视图
  • CREATE --创建数据库/表

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值