【MySQL】基础语法总结

MySQL 基础语句

一、DDL 数据库定义语言

1.1CREATE 创建

1.1.1 创建数据库

语法结构

sql 复制代码
CREATE DATABASE database_name;

示例

sql 复制代码
CREATE DATABASE demo;

1.1.2 创建表

语法结构

sql 复制代码
CREATE TABLE 表名 (
  列1 数据类型,
  列2 数据类型,
  ...
);

示例

sql 复制代码
CREATE TABLE new_user (
   id INT PRIMARY KEY,
		name VARCHAR(50),
		age INT
);

1.1.3 创建视图

语法格式

sql 复制代码
create view <视图名> as select查询语句

示例

sql 复制代码
create view user_view as select id,user_id,user_name from `user`

select * from user_view

1.1.4 创建索引

索引名建议以 idx开头。

语法格式

sql 复制代码
CREATE INDEX 索引名 ON 表名 (列名);

示例

sql 复制代码
CREATE INDEX idx_user_id ON user (user_id);

可通过explain进行验证

sql 复制代码
explain select * from user where user_id = 'wu'

1.2 ALTER 修改

1.2.1 添加列

语法结构

sql 复制代码
ALTER TABLE 表名 ADD 列名 数据类型;

示例

sql 复制代码
ALTER TABLE user ADD age int(11) DEFAULT null COMMENT '年龄';

1.2.2 删除列

语法结构

sql 复制代码
ALTER TABLE 表名 DROP 列名;

示例

sql 复制代码
ALTER TABLE user DROP user_age;

1.2.3 修改列名

语法结构

sql 复制代码
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;

示例

sql 复制代码
ALTER TABLE user CHANGE age user_age int(11) DEFAULT null COMMENT '新年龄';

1.2.4 修改列数据类型

语法结构

sql 复制代码
ALTER TABLE 表名 MODIFY 列名 新数据类型;

示例

sql 复制代码
ALTER TABLE user MODIFY user_age varchar(16);

1.2.5 修改表名

语法结构

sql 复制代码
ALTER TABLE 表名 RENAME TO 新表名;

示例

sql 复制代码
ALTER TABLE user RENAME TO new_user;

1.2.6 创建索引

语法结构

sql 复制代码
ALTER TABLE 表名 ADD INDEX 索引名 (列名);

示例

sql 复制代码
ALTER TABLE user ADD INDEX idx_user_id (user_id);

1.2.7 删除索引

语法结构

sql 复制代码
ALTER TABLE 表名 DROP INDEX 索引名;

示例

sql 复制代码
ALTER TABLE user DROP INDEX idx_user_id;

1.3 DROP 删除

1.3.1 删除库

语法结构

sql 复制代码
DROP DATABASE 数据库名称

示例

sql 复制代码
DROP DATABASE demo

1.3.2 删除表

语法结构

sql 复制代码
DROP TABLE 表名;

示例

sql 复制代码
DROP TABLE new_user;

1.3.3 删除视图

语法结构

sql 复制代码
DROP VIEW view_name;

示例

sql 复制代码
DROP VIEW user_view;

二、DML 数据库操作语言

2.1 INSERT

2.1.1 插入单条

sql 复制代码
    INSERT INTO USER (user_id,user_name,create_time,dept_id) VALUES('sa','saname',now(),1)

2.1.2 插入多条

sql 复制代码
INSERT INTO USER (
	user_id,
	user_name,
	create_time,
	dept_id
)
VALUES
	('sa1', 'saname1', now(), 1),
	('sa2', 'saname2', now(), 1),
	('sa3', 'saname3', now(), 1)

2.2 UPDATE

sql 复制代码
UPDATE USER
SET dept_id = 2
WHERE
	user_id = 'sa2'

2.3 DELETE

sql 复制代码
delete from user where user_id = 'sa1'

三、DQL 数据库查询语言

3.1 基础语法结构

sql 复制代码
select <列名>
from <表名>
where <筛选条件>
group by <列名>
having <聚合筛选条件>
order by <排序字段>
limit <条数限制>

3.2 常见的查询语句

