导图社区 MySQL数据库
MySQL数据库,关于SQL语句的大致介绍,整理了MySQL的数据库基础语句、数据类型、数据库操作语句、约束、MySQL函数相关内容。更多内容后续会补充,欢迎大家指正。
编辑于2021-04-20 08:47:29MySQL数据库
数据库基础语句
查看所有数据库
show databases
创建数据库
create database 数据库名称 character set 字符编码集
查看创建好的数据库
show create database 数据库名称
选择使用数据库
use 数据库名称
删除数据库
drop database 数据库名称
数据类型
数值类型
整数类型int
小数类型double
字符串类型
固定长度字符串char
可变长度字符串varchar
日期和时间类型
日期类型
date
YYYY-MM-DD
日期和时间类型
datetime
YYYY-MM-DD HH:MM:SS
数据库操作语句
创建表
create table 表名(列名 数据类型);
查看当前数据库全部表
show tables
查看表结构
desc 表名
插入语句
向全部列插入数据
insert into 表名 values(列值1,列值2,...)
向指定列插入数据
insert into 表名(列名1,列名2...) values(列值1,列值2,...)
批量插入数据
insert into 表名 values(列值1,列值2,...),(列值1,列值2,...)
更新语句
update 表名 set 列名1=该列新值,.. where 条件
删除表中数据
delete form 表名 where 条件
删除表
drop table 表名
查询语句
查询全部列数据
select * from 表名
查询指定列数据
select 列名1,列名2,.. from 表名
给列起别名
select 列名1 as 别名1, 列名2 as 别名2,..from 表名
去掉重复的列值
select distinct from 表名
限制查询
select */列名 from 表名 limit 初始位置,行数
排序
select */列名 from 表名 order by 列名1 asc/desc,列名2 asc/desc
条件查询
select */ 列名 from 表名 where 条件 order by 列名1 asc/desc,列名2 asc/desc
关系运算符
>,<,=,>=,=<,<> / !=
逻辑运算符
and 、or 、not
特殊情况
is、between...and、in、like
特殊限制查询
null
not null
between...and
in
like
%表示0个或者多个任意字符
_ 表示任意1个字符
聚合(分组)函数
count(*/列名) 个数
sum(*/列名) 和
avg(*/列名) 平均
min(*/列名) 最小值
max(*/列名) 最大值
分组查询
select 列名/聚合函数 From 表名 Where 条件 Group by 列名 Order by 列名1/聚合函数 asc/desc,列名2/聚合函数 asc/desc;
having 语句
select 列名/聚合函数 From 表名 where 条件 group by 列名 having 条件 order by 列名/聚合函数 asc/desc;
(子查询)嵌套查询
一条sql语句中又包含一条sql语句
例:Select empno,ename,job,sal from emp Where sal>(select avg(sal) from emp)
多表连接查询
内连接查询
Select 别名1.*/列名,别名2.*/列名,...... From 表1 别名1,表2 别名2,...... Where 关联条件;
外连接查询
左外连接查询
Select 别名1.*/列名,别名2.*/列名 From 左表 别名1 left join 右表 别名2 on 关联条件;
右外连接查询
Select 别名1.*/列名,别名2.*/列名 From 左表 别名1 right join 右表 别名2 on 关联条件;
约束
主键约束primary key
创建表时,添加主键约束
例:Create table work01 (id int primary key,name varchar(30),age int(3)); Desc work01;
修改表时,添加主键约束
alter table 表名 add primary key(列名1,列名2,....);
删除主键约束
Alter table work04 drop primary key;
唯一约束unique
创建表时,添加唯一约束
例:Create table work05( Id int(8) primary key, Name varchar(30) unique);
修改表时,添加唯一约束
Alter table 表名 add unique(列名1,列名2,......列名n);
删除唯一约束
Alter table 表名 drop index key_name值;
Show keys from 表名;
默认值约束default
创建表时,添加默认值约束
例:Create table work06(id int primary key, Name varchar(30) unique, Age int(3) default 18);
修改表时,添加默认值约束
Alter table 表名 modify 列名 数据类型 default 默认值;
删除默认值约束
Alter table 表名 modify 列名 数据类型 default null;
非空约束(not null)
创建表时,添加非空约束
例:Create table work07( Id int primary key, Sex char(3) not null);
修改表时,添加非空约束
Alter table 表名 modify 列名 数据类型 not null;
删除非空约束
Alter table 表名 modify 列名 数据类型;
Mysql函数
数值类型函数
round 四舍五入函数
truncate截取函数
字符类型函数
length(列名/字符串)
用于统计列名/字符串的长度
例:Select length('hello kitty');
substring(参数1,参数2,参数3)
用于字符串的截取
例:Select substring('abcdefghjk',3,5);
concat(字符串/列名,字符串/列名,...)
用于将字符串/列值进行拼接显示
例:Select concat('众里寻她千百度,','慕然回首,','那人却在灯火阑珊处.');
日期时间类型函数
curdate()获取当前系统日期
curtime()获取当前系统时间
sysdate()获取当前系统日期时间
year(date)获取年份
month(date)获取月份
ifnull(n,m)
n表示表中某列的列名
m表示要替换null的数值