数据库…基础语句按照功能排列
创建
数据库
create database 数据库名;
表
create table 表名 (字段名数据类型约束,… );
增加
字段
alter table 表名 add 字段名 数据类型;
指定位置字段
alter table 表名 add 字段名 数据类型 first/after 字段名;
first在表的第一个位置增加字段
after在指定字段名之后增加字段
主键
alter table 表名 add primary key (字段名);
外键
alter table 表名 add constraint (外键名:fk_从表_主表) froeign key (外键字段名) references 主表(主键字段);
修改
表名
alter table 旧表名 rename 新表名;
字段名称
alter table 表名 change 旧字段 新字段名 数据类型;
字段
alter table 表名 modify 字段名 数据类型;
默认值
alter table 表名 alter 字段名 set default 默认值;
数据
update 表名 set 列名 = 更新值 where 条件;
删除
字段
alter table表名drop字段名;
外键
alter table表名drop foreign key外键名;
主键
alter table表名drop primary key;
数据表
drop table表名;删除表的描述、完整性约束、索引、相关的权限
truncate table表名;删除全部数据,只留表结构,立刻释放磁盘空间
delete from表名;删除全部数据,只留表结构,对于MyISA会立刻释放磁盘空间,Innodb不会释放磁盘空间
满足条件记录
delete from表名where条件;
查看
满足条件的记录
select 字段名列表 from 表名 where 条件;
某数据库中的所有表
show tables;
创建的表
show create table 表名;
表结构
desc 表名;
表中部分列
select 字段名列表 from 表名;
某数据表中的所有记录
select * from 表名;
约束
约束 | |
---|---|
主键 | primary key |
唯一 | unique |
非空 | not null |
默认值 | default |
自增长 | auto increment |
外键 | foreign key |
插入
单行记录
insert into 表名 (列名) values (对应值列表);
多行记录
insert into 表名 (列名) values (值列表1),(值列表2),(值列表3),… (值列表n):
★批量插入
将现有的数据添加到已存在的表中
insert into表名 (列名) select (列名) from 源表名 where 条件;
查询
简单查询
select <列名> from <表名>【where <查询条件表达式>】【order by<排列的列名>【asc或desc】】;
条件查询
select <列名> from <表名> where <查询条件表达式>;
和查询相关的sql内置的函数
方法:
max(); 求一个字段中数据的最大值
min(); 求一个字段中数据的最小值
avg(); 求一个字段的数据的平均值
sum(); 求一个字段所有数据的和
count(*); 统计当前表中数据有多少个
别名
AS别名(或使用空空格定义别名)
语法:select 字段名1 AS 别名,字段名2 AS 别名…from 表名;
运算符:
where 字段 运算符 值
= > < != >= like
逻辑运算符
and (&&) or (||)
like关键 模糊匹配
where 字段 like “%值%”;
between and 查询在两个值中间
where 字段 between 值1 and 值2;
Limit限定查询返回行
概念:LMT限定查询一般和数据查询排序结合使用,来对排序好
的数据取前面一定数量的结果
语法:limit【位置偏移量】行数;
limit 必须在where 和 order by的后面
关键词DISTINCT用于返回唯一不同的值
语法:select distinct字段名称from表名称;
分组统计
group by
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
使用group by的时候 需要对分组之后的数据进行筛选 使用having 不能where
单列排序
Order by 排列概念:
按照表中的某一个列进排序,即ORDER BY子句后面只有一个列名
语法:
select * from 表名 order by 字段名;
多列排序
概念:多列排序是指按照表中的多个列进行排序,即ORDER BY子句后面跟多个字段名
from 表名 order by 字段1 desc|asc,字段2desc|asc,…;
当where和order by 一起使用的时候 where 必须在order by的前面