数据库SQL集

数据库

数据库的分类

  • 关系型数据库
    Oracle,MySQL,SQLServer,Access
  • 非关系型数据库
    MongoDB,Redis,Sorl,ElasticSearch,Hive,HBase

SQL语句

SQL分类

  • DML数据库操纵语言(insert,delete,update,select简称CRUD)
  • DDL数据库定义语言(create table之类)
  • DCL 数据库控制语言(grant,revoke 管理员有的相应权限)
  • DQL 数据库查询语言(select)

数据库常用操作

建库

  • 创建数据库名为XXX
create database XXX default character set uft8;

删库

  • 删除表名为XXX的库
drop database XXX;

查看所有数据库

show databases

应用数据库创建表时

use 数据库名

表设计

创建表

包含字段类型及约束
mysql字段类型

请添加图片描述

请添加图片描述

字段约束
  • 主键约束
id(字段名) int primary key auto_increment,
  • 非空约束
password varchar(50) not null #非空约束
  • 唯一约束
name varchar(50) unique, # 唯一约束
create table XXX(表名)(
id(字段名) int primary key auto_increment, #主键自增(主键约束)---**每个字段需要用逗号隔开**
name varchar(50) unique, # 唯一约束
password varchar(50) not null #非空约束
)

修改表

  • 添加列
alter table XX(表名) add column(字段) XX(字段名) + 字段约束以及类型

删除表

drop table XXX(表名)

查看所有表

show tables

查看某一个表结构/设计表

desc XXX(表名)

表中数据/记录的常用操作语句

向表中插入数据

insert into XXX(表名) values(数据1,数据2,数据3); --**多条添加数据之间用分号隔开**
insert into XXX(表名) values(数据1,数据2,数据3);

查询表中数据

select */XX2(某一字段名),XX2(**字段名之间用逗号隔开**) from XXXX(表名); 

修改记录

update XX(表名) set XX(字段名)=yyc where 条件=ww;

删除数据

delete from XX(表名) where 条件

排序

  • 按照字段名进行排序
select * from XX(表名) order by YY(字段名) desc (默认升序) ;

记录总数

select count(*/1) from XX(表名);

基本函数

数据转小写 lower

select 'ABC'(原数据) ,lower('ABC')*转小写后的数据* from XX (表名);

数据转大写

select upper(yy字段名) from XX(表名)

数据的长度

select length(XX字段名) from 表名

截取数据

select substr(字段名,起始位置,截取位数) from 表名;

拼接数据

select concat(字段名,'要拼接的数据') from 表名

把字符替换成某个值

select replace (字段名,'被替换的数据','替换成的数据') from 表名;

判断 如果某字段是空就用其他值替换

select ifnull(字段,所替换的值) from 表名;

四舍五入(round)&向上取整(ceil)&向下取整(floor)

  • 四舍五入取整
select round(字段名) from 表名
  • 四舍五入并保留一位小数
select round(字段名,1) from 表名
  • 向上向下取整
select ceil(字段名)*向上取整*,floor(字段名)*向下取整* from 表名

条件查询

聚合函数

分组

GROUP_CONCAT( )

select score,group_concat(student) from exam group by score;

结果

|score |group_concat(student)		|
-------------------------------------
|70	   |小王,小赵,小高,小高,小秦		|
|80	   |小红,小李,小孙,小秦,小马		|
|90	   |小张,小钱,小马,小朱,小朱,小钱	|
去重使用
select score,group_concat(distinct student) from exam group by score;

结果

|score |group_concat(student)	|
---------------------------------
|70	   |小王,小赵,小高,小秦		|
|80	   |小红,小李,小孙,小秦,小马	|
|90	   |小张,小钱,小马,小朱		|

这样group_concat每行数据的结果中就没有了重复值,但是在数据中的分隔符为默认的逗号’,',如果想修改默认的分隔符,只需要在上述指令中稍作修改:

select score,group_concat(distinct student separator '%') from exam group by score;

结果

|score |group_concat(student)	|
---------------------------------
|70	   |小王%小秦%小赵%小高		|
|80	   |小孙%小李%小秦%小红%小马	|
|90	   |小张%小朱%小钱%小马		|
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值