SQL语句

什么是数据库:

数据库顾名思义就是存储数据和特殊文件的仓库,由表组成。
1.一列存储相同类型的内容:字段数据
2.一行存储某个事物的相关信息:记录

数据库分为两种类型分别为*关系型数据库*和*非关系型数据库*
关系型数据库:mysql、Oracle、SqlServer等
非关系型数据库:MongoDB、Redis等

什么是SQL语句

所有的数据库都是由sql语句来进行控制的。

SQL

安装mysql进行练习,也可直接使用禅道自带的MariaDB,MariaDB是由mysql演变而成的。
此次使用mysql进行练习。

注!:

1.自己安装的mysql和禅道自带的服务只能开一个
2.禅道数据库密码可以开启禅道在“密码”--“数据库密码”中修改。

其他

登录
mysql -uroot -p12345678  
-u:user(用户) 
-p:password(密码)

查看数据库编码格式
show create database 库名;

单独修改表的编码方式
alter table 表名 canvert to charset=utf8;

显示时间
select now();

显示数据库版本
select version();

数据"库"操作

查看所有数据库 show

show databases;

创建数据库create

create database 库名 charset=utf8;

注!:
创建数据库的时候,需要给定编码方式---charset=utf8(中文编码)

切换/进入数据库 use

use 库名;

删除数据库 drop

drop database 库名;

表操作

创建表 create

create table 表名(字段 类型 约束条件,字段2 类型 约束条件,字段3 类型 约束条件);
类型: 
int(数字) 
int unsigned(无符号整型),
varchar(20):字符串
float:浮点
decimal:浮点
text:文本
date:日期
datetime:日期+时分秒
time: 时分秒
enum:枚举

约束条件:
not null: 不能为空
PRIMARY KEY:主键,在表中唯一
AUTO_INCREMENT:自增, 配合主键用 
UNIQUE:唯一
default: 设置默认值的

修改表结构 alter

添加字段
alter table 表名 add 字段 类型 约束;

删除字段
alter table 表名 drop 字段;

增(插入数据)insert

insert into 表名 values(数据1,数据2);

插入多条数据
insert into 表名 values(数据1,数据2),(数据1,数据2);

插入部分数据
insert into 表名(字段1,字段2) values(数据1,数据2);

删(删除数据)delete

delete from 表名 where 条件;

改(修改数据) updata

updata 表名 set 字段=新数据,字段2=新数据 where 条件;

查(查询数据) select

查询所有
select * from 表名;

查询符合条件的数据
select * from 表名 where 条件;

查询符合条件并只显示部分需要的字段
select 字段,字段2 from 表名 where 条件;
条件:
逻辑运算:and(与) or(或) not(非)
比较运算符:>,<,=,>=,<=,!=
between and 90:在80~90之间,连续区间
in:不连续区间,固定的数字

模糊查询 like

查询包含某个字的数据
select * from 表名 where 字段 like "%X%";

查询以某个字开头的数据
select * from 表名 where 字段 like "X_%";

查询两个字中只知道开头的数据
select * from 表名 where 字段 like "X_";

排序 order by

升序
select * from 表名 order by 字段 asc;

降序
select * from 表名 order by 字段 desc,字段2 desc;

分页 limit n,m

select * from 表名 where 字段>=XX limit X,X;

注!:
limit要放在where的后面

limit n      查询n条数据
limit n,m
m:查询的起始位置,索引(从0开始),(页数-1)*每页的数量
n:查询的条数

分组 group by,group_concat()

男女,未知性别的人各多少
select sex,count(*) from stu group by sex;
根据性别分组,显示各个组的性别和姓名
 select sex,name from stu order by sex;
 select sex,group_concat(name) from stu group by sex;
 查询平均年龄>18的组及对应的姓名
 select sex,group_concat(name) from stu group by sex having avg(age)>18;
按性别分组并查询年龄大于18的人
  select sex,group_concat(name) from stu where age>18 group by sex;
 

聚合函数/组函数:
count(字段) 个数
sum(字段) 总数
avg 平均数
max 最大值
min 最小值

子查询

select 字段 from 表名 where 字段=(select 关联字段 from 表名 where 字段="");
posted @ 2022-10-10 16:58  蓝桉、  阅读(36)  评论(0)    收藏  举报