Java的MySQL数据库知识

第一节:数据库简介:
1.1数据库:指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合,简单理解:数据的仓库 DB
数据库管理系统DBMS 用于建立、使用和维护数据库,对数据库进行统一的管理和控制,保证安全和完整,用户通过dbms来访问数据库中的数据
1.2常见数据库管理系统: 关系型数据库管理系统
非关系数据库
第二节sql语言:

2.1 整体可分为四大类
DDL 数据定义语言,用来定义数据库对象:库、表、列等
DML 数据操作语言,用来定义数据库记录(数据)
DCL 数据控制语言,用来定义访问权限和安全级别
DQL 数据查询语言,用来查询数据
使用注意:用分号结尾; #开头 --空格 开头 /多行注释/

2.2 DDL操作数据库 show databases; #显示当前mysql
查看数据库 show databases
创建数据库 create database 数据库名称;
创建数据库并指定编码 create database 数据库名 character set gbk;
修改数据库 alter database 数据库名 character set utf8
删除 drop database if exists 数据库名 exists 如果存在删除
查询当前数据库 select database();
使用某一个数据库 use 数据库名
推出mysql quit 或 exit
DDL操作表:create table if not exists 表名(id int not null,name varchar(20));
注意 :数据库名 表名 字段名 可以用反勾号``括住,也可以不括 关键字要括住
建表:create table if not exists 表名(字段1,字段2);
主键约束:primary key 不能重复,不能为null
唯一约束:unique [key] 不能重复,可以为null
非空约束:not null
删除表:drop table
查看表的字段:desc 表名
查看:descriable 表名
修改表:alter table 表名 add age int; 添加一列
alter table modify address varchar(60);修改一列
alter table drop address 删除一列
rename table 表名 to 新表名 修改表名
show create table 表名 查看表的创建细节
alter table 表名 character set gbk 修改表的类型
插入操作: insert into 表名(列名1,列明2) values(列值1,列值2)
insert into student (id,name,age,address) values(1,“小明”,25,“北京”);
insert into student values(2,“小黄”,24,“北京”),(3,“小黑”,21,“石家庄”);一次多个
插入操作:update student set address="北京昌平"where id=1;
删除操作:delete from student where id=1;

2.3 客户端工具:
sqlyog
niv
第三节 DQL数据查询:
查询关键字:select
查询所有列:select from stu 查询stu表中所有
查询部分列:selct id,name from stu; 查询id和name两列
条件查询:select * from stu where gender=“female”and age《50 性别为女,年龄小于50
select * from stu where id=1001 or name=“李四” id为1001或者姓名李四
select * from stu where id=1001 or id=1002 or id=1003 id为123的学生
select * from stu where id in(1001,1002,1003) 于上一致
select * from stu where age is null 查询年龄为空的人
select * from stu where age is not null 年龄不为空的人
select * from stu where age between 20 and 40 年龄大于等于20 小于等于40 的人
3.1 模糊查询:
查询关键字 like(像) _ 任意一个字符 % 0到n个字符 李_ ->李四 李刚 张%->张大炮 张益达
select * from stu where name like ___
select * from stu where name like _大%查询第二个是大的人的记录
3.2 去除重复记录 关键字 :distinct
select distinct sal from emp 去除工资相同的记录
3.3 查看**之和 关键字 ifnull(comm,0) 如果为空返回0
select sal,comm sal+ifnull(comm,0) form emp 工资和奖金
字符相加:关键字 concat()
select name,job concat(name,‘的工作是’,job) from emp 谁谁+的工作是+job
取列名: 关键字 as 可写可不写
select job,‘哈弗大学’as shccol from emp 添加一列 列名shccol
3.4 查询排序 升序:asc 降序:desc
select * from stu order order by asc(desc)按年龄升序或降序排列
select * from emp order by age desc , empno asc 按工资降序,工资相同工号升序
3.5 聚合函数 :count()统计指定类不为null max 最大 min 最小 sum 和 avg平均
select count(
) from emp 统计数据个数
select count(comm)from emp 计算这列非空的个数
select count()from emp where sal>=2500 计算工资大于2500的人数
select count(
)from emp where sal+ifnull(comm)>=2500 工资加奖金大于2500人数
select count(comm),count(magr)from emp 统计又奖金的,有工龄的
3.6 sum和avg:
select sum(sal) from emp 月薪和
select sum(sal+ifnull(comm,0))from emp 工资加上奖金总和
select avg(sal) from emp 平均工资
select max(sal) from emp 最高工资
select min(sal) from emp 最低工资
3.7 分组查询: group by
select deptno sum(sal) from emp group by deptno 按照部门分组各个部分工资和
select deptno count(*)from emp where sal >1500 group by deptno 部门工资大于1500
select deptno sum(sal) from group by deptno having sum(sal)>9000;
3.8 LIMIT 限制查询
select * from emp limit 0,5;#0是开始位置 5查询数据个数
3.9 分页查询 每页5一条记录 查询第一页
select * from emp limit 0,5;
分页查询 每页5条记录 查询第二页
select * from emp limit 5,5;
查询书写顺序 where - group by - having - order by(排序) - limit(分页)
where 是对原始数据筛选
group by 把数据进行分组
having 是分组之后再筛选
order by 排序
limit 限制
where group by order by limit 可单独使用
having 必须再group by 的后边

查询执行顺序:from 表 where- group by - having - order by -select- limit

第四节:约束

1、主键约束:primary key 不能重复,不能为null
1\create table student(id int primary key, name varchar(20));
2\create table student(id int , age int,primary key(id, name));
2、唯一约束:unique [key] 不能重复,可以为null
1、create table person(id int , phone varchar(16) unique ,address varchar(50))
3、自动增强列(auto_increment),字段必须是数字类型 ,而且必须是主键或唯一键
create table emp(id int primary key auto_increment);
insert into emp(null,‘少比’,10000,‘板砖’);null不代表空
二、域完整性约束:
char(0-255) 定长字符串 varchar 变长字符串
default 默认值 not null 不为空 check()只能是check内的值 否则报错
三、引用完整性约束
外键约束:foreign key
constraint【创建列sid】 foreign key(sid) references引用 student表(id)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值