10.17数据库的增删改查(简单查询)
1.创建数据库
create database test2;
2.删除数据库
drop database test2;
3.创建表
create table ceshi
(
ids int auto_increment primary key,
uid varchar(20),
name varchar(20),
class varchar(20),
foreign key (class) references class(code)
);
create table class
(
code varchar(20) primary key,
name varchar(20) not null
);
**自增长 auto_increment
**主键 primary key
**外键 foreign key (列名) references 主表名(列名)
**非空 not null
**默认值 default
默认空字符串 default ''
默认为当前时间 default now()
默认为当前时间戳 CURRENT_TIMESTAMP(???)/ unix_timestamp(now())
4.删除表
drop table ceshi;
注意:
1.类型包含长度的在类型后面加括号,括号里面写长度
2.上一列写完加逗号
3.最后一列不要写逗号
4.在每一条SQL语句写完之后要加分号
5.如果有外键关系,先创建主表
1.注释语法:--,#
2.后缀是.sql的文件是数据库查询文件
3.保存查询
4.在数据库里面 列有个名字叫字段 行有个名字叫记录
CRUD操作:
create 创建(添加)
read 读取
update 修改
delete 删除
1、添加数据
insert into Info values('p009','张三',1,'n001','2016-8-30 12:9:8') ;
给特定的列添加数据
insert into Info (code,name) values('p010','李四');
自增长列的处理
insert into family values('','p001','数据','T001','数据',1);
insert into 表名 values(值)
2、删除数据
删除所有数据
delete from family
删除特定的数据
delete from Info where code='p001'
delete from 表名 where 条件
3、修改数据
修改所有数据
update Info set name=''
修改特定数据
update Info set name='' where code='p002'
修改多列
update Info set name='',sex=1 where code='p003'
update 表名 set 要修改的内容 where 条件
4、读取数据
(1)简单读取,查询所有列(*) 所有行(没有加条件)
select * from Info
(2)读取特定列
select code,name from Info
(3)条件查询
select * from Info where code='p003'
(4)多条件查询
select * from Info where code='p003' or nation='n002' #或的关系
select * from Info where sex=0 and nation='n002' #与的关系
(5)关键字查询(模糊查询)
查所有包含奥迪的汽车
select * from car where name like '%奥迪%'; #百分号%代表任意多个字符
查以'皇冠'开头的所有汽车
select * from car where name like '皇冠%';
查询汽车名称中第二个字符是'马'的
select * from car where name like '_马%'; #下划线_代表任意一个字符
(6)排序查询
select * from car order by powers #默认升序排列
select * from car order by powers desc #升序asc 降序 desc
先按brand升序排,再按照price降序排
select * from car order by brand,price desc
(7)范围查询
select * from car where price>40 and price<60
select * from car where price between 40 and 60
(8)离散查询
select * from car where price=30 or price=40 or price=50 or price=60;
select * from car where price in(30,40,50,60)
select * from car where price not in(30,40,50,60)
(9)聚合函数(统计查询)
select count(*) from car
select count(code) from car #取所有的数据条数
select sum(price) from car #求价格总和
select avg(price) from car #求价格的平均值
select max(price) from car #求最大值
select min(price) from car #求最小值
(10)分页查询
select * from car limit 0,10 #分页查询,跳过几条数据(0)取几条(10)
规定一个每页显示的条数:m
当前页数:n
select * from car limit (n-1)*m,m
(11)去重查询
select distinct brand from car
(12)分组查询
查询汽车表中,每个系列下汽车的数量
select brand,count(*) from car group by brand
分组之后,只能查询该列或聚合函数
取该系列价格平均值大于40的系列代号
select brand from car group by brand having avg(price)>40
取该系列油耗最大值大于8的系列代号
select brand from car group by brand having max(oil)>8