1、数据库(database),数据库管理系统(DBMS),表(table)。
打开方式:
运行打开:services.msc
可以看到mysql服务
启动和关闭:
在开始菜单的搜索框张收入cmd,然后右键单击,并选择以管理员身份运行。
登陆:mysql -u用户名 -p密码
2、SQL语句
2.1、分类:
2.2、创建一个数据库:
create database 库名;
create database 库名 character set 编码;
查看所有数据库:
show databases;
查看某个数据库的定义信息:
show create database 数据库名;
删除数据库:
drop database 数据库名;
使用数据数据库:use 库;
查看当前正在操作的数据库:select database();
3、table表操作:
创建,查看表:
查看表结构,删除表:
添加一列:
修改列名类型:
修改列名:
删除表的列:
修改表名:
查看当前表的编码并修改表的字符集:
4、字段类型:
5、插入记录:linsert
insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……);
insert into 表名 values(值1,值2,值3……);
注意:
值如果是字符串或者日期需要加单引号!!!
插入数据中文乱码问题解决办法:
方式一:【不建议!】
直接修改数据库安装目录里面的my.ini文件的第57行
将default-character-set=utf8
改为default-character-set=gbk
方式二:
set names gbk;
6、更新修改记录:update
update 表名 set 字段名=值, 字段名=值, 字段名=值……;
update 表名 set 字段名=值, 字段名=值, 字段名=值…… where 条件;
7、删除表记录:delete
delete from 表名 where 条件;
delete from 表名;
注意:删除后,uid不会重置!!!
注意:
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
delete删除,uid不会重置!而使用truncate操作,uid会重置,因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的数据的时候从1开始。
truncate table 表名;
truncate删除后无法恢复,表名还在。
8、查询操作
准备:
#创建商品表
create table product(
pid int primary key auto_increment,
pname varchar(20),
price double,
pdate timestamp
)
#自动增长列:auto_increment,要求:1,必须整型(int) 2.必须是主键
insert into product values (null,'谭妮平',0.01,null);
insert into product values (null,'李士雪',38,null);
insert into product values (null,'左慈',-998,null);
insert into product values (null,'黄迎',99999,null);
insert into product values (null,'南国强',99998,null);
insert into product values (null,'士兵',1,null);
insert into product values (null,'李士兵',698,null);
8.1、查询所有商品
select * from product;
查询商品名和商品价格
select pname,price from product;
查询所有商品信息使用表别名(as可以省略)
select * from product as p;
查询商品名,使用列别名
select pname as p from product;
去掉重复值(按照价格)
select distinct(price) from product;
将所有的商品的价格+10进行显示
select pname,price+10 from product;
8.2、 条件查询
查询商品名称为”左慈”的商品信息
select * from product where pname='左慈';
查询价格>60元的所有商品信息
select * from product where price>60;
查询商品名称含有”士”字的商品信息
select * from product where pname like '%士%';
查询商品id在(3,6,9)范围内的所有商品信息
select * from product where pid in(3,6,9);
查询商品名称含有”士”字并且id为6的商品信息
select * from product where pname like '%士%' and pid=6;
查询id为2或者6的商品信息
select * from product where pid=2 or pid=6;
8.3、排序
查询所有的商品,按价格进行排序(升序asc、降序desc)
select * from product order by price asc;
select * from product order by price desc;
查询名称有”士”的商品信息并且按照价格降序排序
select * from product where pname like '%士%' order by price desc;
8.4、聚合函数
注意:聚合函数不统计null值
获得所有商品的价格的总和
select sum(price) from product;
获得所有商品的平均价格
select avg(price) from product;
获得所有商品的个数
select count(*) from product;
8.5 分组操作
准备:添加分类id
alter table product add cid varchar(32);
初始化数据
update product set cid='1';
update product set cid='2' where pid in (5,6,7);
根据cid字段分组,分组后统计商品的个数
select cid,count(*) from product group by cid;
根据cid分组,分组统计每组商品的平均价格,并且平均价格大于20000元
select cid,avg(price) from product group by cid having avg(price)>20000;
8.6、查询总结
select:一般在的后面的内容都是要查询的字段
from:要查询到表
where:查询条件
group by:分组
having:分组后带有条件只能使用having
order by:它必须放到最后面,排序,asc、desc