3.2.1 条件查询

大于、小于、不等于

大于

sql 复制代码
select * from user  where id > 5

小于

sql 复制代码
select * from user  where id < 5

不等于

sql 复制代码
select * from user  where id != 5

select * from user  where id <> 5
BETWEEN 介于两者范围之内

注意:是包括在内,如下所示 大于等于,而不是大于

sql 复制代码
select * from user  where id BETWEEN 1 and 3
sql 复制代码
select * from user  where id >=1 and id <=3
In 在某个范围之内
sql 复制代码
select * from user  where id in (1,2,4)

3.2.2 逻辑查询

AND
sql 复制代码
select * from user  where id = 2 and user_id = 'wu'
OR
sql 复制代码
select * from user  where id =1 or user_id = 'wu'

3.2.3 DISTINCT 查询不重复

sql 复制代码
select DISTINCT(user_name) from user 

3.2.4 Like 模糊查询

sql 复制代码
select * from user  where user_id like 'sa%'

3.2.5 Order 排序

倒序

sql 复制代码
select * from user  order by id DESC

顺序

sql 复制代码
select * from user  order by id ASC

3.2.6 GROUP BY 分组

sql 复制代码
select * from user GROUP BY dept_id

3.2.7 HAVING 分组限制

sql 复制代码
select * from user GROUP BY dept_id HAVING id > 1

3.2.8 LIMIT 限制条数

sql 复制代码
select * from user limit 0,10;
         
select * from user limit 1;

3.3 连接查询

3.3.1 内连接

sql 复制代码
SELECT
	*
FROM
	USER t1
INNER JOIN dept t2 ON t1.dept_id = t2.id

3.3.2 全连接

查询出左表和右表所有数据,但是去除两表的重复数据;

sql 复制代码
SELECT
	*
FROM
	USER t1
FULL JOIN dept t2 ON t1.dept_id = t2.id

以上代码执行会出现错误,因为MYSQL 不支持全连接!!!

3.3.3 左连接

左连接是左边表的所有数据都有显示出来,右边的表数据只显示共同有的那部分,没有对应的部分只能补空显示,所谓的左边表其实就是指放在left join的左边的表;

sql 复制代码
    select * from user t1 left join dept t2 on t1.dept_id  = t2.id

3.3.4 右连接

右连接正好是和左连接相反的,这里的右边也是相对right join来说的,在这个右边的表就是右表;

sql 复制代码
    select * from user t1 right join dept t2 on t1.dept_id  = t2.id   

3.4 常用函数

3.4.1 聚合函数

count

示例

sql 复制代码
select count(1) from user

select count(*) from user

select count(id) from user
sum

示例

sql 复制代码
select sum(id) from user
max、min

示例

sql 复制代码
select max(id) from user

select min(id) from user

3.4.2 LENGTH 字符长度

示例

sql 复制代码
select user_id , LENGTH(user_id) from user

3.4.3 CASE WHEN 分支函数

语法结构

sql 复制代码
CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

示例

sql 复制代码
SELECT
	CASE 
		WHEN dept_id is NULL THEN '无部门'
		ELSE '有部门'
	END as DeptId,
	user_id,user_name

FROM
	USER;
相关推荐
2501_9339232510 小时前
解读Redis:单线程模型
数据库·redis·缓存
Tapdata12 小时前
被忽略的第三类上下文:Agent 进入真实业务后,还缺什么?
数据库·人工智能·架构
小科先生13 小时前
Java springboot调用数据库的基本流程
java·数据库·spring boot
星恒随风13 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Pniubi15 小时前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
数据库小学妹15 小时前
pgbouncer 事务池:prepared statement、临时表与会话状态
数据库·后端·postgresql
aiks_yuan15 小时前
MySQL 死锁怎么排查:看懂 INNODB STATUS 死锁日志,先查后插为什么必死锁(MySQL 8.2 实测)
mysql
Lucifer三思而后行17 小时前
最近折腾了一下金仓数据库的备份恢复
数据库·备份恢复
草莓熊Lotso17 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
进击的荆棘18 小时前
MySQL——库的操作
数据库·mysql