一SQL中的数据类型
类型名 | 类型 |
常用:int | 整数类型 |
常用:double | 小数类型 |
decimal(m.d) | 指定整数位与小数位长度的小数类型decimal(4,2) 表达的范围: -99.99~99.99 |
常用:date | 日期类型,格式为yyyy-MM-dd,包含年月日,不包含时分秒 |
datetime | 日期类型,格式为 YYYY-MM-DD HH:MM:SS,包含年月日时分秒 |
timestamp | 日期类型,时间戳 |
常用:varchar(m) | 文本类型, M为0~65535之间的整数, 变长 |
char(m) | 文本类型, M为0~65535之间的整数, 定长 |
固定长度 char(n) 例如: char(20), 最大能存放20个字符. ‘aaa’, 还是占20个字符的空间
可变长度 varchar(n) 例如:varchar(20), 最大能存放20个字符. ‘aaa’, 占3个字符的空间
二数据库的创建
1.创建表格:
create table 表名(
字段名 数据类型 [长度][约束],
如:name varchar(20) not null,
aye int
);
2.SQL约束
not null: 非空约束 如.“name varchar(20) not null,” name这个列不能有null值。
unique:唯一约束, 后面的数据不能和前面重复。
primary key:主键约束(非空+唯一); 一般用在表的id列上面. 一张表基本上都有id列的, id列作为唯一标识的
auto_increment: 自动增长,必须是设置了primary key之后,才可以使用auto_increment
id int primary key auto_increment; id不需要我们自己维护了, 插入数据的时候直接插入null, 自动的增长进行填充进去, 避免重复了。
3.加入数据
结果
4.更新数据
update 表名 set 列 =值, 列 =值 [where 条件]
5.删除数据
delete from 表 [where 条件]
truncate table product;#删除表中的所有记录
.delete 和truncate区别
DELETE 删除表中的数据,表结构还在; 删除后的数据可以找回,一条一条的删除.
TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快
.逻辑 物理删除
物理删除: 真正的删除了, 数据不在, 使用delete就属于物理删除
逻辑删除: 没有真正的删除, 数据还在. 搞一个标记, 其实逻辑删除是更新 例如: state 1 启用 0禁用
三,基本查询语法
.基础查询
1.select [*] [列名 ,列名] [列名 as 别名 ...] [distinct 字段] from 表名 [where 条件]
2.查询所有的列语法:select * from 表名
3.查询表中的所有数据:select * from 表名
4.查询某张表特定列:select 列名,列名,... from 表名
5.查询表中的pname,price字段的值:select pname,price from 表名;
6.去重查询:select distinct 列名 from 表名
7。查询price字段,[去重]单个字段去重:select distinct price from 表名;
8.查询pname,price字段,[同时去重]多个字段去重:select distinct pname,price from 表名;
distinct前面不能有字段名,加了会报错。
.别名查询
1.对字段取别名:select 字段 as 别名,字段 as 别名,... from 表名。
select pname as 商品名称,num as 商品数量 from product;
select pname 商品名称,num 商品数量 from product;
2.对表取别名:select 表1别名.字段名,... from 表1 as 表1别名。
select p.pname,p.price from product as p;
select p.pname,p.price from product p;
3.运算查询(+,-,*,/等),null和其他数据进行运算得到是null计算每个商品的总价(单价*数量)
select price,num from product;
select price*num from product;
select price * num 总价 from product;
select price * ifnull(num,0) 总价 from product;
四,查询条件
between...and... 区间查询
in(值,值..)
like 模糊查询 。一般和_或者%一起使用 _占一位 % 占0或者n位
and 多条件同时满足
or 任意条件满足
单列排序:只按某一个字段进行排序,单列排序
组合排序:同时对多个字段进行排序,如果第1个字段相等,则按第2个字段排序,依次类推
聚合函数
聚合函数 | 作用 |
max(列名) | 求这一列的最大值 |
min(列名) | 求这一列的最小值 |
avg(列名) | 求这一列的平均值 |
count(列名) | 统计这一列有多少条记录 |
sum(列名) | 对这一列求总和 |
语法:SELECT 聚合函数(列名) FROM 表名 [where 条件];
.分组查询
语法:SELECT 字段1,字段2... FROM 表名 [where 条件] GROUP BY 列 [HAVING 条件];
分页查询
select * from 表名 limit m,n;
m是指从哪开始查;记录开始的index,从0开始,表示第一条记录n是指查多少条。
举例:
累了累了,先撤,下次再见