关系型数据库(SQL)和非关系型数据库(NoSQL)的语句不一致,它们在操作语言上有显著差异。
关系型数据库有MySQL,Oracle,SQLite等,这里以MySQL数据库为例。
创建和删除(create、drop)
表在数据库中一共分为三种:永久表、临时表、虚拟表。
永久表:使用create table创建的
虚拟表:使用create view 创建的。虚拟表也叫视图,,可当做永久表的截图使用,可做修改但不建议修改。
临时表:用子查询查询出的表。
create database 数据库名称; #创建数据库
use 数据库名称; #使用数据库
create table 表名; #创建永久数据表
create view 虚拟表表名 as select 列名 from 永久表表名; #创建虚拟表,as是关联查询语句
select * from (select 列名 from 表名) a; #此方法查询出的表就是临时表
drop database 数据库名; #删除数据库
drop table 虚拟表表名; #删除永久数据表
drop view 表名; #删除虚拟表
增(insert,alter add/modify/alter)
insert into 表名(指定表头) values(要添加的内容);
# values中药添加的内容需要和前边写的表头一一对应
# 如果不指定表头,单独写一个表名的话,在values中需要添加所有的表头所对应的值。
alter table 表名 add column 列名 数据类型;
# 在已有的表中添加新的一列
alter table 表名 add primary key (列名);
# 为已有表中的某一列设置为主键
alter table 表名 add constraint unique (列名);
#添加不允许重复约束
alter table 表名 modify 主键列名 主键类型 auto_increment
# 给主键增加自增约束
alter table 表名 modify 列名 数据类型 not null;
# 增加某一列的不允许为空(删除的话更改为null即可)
alter table 表名 alter 列名 set default '默认值';
# 为表中的某一列增加默认值,删除的话更改为null即可
alter table 表名 add constraint '约束名称(因为可以出现多个外键)' foreign key (列名) references 关联表名(列名);
# 增加外键
删(delete、alter drop)
delete from 表名 where 限定条件;
# 删除表中符合限定条件的行
alter table 表名 drop column 列名;
# 删除表中的列
alter table 表名 drop primary key (列名);
# 删除表中的主键约束(需要先删除自增约束才能删除主键约束)
改(update、alter modify/change/rename)
update 表名 set 列名='值' where 限定条件;
# 更改符合限定条件的表的指定列的值
alter table 表名 modify column 列名 新的数据类型
# 为已有表中的列更改数据类型
alter table 表名 change column 旧列名 新列名 数据类型;
# 将已有表中的列更名和更改数据类型
alter table 表名 rename to 新的表名
# 修改已有表的表名
查(select)
查询是数据库操作中最常用的操作,其中限定条件的书写最为重要,常用的关联词有where,in ,not,between and, or,and,like等
select 列名 from 表名 限定条件;
# 根据限定条件查询表中的列
常用链接条件 | 含义 |
---|---|
where | where后添加限制条件 |
distinct | 去除查询出的重复的内容 |
in | 表示在其中的意思 |
is not | 判断单元格状态 |
not = /<>/!= | 判断数据 |
between A and B | 相对于>和<比较来说是优化查询语句。A一定比B小,否则查询无结果 |
limit n | 限制输出n 行 |
like ‘%a%’ | 模糊查询包含a的字符串,不区分字母大小写。(a%表示以a开头的,%a表示以a结尾的。_表示一个任意字符,%表示任意多个字符。) |
order by 列名 | 根据列名进行排序 |
group by 列名 | 根据列名进行分组 |