首页 > 数据库 >Mysql基本语法笔记

Mysql基本语法笔记

时间:2024-03-04 15:15:16浏览次数:30  
标签:-- 列名 Mysql 数据类型 笔记 语法 表名 TABLE where

DDL

--操作数据库

1.查询
SHOW DATABASES;

2.创建
CREATE DATABASE 数据库名称 CHARACTER SET utf8;
如果不存在创建
CREATE DATABASE IF NOT EXISTS 数据库名称;

3.删除
DROP DATABASE 数据库名称;
如果存在删除
DROP DATABASE IF EXISTS 数据库名称;

4.使用数据库
查看当前数据库
SELECT DATABASE();
使用数据库
USE 数据库名称;

--操作表

1.查询表
SHOW TABLES;

2.查询表结构
DESC 表名称;

3.创建表
CREATE TABLE 表名(
	字段名1 数据类型1,
  字段名2 数据类型2,
 	……
  字段名n 数据类型         --不能加逗号
);

4.删除表
DROP TABLE 表名;
判断是否存在
DROP TABLE IF EXISTS 表名;

5.修改表名
ALTER TABLE 表名 RENAME TO 新表名;

6.添加一列
ALTER TABLE 表名 ADD 列名 数据类型;

7.修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;

8.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

9.删除列
ALTER TABLE 表名 DROP 列名;

DML

--数据操作

1.给指定列添加数据
INSERT INTO 表名(列名1,列名2,……) VALUES(值1,值2,……);

2.给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2,……);

3.批量添加数据
INSERT INTO 表名(列名1,列名2,……) VALUES(值1,值2,……),(值1,值2,……),(值1,值2,……),……;
INSERT INTO 表名 VALUES(值1,值2,……),(值1,值2,……),(值1,值2,……),……;

4.修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,…… [WHERE 条件];
不加条件,所有数据修改

5.删除数据
DELETE FROM 表名 [WHERE 条件];
不加条件,所有数据修改

DQL

--查询语法

1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名;   -- 查询所有数据

2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

3.起别名
AS 也可以不写,用空格隔开
select name,math 数学成绩,english as 英语成绩 from stu;

4.条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
select * from stu where age BETWEEN 20 and 30;
select * from stu where age =18 or age=20 or age=55;
select * from stu where age in (18,20,55);
select * from stu where english is NULL;
select * from stu where name like '马%'  -- 姓马的
select * from stu where name like '_化%' -- 第二个字是化的
select * from stu where name like '%德%' -- 名字里有德的

5.排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1[排序方式1],排序字段名2[排序方式2]……;
排序方式:
ASC:升序排列(默认值)
DESC:降序排列
多个排序条件,当前边条件值一样时,才会根据第二条件进行排序

6.聚合函数
count(列名) 统计数量列不能为空 NULL	max	min	sum	avg
SELECT 聚合函数(列名) FROM 表;
一般用select(*)可以自动查找非空的列
NULL值不参与所有聚合函数的运算

7.分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
查询男同学和女同学的数学平均分并统计各自人数。要求:分数低于70的不参与分组,分组之后人数大于2.
select sex,avg(math),count(*) from stu where math>70 group by sex HAVING count(*)>2;  
where不能对聚合函数进行判断
执行顺序 where>聚合函数>having  --先执行的where不能使用后执行的聚合函数进行判断

8.分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
起始索引:从0开始,等于   (当前页码-1)*查询条目数

--约束语句

非空约束 NOT NULL	-- 列中不能有null值
唯一约束 UNIQUE	-- 列中所有数据不同
主键约束 PRIMARY KEY	-- 列中非空且唯一
默认约束 DEFAULT	-- 未指定值用默认值
外键约束 FOREIGN KEY -- 让两个表数据之间建立连接
自动增长 auto_increment
id INT PRIMARY KEY auto_increment id,主键且自增

添加约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
ALTER TABLE 表名 MODIFY 字段名 数据类型;
删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;

