1.mysql自带数据库
information_schema -mysql元数据,基础数据
mysql -mysql配置数据库,其中包含用户信息。(用户名和密码,权限管理)
performance_schema -mysql数据库软件的运行数据,日志信息,性能数据
test -测试数据库,空的
2.数据库的操作
create database 数据库名称 default character set utf8; -指定编码创建数据库
show create database 数据库名称; -查看数据库的默认字符集
day15 | CREATE DATABASE `day15` /*!40100 DEFAULT CHARACTER SET utf8 */
alter database 数据库名称 default character set gbk; -修改数据库的字符集
drop database 数据库名称; -删除数据库
use 数据库名称; -使用数据库
3.数据表的操作
create table 数据表名称( -创建表
字段名称 字段类型 类型长度
-> sid int,
-> sname varchar(20),
-> sage int,
-> gender varchar(20),
-> renark varchar(20)
-> );
show tables; -查看所有数据表
desc 数据表名称; -查看数据表结构
drop table 数据表名称; -删除数据表
alter table 数据表名称 add columnt 字段名称 字段类型; -添加字段
alter table 数据表名称 drop columnt 字段名称; -删除字段
alter table 数据表名称 modify 字段名称 字段类型; -修改字段类型
alter table 数据表名称 change 旧字段名称 新字段名称 字段类型; -修改字段名称及类型
4.数据表的数据操作:增删改数据
一.增加数据
1)插入所有字段,依次按顺序插入,注意不能少或多字段值
insert into student values(1,'张三',20,'男','添加数据');
2)插入部分数据
insert into student (sid,sname) values(3,'王五');
二.修改数据
1) 修改所有数据
update student set gender='男';
2) 带条件的修改
update student set gender='女' where sid=1;
3)修改多个字段
update student set gender='女',sage='15' where sid=3;
三.删除数据
1)删除所有数据
delete from student;
2)带条件的删除,不能删除表的约束
delete from student where sid=1;
3)另一种方式,不能带条件,可以删除表的约束
truncate table student;
5.数据库的查询一
-- 1.查询所有列
select * from student;
-- 2.查询指定列
select sid,sname,sage from student;
-- 3.查询指定别名,注意:在多表查询是经常使用表的别名
select sid as '编号',sname as '姓名' from student as s;
-- 4.查询时添加常亮列
-- 需求:在查询student表时添加一个班级列,内容是“java就业班”
select sid,sname,sage,gender,renark,'java就业班' as '年级' from student;
-- 5.查询时合并列
-- 需求:查询每个学生的servlet和jsp总成绩
-- 注意:合并列只能合并数值类型的字段
select sid,sname,(servlet+jsp) as '总成绩' from student;
-- 6.查询时去除重复记录
-- 需求:查询学生的性别 男 女
select distinct gender from student;
-- 7.条件查询(where)
-- 逻辑条件:and(与) or(或)
-- 需求:查询id为2,且姓名为李四的学生
select * from student where sid=2 and/or sname='大二';
-- 比较条件
-- 需求:查询servlet成绩大于70的学生
select * from student where servlet>70;
-- 判空条件(null空字符串):is null / is not null / =='' / <>''
select * from student where servlet='';(包括null和空字符串
-- 模糊条件:like
-- 通常使用以下替换标记:
-- %:表示任意字符
-- _:表示一个字符
-- 需求:查询姓' 大' 的学生
select * from student where sname like '张%/张__';
6.数据库的查询二
-- 1.聚合函数查询 sum() avg() min() max() count()
-- 需求:查询学生的servlet的总成绩
select sum(servlet) as 'servlet的宗成绩' from student;
-- 需求:学生servlet的平均分
select avg(servlet) as 'servlet的平均分' from student;
-- 需求:查询最高、低分
select max/min(servlet) as '最高分/最低分' from student;
-- 需求:统计当前有多少学生(count()),不包含null数据
select count(*/id) from student;
-- 2.分页查询(limit 起始行,查询几行)
-- 需求:查询第1,2条记录
select * from student limit 0,2;
-- 3.查询排序
-- 语法:order by 字段 asc/desc
-- asc: 顺序,正序。数值:递增,字母:自然顺序(a-z)
-- desc: 倒序,反序。数值:递减,字母:自然顺序(z-a)
-- 默认情况下,按照插入记录顺序排序
select * from student;
-- 需求:按照id正序/反序排序
select * from student order by sid asc/desc;
-- 注意:多个排序条件
-- 需求:按照servlet正序,按照jsp的倒序
select * from student order by servlet asc,jsp desc;
-- 4.分组查询(group by)
-- 需求:查询男女的人数
-- 预期结果:
-- 男 1
-- 女 2
-- 1) 把学生按照性别分组(group by gender)
-- 2) 统计每组的人数(count(*))
select gender,count(*) from student group by gender;
-- 分组查询后筛选
-- 需求:查询总人数大于1的性别
-- 1) 查询男女的人数
-- 2) 筛选出人数大于1的记录(having)
select gender,count(*) from student group by gender having count(*)>1;