MySQL语句1

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL语句1

SQL语句以分号结尾 ;

简单的查询语句(DQL)

select 字段名1,字段名2,字段名3…from 表名;

查询的时候可以用于数学运算:select 字段名1,字段名2,from 表名

给要进行数学计算的字段名重命名:select,字段名12 as’重命名’ from 表明; 数据库里字符串用单引号,不用双引号

对数据库的操作:

Create:创建 show create database 名字;

创建数据库语句可以加 if 判断语句 :create database if not exists 名称;如果有这个名字的数据库就不会创建;

创建数据库指定字符集:create database 名字 character set gbk;

create database if not exists 要创建的数据库名称 character set gbk; 把上边两种创建整合先判断是否存在,不存在的话在创建并指定字符集;

Retrieve:查询

查询所有数据库名称:show databases; 有个s 查询有创建没有

查询某个字符集:show create database 数据库名称;

Update:修改

修改数据库的字符集: alter database 数据库名称 character set 字符集名称;

Delete:删除

删除数据库:drop database 数据库名称;

当数据库存在在删除:drop database if exists 数据名称;

使用数据库 查询某个数据库的字符集 show create database 数据库名;

查询当前正在使用的数据库名:select database(); 使用的数据库 use 数据库名;

操作库

C(create) 创建

创建表语法:create table 表名(

列名1 数据类型1,

列名2 数据类型2,

…最后一列不需要加逗号

);

复制表:create table 表名 like 被复制的表名;

mysql> create table stubent( //创建学生表

-> id int, //学生编号
-> name varchar(32), //学生名字
-> age int, //学生年龄
-> score double(4,1), //学生
-> birthday date, //出生日期
-> insert_time timestamp //记录信息的时间
-> );

数据库数据类型:

字符串类型:varchar 字符串 varchar(20)这个字符串里有20个字符
R(retrieve)查询
查询某个数据库的表名称:show tables;
查询表结构:desc 表名;

U(update)修改

修改表名:alter table 表名 rename to 新的表名;

修改表的字符集:alter table 表名 character set 字符集名;

添加一列:alter table 表名 add 列名 数据类型;

修改列名称 类型:alter table 表名 change 列名 新列名 新的数据类型;

修改类型:alter table 表名 modify 列名 新数据类型;

删除列:alter table 表名 drop 列名;

D(delete)删除

删除: drop table 表名 先判断有没有表在删除 drop table if exists 表名

DML增删改表中的数据

添加数据:insert into 表名(列名1,列名2…)values(值1,值2…);

注意:不定义列名,则默认给所有进行赋值

删除数据:delete from 表名 [whrtr 条件] DELETE FROM student;删除所有 TRUNCATE TABLE 表名; 先删除表,在创建一张一摸一样的

修改数据:update 表名 set 列名1 = 值1,列名2 = 值2…where 条件;

DQL 查询表中的记录

查询所有:select * from 表名;

1查询的语法:select


                           字段名称
                  from
                            表名列表
                  where
                            条件列表
                  group by
                             分组字段
                  having
                             分组之后的条件
                  order by
                             排序
                  limit
                              分页限定


2基础查询

列名 数据类型;

多个字段查询:select 字段名1,字段名2…from 表名;

去除重复的结果集(查询结果):SELECT DISINCT 列名 FROM 表名;

查询谁 xxx的这种两个内容:SELECT NAME , 列名1,列名2 FROM 表名;

列值的计算包含NULL值计算:SELECT NAME 列名1,列名2,列名1+IFNULL(列名2,0) FROM 表名;

起别名:SELECT NAME 列名1,列名2,列名1+IFNULL(列名2,0) AS 名字 FROM 表名;

3条件查询

where子句后跟条件

格式:SELECT * FROM 表名 WHERE 要进行比较的列名 运算符 条件;

运算符:> < <= >= = <>(<>这个表示不等于,在MYSQL中也可以使用 != 但是不可以使用==)

BETWEEN 包括 age >=20 AND age<=30; 等于 BETWEEN 20 AND 30;

and  && 与         or  ||  或         not  !  非


模糊查询:LIKE 占位符:_:表示一个字符 %:表示多个字符 SELECT * FROM 表名 WHERE 表名 LIKE ‘马%’; 查询带有马字

SELECT * FROM 表名 WHERE 表名 LIKE ‘_化%’; 查询中间有化字的

排序查询:

语法:order by 排序字段1 排序方式1,排序字段2 排序方式2; 如果前边的条件值一样时,才会判断第二条件;

单个排序方式: ASC:升序

DESC 降序

聚合函数:将一列数据作为一个整体,进行纵向计算 聚合函数的计算排除 空 解决方案: IFNULL函数

语法:count:计算个数 SELECT COUNT(列名) FROM 表名;

max:计算最大 SELECT MAX(列名) FROM 表名;

min:计算最小 SELECT MIN(列名) FROM 表名;

sum:计算和 SELECT SUM(列名) FROM 表名;

avg:计算平均值 SELECT AVG(列名) FROM 表名;

分组查询:

语法:group by 分组字段; SELECT sex,AVG(math) FROM student GROUP BY sex; 意思是查询男女同学的数学平均数

注意:分组之后查询的字段:分组字段,聚合函数

where 和 having where在分组之前进行限定,如果不满足条件则不参与分组 不能进行聚合函数的判断

having在分组之后进行限定,如果不满足结果,则不会被查询出来 可以进行聚合函数的判断

分页查询:

语法:limit 开始的索引 每页查询的条数; SELECT * FROM student LIMIT 0,3; 看前三个 后边的3是每页显示3条记录。

公式:开始的索引 = (当前的页码 减 1)* 每页显示的条数

分页操作是一个方言: limit只能在MYSQL里面用。

表的约束:

对表中的数据进行限定,保证数据的正确性,有效性和完整性 把约束放在后面就添加成功

分类:主键约束:primary key 含义:非空且唯一 一张表只能有一个字段为主键,主键就是表中记录的唯一表识

创建时添加 删除主键约束:ALTER TABLE 名 DROP PRIMARY KEY;

非空约束:not null 创建表添加约束 可创建之后添加

唯一约束:unique 不许重复 删除约束:ALTER TABLE 表名 DROP INDEX 列名;

       外键约束:foreign key 
              语法: create table 表名(
                                    ..........
                                  外键列
                                  constraint 外键名称 foreign (外键名称) references 主表名称(主表列名称)
                               );
         删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

创建表之后添加外键:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN (dep_id) REFERENCES department(id)

级联操作:联动操作

添加级联操作:

语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称

FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;

分类:级联更新:ON UPDATE CASCADE

级联删除:ON DELETE CASCADE

CREATE TABLE department(
id INT PRIMARY KEY AUTO_INCREMENT,
dep_name VARCHAR(20),
dep_locationion VARCHAR(20)
);
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
dep_id INT,
CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES deparment(id)
);
INSERT INTO department VALUES(NULL,'研发部','广州'),(NULL,'销售部','深圳');
INSERT INTO employee(NAME,age,dep_id) VALUES('张三',20,1);
INSERT INTO employee(NAME,age,dep_id) VALUES('李四',21,1);
INSERT INTO employee(NAME,age,dep_id) VALUES('王五',22,1);
INSERT INTO employee(NAME,age,dep_id) VALUES('老王',23,2);
INSERT INTO employee(NAME,age,dep_id) VALUES('大王',24,2);
INSERT INTO employee(NAME,age,dep_id) VALUES('小王',25,2);
SELECT * FROM employee;
SELECT * FROM department;


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
293 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
448 43
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
682 221
|
1天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
133 95
|
11天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1675 158
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
925 61