2.外键约束
[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id)
建表完成后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名称) REFERENCES主表名称(主表列名称)
删除约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;


标签:--,列名,Mysql,数据类型,笔记,语法,表名,TABLE,where
From: https://www.cnblogs.com/HanXuxian/p/18051832

相关文章

  • st 算法学习笔记
    前言在看这篇文章之前,请先自行了解以下几项东西:1.倍增思想。2.动态规划思想。3.乘方位运算实现如有错误,欢迎各位dalao批评指出。什么是\(st\)算法?st算法是一种解决RMQ问题的算法。RMQ及RangeMinimum/MaximumQuery,即区间最大最小值查询。该算法采用了......
  • 【个人前端笔记】web性能优化:连接复用
    一、连接复用keep-alive当我们去连接www.baidu.com的时候,会经历以下过程(没有连接复用)连接过程:发起TCP连接---->请求资源----->下载资源---->关闭TCP连接---->再次发起TCP连接.....如果有多个资源需要请求,我们就要发起tcp然后关闭tcp连接,然后再发起和关闭如果可以发起一次tcp......
  • 黑马程序员JavaWeb学习笔记-过滤器
    过滤器--Filter过滤器Filter快速入门Filter拦截路径过滤器链Filter——流程importcom.alibaba.fastjson.JSONObject;importcom.itheima.pojo.Result;importlombok.extern.slf4j.Slf4j;importorg.springframework.util.StringUtils;importjavax.servlet.*;im......
  • 黑马程序员JavaWeb学习笔记-拦截器
    拦截器--Interceptor--快速入门@Component注解交给ioc容器管理--注册配置拦截器@Configuration注解用来标识当前是Spring当中的一个配置类//Interceptor拦截所有("/**")//Filter拦截所有("/*")//WebConfig需要在包下新建一个config包与controller同级//.excl......
  • 黑马程序员JavaWeb学习笔记-文件上传
    文件上传https://www.bilibili.com/video/BV1m84y1w7Tb/?p=150&spm_id_from=pageDriver&vd_source=62f4901d4d947272c439194b87ec6698当报错500时,服务端出现错误,因为默认最大为1M在application.properties里面修改文件上传的几个函数本地存储Controller层的代码import......
  • 【个人前端笔记】Event loop和微任务与宏任务
    一、EventloopEventloop是指在node.js的事件循环,不是在浏览器中二、Eventloopd各个阶段┌───────────────────────┐┌─>│timers│timers阶段:这个阶段执行setTimeout和setInterval的回调函数。│└───────......
  • 黑马程序员JavaWeb学习笔记-登陆login
    登陆loginlogin是登陆业务方法,mapper接口是持久层,用来操作数据库的,用业务方法名不合适三层架构PostMan测试登陆校验http协议是无状态的,下次请求不会携带上次请求的数据,两次请求是独立的Cookie前后端分离项目中前端页面和后段接口部署在不同的服务器上,所以他们的协议......
  • 【个人前端笔记】Node.js技术架构
    一:node.js不是什么1.node.js不是web框架或后端框架所以你不能把Node.js与Flask或Spring对比2.node.js不是编程语言node.js并不是后端的JS,它只是以.js做后缀的所以你不能把Node.js与Python或PHP对比二:node.js是什么1.node.js是一个平台它将多种技术组合起来让Javascript也......
  • 黑马程序员JavaWeb学习笔记-JavaScript
    JavaScript--JavaScript引入方式--书写语法--输出语句window可以省略--变量var特点1:作用域比较大,全局变量特点2:可以重复定义--数据类型原始数据类型相当于java中基础数据类型alert(parseInt("12"));//12alert(parseInt("12A45"));//12alert(parseInt("A4......
  • 【个人前端笔记】手写EventHub
    一、EventHubEventHub是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的模块之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。二、EventHub优缺点优点:1.通过EventHub实现所有模块之间通信的技术。在vue2中可以用事件总线实现任意组件间传递数据2.E......