MySQL学习(DDL,DML,DQL)基本语法总结

2024-09-06 01:44

本文主要是介绍MySQL学习(DDL,DML,DQL)基本语法总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DDL

  • 使用某个数据库
use world;
  • 展示表
show tables;
  • 创建表
 create table student(id int,name varchar(10),age int,gender varchar(10));
  • 删除表
drop table student; 
  • 修改表结构
  1. 查看表结构
  desc student;
  1. 添加列
  alter table student add dept varchar(10);
  1. 修改列名和类型
  alter table student change name st_name varchar(10);
  1. 删除列
  alter table student drop dept;
  1. 修改表名
  rename table student to st;

DML

  • 数据操作
  1. 插入数据
insert into student values(1, '鲁思豪', 21, '男'), (2, '撒刀锋战士', 18, '男'), (3, '发送端', 17, '女'), (4, '问啊发大水', 38, '男'), (5, '雨课堂', 27, '女'), (6, '当然土豪', 5, '女'), (7, '首都儿', 25, '女'), (8, '饿死认同感', 24, '男'), (9, '散热通过', 31, '女'), (10, '色让他', 22, '男'); 
  1. 删除数据(id小于4的数据)
  delete from student where id < 4;
  1. 更新数据
  update student set name = '谢谢小星星' where id = 4;
  • 约束
  1. 主键约束(primary key) PK: 唯一加非空
    创建时加上:[constraint pk1] primary key(字段1,字段2)
    创建好后,使用
ALTER TABLE student ADD PRIMARY KEY (id);

删除主键约束:

ALTER TABLE student DROP PRIMARY KEY;
  1. 自增长约束(auto_increment): 实现主键的自增长
    在创建表时在primary key后加auto_increment
    设置开始值:在create的括号后加auto_increment = min, 或在创建表结束后使用ALTER TABLE student auto_increment = min
    delete删除数据后,自增长从最后一个值基础上增长,turncate删除数据后,自增长从默认开始值增长
  2. 非空约束(not null)
    – 创建表时加not null,或
 ALTER TABLE student MODIFY name VARCHAR(10) NOT NULL;

删除约束

ALTER TABLE student MODIFY name VARCHAR(10);
  1. 唯一性约束(unique)
    创建表时加unique, 或
ALTER TABLE student ADD CONSTRAINT unique_pn unique(id); 

删除唯一约束

ALTER TABLE student DROP INDEX unique_pn;
  1. 默认约束(default)
    创建表时加default ‘默认值’,或
ALTER TABLE student MODIFY dept VARCHAR(10) DEFAULT 'sdas';

删除默认约束

 ALTER TABLE student MODIFY dept VARCHAR(10) DEFAULT NULL;
  1. 零填充约束(zerofill): 插入数据是,当该字段的长度小于定义长度时,会在该值前面补0,zerofill默认为int(10)
    创建表时加zerofill
    删除零填充约束:ALTER TABLE student MODIFY ‘字段’

DQL

  • 查询数据
select id, name from student;
  • 别名
	-- 表别名SELECT * FROM student AS p;-- 列别名SELECT id AS '编号', name AS '名字' FROM student;
  • 去掉重复值
    SELECT DISTINCT age FROM student;SELECT DISTINCT * FROM student;
  • 运算查询
    SELECT name, age +10 FROM student;
  • 过滤
    select * from student where age > 20;
  • 模糊匹配
    SELECT * FROM student where name LIKE '%发%'; -- %匹配任意字符SELECT * FROM student where name LIKE '_思%'; -- _匹配任意字符
  • least和greatest
    SELECT LEAST(10, 5, 20) AS min_number;  -- 最小值SELECT GREATEST(10,20,30) AS max_number;  -- 最大值
  • 分组聚合
select gender, avg(age), sum(age), max(age), min(age), count(*) from student group by gender; -- 分组后的结果筛选  havingSELECT gender, avg(age), sum(age), max(age), min(age), count(*) FROM student GROUP BY gender HAVING AVG(age) > 22;
  • 排序
    select * from student where age > 20 order by age asc;select * from student where age > 20 order by age desc;
  • 分页
    select * from student limit 5; # 限制取5条数据select * from student limit 9, 5; # 跳过10条取5条数据
  • INSERT INTO SELECT语句
    INSERT INTO student SELECT * FROM stu;INSERT INTO student(id, name, age) SELECT id, name, age FROM stu;
  • 正则表达式
    -- ^ 在开头进行匹配SELECT 'abcdefg' REGEXP '^a'; -- 1-- $ 在结尾匹配SELECT 'grfdgsrte' REGEXP 'e$'; -- 1-- . 匹配任意单个字符(除了换行符)SELECT 'asdasf' REGEXP '.s';  -- 1SELECT 'asdasf' REGEXP 'a.';  -- 1SELECT 'asdasf' REGEXP '.f';  -- 1-- [...] 匹配括号内任意单个字符SELECT 'zsfrsdfr' REGEXP '[abc]'; -- 0SELECT 'faredfarews' REGEXP '[ared]'; -- 1-- [^...] 匹配括号内任意字符之外的字符SELECT 'a' REGEXP '[^abc]'; -- 0SELECT 'x' REGEXP '[^abc]'; -- 1SELECT 'abc' REGEXP '[^a]'; -- 1-- a* 匹配0个或多个a,包括空字符串,可以作为占位符用,有没有指定字符都可以匹配到数据SELECT 'stab' REGEXP '.ta*b'; -- 1SELECT 'stb' REGEXP '.ta*b';  -- 1SELECT '' REGEXP 'a*'; -- 1-- a+ 匹配1个或多个a,不包括空字符串SELECT 'stab' REGEXP '.ta+b'; -- 1SELECT 'stb' REGEXP '.ta+b';  -- 0SELECT '' REGEXP 'a+'; -- 0-- a? 匹配0个或1个aSELECT 'stab' REGEXP '.ta?b'; -- 1SELECT 'stb' REGEXP '.ta?b';  -- 1SELECT 'staab' REGEXP '.ta?b'; -- 0-- a1|a2 匹配a1或a2SELECT 'a' REGEXP 'a|b';  -- 1SELECT 'bc' REGEXP 'a|b';  -- 1SELECT 'c' REGEXP 'a|b';  -- 0-- a{m} 匹配m个aSELECT 'abbba' REGEXP 'ab{3}a'; -- 1SELECT 'abbba' REGEXP 'ab{4}a'; -- 0-- a{m,} 匹配m个或更多aSELECT 'abbbbbbba' REGEXP 'ab{2,}a'; -- 1-- a{m, n} 匹配m到n个aSELECT 'abbbbba' REGEXP 'ab{2,7}a'; -- 1SELECT 'aba' REGEXP 'ab{2,7}a';  -- 0 

这篇关于MySQL学习(DDL,DML,DQL)基本语法总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140648

相关文章

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意