【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;
相关推荐
vvvae12345 小时前
分布式数据库
数据库
雪域迷影5 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
bug菌¹6 小时前
滚雪球学Oracle[4.2讲]:PL/SQL基础语法
数据库·oracle
逸巽散人6 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky6 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
momo小菜pa6 小时前
【MySQL 06】表的增删查改
数据库·mysql
向上的车轮7 小时前
Django学习笔记二:数据库操作详解
数据库·django
编程老船长7 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
全栈师8 小时前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
Data 3178 小时前
Hive数仓操作(十七)
大数据·数据库·数据仓库·hive·hadoop