create,创建
alter,修改
drop,删除
insert,插入数据
update,修改数据
delete,删除数据
select,查询数据
grant,设置权限与用户
commit,提交事务
rollback,回滚事务
savepoint,设置保存点
create datebase,创建库
if not exists,可选的,表示对象名称不存在时创建
default charset="字符集",可选的,指定默认的字符集,常用的是utf8
default collate"字符校对规则",可选的,指定字符集校对规则,需要和字符集配对,常用的是utf8_general_ci
create table,创建表
engine=innodb,可选的,指定存储引擎,innodb存储引擎支持事务操作、外键




primary key 主键
constraint 主键名称 primary key(属性1,属性2,...)
constraint 外键名 foreign key (属性名) references 主表名(属性) on delete cascade on update cascade 外键约束
unique 唯一约束
not null 非空约束
auto_increment 自增长
检查约束语法:属性 数据类型 check(条件),属性的值必须满足指定条件(mysql 8以上版本支持)
默认值语法:属性 数据类型 default 值,放在其他约束之后
复制表结构,不复制数据:create table 表名 like 被复制的表名;
复制表结构与数据:create table 表名 as select * from 被复制的表名;
添加属性:alter table 表名 add 属性 数据类型 约束;
修改数据类型、约束:alter table 表名 modify 属性 数据类型 约束;
添加约束:alter table 表名 add 约束(属性);
修改属性名:alter table 表名 change old_属性名 new_属性名 数据类型 约束;
删除主键:alter table 表名 drop primary key;
删除外键:alter table 表名 drop foreign key 外键名称;
删除属性:alter table 表名 drop 属性名;
第一范式:表中的每一个属性都不可再分(原子性)
第二范式:表已经满足第一范式,在此基础上要求每一个非主属性都完全依赖于主属性(消除部分依赖)
第三范式:表已经满足第二范式,在此基础上要求每一个非主属性不传递依赖于主属性(消除传递依赖)
删除库:drop database 库名;
删除表:drop table 表名;
掌握:insert into 表名(属性1,属性2,......) values(值1,值2,......),(......),...... ;
语法:update 表名 set 属性1=值1,属性2=值2,...... where 条件;
where 条件,可选的,指定修改满足条件的数据。如果省略,表示修改指定属性所有的值
语法:delete from 表名 where 条件;
补充:truncate 表名;,删除表中数据,不能指定条件,直接删除整张表中数据,属于DDL语句,删除后不能使用事务回滚操作
select 属性1,属性2,...... # 表示要查询哪些属性的值 from 表1,表2,...... # 表示从哪些表中查询 where 条件1 ...... # 限定查询返回的数据 group by 属性1,...... # 表示使用哪些属性进行分组 having 条件 ...... # 限定分组结果 order by 属性1,...... # 表示使用哪些属性对查询结果排序 limit start,len; # 表示从查询结果中指定位置开始取指定数量的行
select * from emp;
语法:属性名 as "别名",属性名 "别名"
distinct 去重
=,等于
!=/<>,不等于
>,大于
>=,大于等于
<,小于
<=,小于等于
in,将属性中的每一个值与集合中的每一个元素进行比较,只要匹配任意一元素,则表达式结果为真,这一行数据会被查询返回
between...and...,判断属性中的每一个值是否在闭区间[A,B]范围内,如果在则表达式结果为真,这一行数据会被查询返回
语法:属性 like "匹配规则"
_,匹配任意1个字符
%,匹配若干任意字符
is null ,匹配空值
and,条件1 and 条件2,两个条件同时为真,则整体表达式结果为真;任意1个条件结果为假,则整体表达式结果为假
or,条件1 or 条件2,两个条件同时为假,则整体表达式结果为假;任意1个条件结果为真,则整体表达式结果为真
not,'not 条件',条件结果为假,则整体表达式结果为真;条件结果为真,则整体表达式结果为假
floor(x),返回小于等于x的最大整数
ceiling(x),返回大于等于x的最小整数
mod(x,y),返回x除以y的余数
round(x,p),返回将x精确到第p位的结果(四舍五入)
truncate(x,p),返回将x截取到第p位的结果
now(),返回当前的日期和时间
curdate(),返回当前日期
curtime(),返回当前时间
last_day(date),返回指定日期所在月份的最后1天的日期
date_format(date,fmt),将指定的日期格式化
fmt表示格式,%Y-4位年,%m-2位月,%d-2位日,%H-小时,%i-分钟,%S-秒
date_add(date,interval n f),返回将指定日期加上间隔时间n的结果,f为n的计量单位(year、month、day)
upper(s),将字符串s转换为大写
lower(s),将字符串s转换为小写
length(s),返回字符串s的字节数
char_length(s),返回字符串s的字符数replace(s,old,new),将字符串s中指定的内容替换为新内容
substring(s,start,len),从字符串s指定位置开始返回指定长度的内容
(start,表示开始位置。大于0,表示从字符串左边开始计数;小于0,表示从字符串右边开始计数)
(len,可选的,表示返回内容的长度。如果省略表示从start位置开始所有的内容)
left(s,len),从字符串s的左边返回指定长度的内容
right(s,len),从字符串s的右边返回指定长度的内容
lpad(s,len,new),使用指定内容(new)从左边将字符串s补齐到长度为len(为补齐后新字符串的总长度)
rpad(s,len,new),使用指定内容(new)从右边将字符串s补齐到长度为len(为补齐后新字符串的总长度)
concat(s1,s2,...),将多个字符串拼接成1个新的字符串
instr(s,new),返回指定内容在字符串s中第一次出现的位置。如果s中没有该内容则返回0
ifnull(s,value),如果s为null返回value,否则返回s本身
case 属性 when 值1 then 结果1 # 如果属性值与值1匹配,返回结果1 when 值2 then 结果2 ...... end
case when 条件1 then 结果1 # 如果条件1结果为真,返回结果1 when 条件2 then 结果2 # 如果条件1结果为假,条件2结果为真,返回结果2 ...... end
语法:if(条件,结果1,结果2),如果条件的结果为真,返回结果1,否则返回结果2 inner join
select 表1.属性1,表1.属性2,表2.属性3,...... from 表1 inner join 表2 on 连接条件 where 条件1 ......
where
select 表1.属性1,表1.属性2,表2.属性3,...... from 表1,表2,...... where 连接条件 and 结果限定条件;
左外连接,left join,右边表返回与连接条件完全匹配的数据,左边表返回所有数据(包括与连接条件不匹配的数据)
右外连接,right join,左边表返回与连接条件完全匹配的数据,右边表返回所有数据(包括与连接条件不匹配的数据)
sum(属性),求和
count(),计数
avg(属性),返回指定属性的算术平均值(忽略空值)
max(属性),返回指定属性的最大值
min(属性),返回指定属性的最小值
group by语法: select 属性,聚合函数(),...... from ... group by 属性(select语句中同时出现表中的属性与聚合函数时,必须使用group by进行分组,并且要求select语句中除聚合函数以外的所有属性都必须出现在group by语句中)
having作用:限定分组的结果,必须与group by语句一起使用
order by语法:order by 属性 asc/desc,......
limit语法:limit start,len(start,表示开始的行号(从哪一行开始显示),第1行为0;如果省略表示从第1行开始),(len,表示要显示的行的数量)
子查询说明:条件的值未知,此时需要先通过子查询得到条件中的值,再 将这个值带入主查询使用。子查询必须放在括号中,一般将子查询放在运算符右边。
单行子查询说明:子查询返回的值有且仅有1个
单行比较运算符:=、!=、>、>=、<、<=
多行子查询说明:子查询返回的值有多个(1列多行)
多行比较运算符:in、any、all
多列子查询说明:子查询返回的结果是多行多列,使用in进行运算,(属性1,属性2,...) in(子查询)
while 条件 do # 条件的结果为真循环一直执行,直到条件的结果为假
本文详细介绍了SQL数据库的基础命令,包括创建、修改、删除数据库和表,以及数据的插入、更新和删除。还涵盖了查询数据、设置权限、事务处理、约束和存储引擎等核心概念,是SQL初学者的实用教程。
2284

被折叠的 条评论
为什么被折叠?



