Mysql
一。数据库的介绍
1.什么是数据库?
-是一种持久化存储数据的技术!
-数据库保存的数据是有格式的!
-数据库中真实存在于磁盘中的:默认地址: c:/programdata/mysql
2.什么是数据库管理软件 DBMS
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据
3.数据库中的单位
库 保存表的
表 由行组成
行 由列组成
列 具体的某个数据
一个库中可能保存多张表! 一个表中有很多行 一个行也可以包含很多列!
4.数据库中单位如何映射实体类!
一个对应实体类的集合应该对应的是一个表!
一个实体类对象对应的应该是一行的数据
对象中的一个属性对应的应该是一列数据!
5.数据库中使用的sql
SQL数据库管理软件操作数据的一种语言!!
mysql: insert into xx ; 往数据库中插入数据!
6.sql语句的分类
DDL**(Data Definition Language):
数据定义语言,用来定义数据库对象:库、表、列等; CREATE、 ALTER、DROP
DDL: 创建 删除 修改
库
表
列
DML***(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
INSERT 插入数据
DELETE 删除数据
UPDATE 修改更新数据
DQL***********(Data Query Language):数据查询语言,用来查询记录(数据)。
SELECT
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
二。数据库DDL
数据定义语言
Create Alter Drop
1.操作库 创建库 修改库 删除库
2.操作表 创建表 修改表 删除表
3.操作列 添加列 修改列 删除列
-如何操作库
0.利用数据库管理软件(mysql) 登录数据库!
1.保证mysql服务开启状态
net stop mysql 关闭mysql 服务
net start mysql 启动mysql服务
权限不够 报错拒绝访问5 :
解决方案: cmd 右键管理员身份打开即可!!!
2.如何使用命令登录mysql软件
mysql -uroot -p 回车 输入密码!!
1.创建库
create database 数据库名称;
注意:执行sql语句是识别;
2.查看库
show databases;
展示有多少个库!!
3.删除库
drop database 数据库名称
4.使用一个库
use 库名;
5.查看当前使用库
select database();
注意:同一时间只能操作一个数据库!
-操作表
mysql有类型数据库!
name String --》 varchar
sqlite无类型数据库
create table 表名(
name xx,
age xx);
常用数据类型:
int:整型 默认情况下 -2147483648 ~ 2147483647 4个字节
integer
tinyint 整数 默认情况下 -128-127 1一个字节
smallint 整数 0-65535 -65535/2 - 65535/2 2个字节
bigint 整数 long 很大!!! 8个字节
注意:整数类型可以添加特殊标识 UNSIGNED 代表着没有负数!负数部分转移到正数!
double:浮点型,例如double(5,2)
,逗号前代表 总位数!
,逗号后代表小数点的位数!
注意:有正负值!!
char:固定长度字符串类型;*
name char(0-255) ‘赵伟风 ’
指定的最大长度 0-255
348088053
18514592456
varchar:可变长度字符串类型 ********************************n
name varchar(0-65535) ‘赵伟风’
0-65535
---------------------
text:字符串类型; 65535 描述大文本!!
blob:字节类型;保存一张图片
date:日期类型,格式为:yyyy-MM-dd; “2017-08-01”
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss 会自动赋值
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
-查看库中表
show tables;
-查看表的列的信息
desc 表名
-查看创建表的语句
show create table 表名;
-修改表 ***
1.添加列
alter table 表名 add 列名 类型;
2.删除列
alter table 表名 drop 列名
3.修改列的类型
alter table 表名 modify 列名 新类型;
4.修改列的名字
alter table 表名 change 原列名 新列名 新类型;
-删除表
drop table 表名
三。数据库DML ********************************
数据操作语言
INSERT 插入数据
insert into 表名 1. value (列值1,。。。列值n)
values(列值1,。。。列值n),(列值1,。。。列值n);
1.没有指定列 代表着全部插入!注意:要跟数据库中列的顺序
一一对应!
insert into 表名 2.(列名1,列名2..列名n)
value (列值1,。。。列值n)
values(列值1,。。。列值n),(列值1,。。。列值n);
2.指定列进行插入!注意要跟指定列的顺序一一对应!
1708
name age sex
1.
insert into 1708 value('王东阳','23','男');
insert into 1708 values('王东阳','23','男'),('xx','23','男');
2.
insert into 1708 (name,age) value/values ('xx',12);
注意: 如果数据为空!直接插入null
Long age; //默认值??? null
long age; // 0L
UPDATE
1.基本
update 表名 set 列名 = 新值 , 列名 = 新值
//表中所有的数据修改
2.条件修改
update 表名 set 列名 = 新值 , 列名 = 新值 where 条件!
update 1708 set name = '王小二',age = 11 where name = '王东阳';
3.数据逻辑运算符
update 表名 set 列名= 列名(+-*/)值 where 条件
DELETE
1.基本
delete from 表名 ;
//删除表中的全部数据
2.条件删除
delete from 表名 where 条件;
delete from 1708 where age>10;
3.删除数据和表结构
truncate table 表名
四。数据库DQL *************************** SELECT
数据库查询语言!!!
数据库查询语言不会改变数据的内容!
1.基本查询
-全部查询
select * from 表名;
注意:开发中不推荐这么写!因为有很多垃圾字段!造成查询速度慢!
-全部查询,但是指定查询的列
推荐使用指定列查询!
select 列名,列名 .. from 表名!
2.条件查询
条件查询指的就是在where后面追加条件
下面是常用的条件查询的逻辑符号!!
=、!=、<>、<、<=、>、>=;
BETWEEN…AND;
IN(set); //指定的内容 age in (18,28,38);
IS NULL 是null的
IS NOT NULL 不是null
注意:数据库中null数据不能使用= !=去判断!
age = null; 错误的写法!
age is null;正确的写法!
AND; 且
OR; 或
NOT; 非
3.模糊查询
like
% 匹配任何字符
_ 匹配一个字符
name like '_张%';
张三 小张三 小小张三 小张三三三
%张%
___
4.字段(列)控制
-去重复
SELECT DISTINCT sal,deptno FROM emp;
-ifnull(需要判断的值,如果为null应该等于的值)
-列 起别名
1.
select 列名 AS 别名,列名 AS 别名 where
2.
select 列名 别名,列名 别名 where
5. order by 排序
注意没有where,并且如果有where应该写到where的后面!!
升序 小 -大 asc
降序 大 -小 desc
select * from stu order by age desc / 默认升序 asc
特殊情况
SELECT * FROM emp ORDER BY sal DESC,empno DESC;
当条件一不满足(值相等) 按条件2的去排!
6.聚合函数
聚合函数是用来做纵向运算的函数:
可以不用指定列!
也可以指定列!如果指定了列那么NULL的数据不计算!
COUNT():统计指定列不为NULL的 记录行数;
必须指定列!!!
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
7.分组查询
group by 按字段
1.查询男生和女生的人数
select count(*) ct from stu group by gender;
注意:where 是分组前的条件!!!
where -》 group by -》 order by
8. Having
分组后 组的条件!!!!
只会跟在group by的后面!
查询工资总和大于9000的部门!
select deptno,sum(sal) AS sl from emp where sl >9000 group by deptno;
-----------------------------------关键词排序
select * from xx where and or group by having order by
9. limit 分页查询!
方言!! mysql
limit int值!
查询数据的数量
limit int值1,int值2!
参数介绍:
值1: 起始偏移量
值2: 查询的数量
limit 0,5; == limit 5;
分页公式 ******
select * from stu limit (currentpage-1)*pageSize, pageSize;
order by的后面!
select -- from --- where -- and / or -- group by -- having
--order by --- limit;
作业: DML DQL练习敲一遍!! ****
DML DQL语法抄两遍!! ***
一。数据库的介绍
1.什么是数据库?
-是一种持久化存储数据的技术!
-数据库保存的数据是有格式的!
-数据库中真实存在于磁盘中的:默认地址: c:/programdata/mysql
2.什么是数据库管理软件 DBMS
数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据
3.数据库中的单位
库 保存表的
表 由行组成
行 由列组成
列 具体的某个数据
一个库中可能保存多张表! 一个表中有很多行 一个行也可以包含很多列!
4.数据库中单位如何映射实体类!
一个对应实体类的集合应该对应的是一个表!
一个实体类对象对应的应该是一行的数据
对象中的一个属性对应的应该是一列数据!
5.数据库中使用的sql
SQL数据库管理软件操作数据的一种语言!!
mysql: insert into xx ; 往数据库中插入数据!
6.sql语句的分类
DDL**(Data Definition Language):
数据定义语言,用来定义数据库对象:库、表、列等; CREATE、 ALTER、DROP
DDL: 创建 删除 修改
库
表
列
DML***(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
INSERT 插入数据
DELETE 删除数据
UPDATE 修改更新数据
DQL***********(Data Query Language):数据查询语言,用来查询记录(数据)。
SELECT
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
二。数据库DDL
数据定义语言
Create Alter Drop
1.操作库 创建库 修改库 删除库
2.操作表 创建表 修改表 删除表
3.操作列 添加列 修改列 删除列
-如何操作库
0.利用数据库管理软件(mysql) 登录数据库!
1.保证mysql服务开启状态
net stop mysql 关闭mysql 服务
net start mysql 启动mysql服务
权限不够 报错拒绝访问5 :
解决方案: cmd 右键管理员身份打开即可!!!
2.如何使用命令登录mysql软件
mysql -uroot -p 回车 输入密码!!
1.创建库
create database 数据库名称;
注意:执行sql语句是识别;
2.查看库
show databases;
展示有多少个库!!
3.删除库
drop database 数据库名称
4.使用一个库
use 库名;
5.查看当前使用库
select database();
注意:同一时间只能操作一个数据库!
-操作表
mysql有类型数据库!
name String --》 varchar
sqlite无类型数据库
create table 表名(
name xx,
age xx);
常用数据类型:
int:整型 默认情况下 -2147483648 ~ 2147483647 4个字节
integer
tinyint 整数 默认情况下 -128-127 1一个字节
smallint 整数 0-65535 -65535/2 - 65535/2 2个字节
bigint 整数 long 很大!!! 8个字节
注意:整数类型可以添加特殊标识 UNSIGNED 代表着没有负数!负数部分转移到正数!
double:浮点型,例如double(5,2)
,逗号前代表 总位数!
,逗号后代表小数点的位数!
注意:有正负值!!
char:固定长度字符串类型;*
name char(0-255) ‘赵伟风 ’
指定的最大长度 0-255
348088053
18514592456
varchar:可变长度字符串类型 ********************************n
name varchar(0-65535) ‘赵伟风’
0-65535
---------------------
text:字符串类型; 65535 描述大文本!!
blob:字节类型;保存一张图片
date:日期类型,格式为:yyyy-MM-dd; “2017-08-01”
time:时间类型,格式为:hh:mm:ss
timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss 会自动赋值
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
-查看库中表
show tables;
-查看表的列的信息
desc 表名
-查看创建表的语句
show create table 表名;
-修改表 ***
1.添加列
alter table 表名 add 列名 类型;
2.删除列
alter table 表名 drop 列名
3.修改列的类型
alter table 表名 modify 列名 新类型;
4.修改列的名字
alter table 表名 change 原列名 新列名 新类型;
-删除表
drop table 表名
三。数据库DML ********************************
数据操作语言
INSERT 插入数据
insert into 表名 1. value (列值1,。。。列值n)
values(列值1,。。。列值n),(列值1,。。。列值n);
1.没有指定列 代表着全部插入!注意:要跟数据库中列的顺序
一一对应!
insert into 表名 2.(列名1,列名2..列名n)
value (列值1,。。。列值n)
values(列值1,。。。列值n),(列值1,。。。列值n);
2.指定列进行插入!注意要跟指定列的顺序一一对应!
1708
name age sex
1.
insert into 1708 value('王东阳','23','男');
insert into 1708 values('王东阳','23','男'),('xx','23','男');
2.
insert into 1708 (name,age) value/values ('xx',12);
注意: 如果数据为空!直接插入null
Long age; //默认值??? null
long age; // 0L
UPDATE
1.基本
update 表名 set 列名 = 新值 , 列名 = 新值
//表中所有的数据修改
2.条件修改
update 表名 set 列名 = 新值 , 列名 = 新值 where 条件!
update 1708 set name = '王小二',age = 11 where name = '王东阳';
3.数据逻辑运算符
update 表名 set 列名= 列名(+-*/)值 where 条件
DELETE
1.基本
delete from 表名 ;
//删除表中的全部数据
2.条件删除
delete from 表名 where 条件;
delete from 1708 where age>10;
3.删除数据和表结构
truncate table 表名
四。数据库DQL *************************** SELECT
数据库查询语言!!!
数据库查询语言不会改变数据的内容!
1.基本查询
-全部查询
select * from 表名;
注意:开发中不推荐这么写!因为有很多垃圾字段!造成查询速度慢!
-全部查询,但是指定查询的列
推荐使用指定列查询!
select 列名,列名 .. from 表名!
2.条件查询
条件查询指的就是在where后面追加条件
下面是常用的条件查询的逻辑符号!!
=、!=、<>、<、<=、>、>=;
BETWEEN…AND;
IN(set); //指定的内容 age in (18,28,38);
IS NULL 是null的
IS NOT NULL 不是null
注意:数据库中null数据不能使用= !=去判断!
age = null; 错误的写法!
age is null;正确的写法!
AND; 且
OR; 或
NOT; 非
3.模糊查询
like
% 匹配任何字符
_ 匹配一个字符
name like '_张%';
张三 小张三 小小张三 小张三三三
%张%
___
4.字段(列)控制
-去重复
SELECT DISTINCT sal,deptno FROM emp;
-ifnull(需要判断的值,如果为null应该等于的值)
-列 起别名
1.
select 列名 AS 别名,列名 AS 别名 where
2.
select 列名 别名,列名 别名 where
5. order by 排序
注意没有where,并且如果有where应该写到where的后面!!
升序 小 -大 asc
降序 大 -小 desc
select * from stu order by age desc / 默认升序 asc
特殊情况
SELECT * FROM emp ORDER BY sal DESC,empno DESC;
当条件一不满足(值相等) 按条件2的去排!
6.聚合函数
聚合函数是用来做纵向运算的函数:
可以不用指定列!
也可以指定列!如果指定了列那么NULL的数据不计算!
COUNT():统计指定列不为NULL的 记录行数;
必须指定列!!!
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
7.分组查询
group by 按字段
1.查询男生和女生的人数
select count(*) ct from stu group by gender;
注意:where 是分组前的条件!!!
where -》 group by -》 order by
8. Having
分组后 组的条件!!!!
只会跟在group by的后面!
查询工资总和大于9000的部门!
select deptno,sum(sal) AS sl from emp where sl >9000 group by deptno;
-----------------------------------关键词排序
select * from xx where and or group by having order by
9. limit 分页查询!
方言!! mysql
limit int值!
查询数据的数量
limit int值1,int值2!
参数介绍:
值1: 起始偏移量
值2: 查询的数量
limit 0,5; == limit 5;
分页公式 ******
select * from stu limit (currentpage-1)*pageSize, pageSize;
order by的后面!
select -- from --- where -- and / or -- group by -- having
--order by --- limit;
作业: DML DQL练习敲一遍!! ****
DML DQL语法抄两遍!! ***