目录
1.数据库数据类型
2.Mysql对应的数据类型
3表格的列定义了几个重要的约束
4数据库操作
数据库:创建、删除
创建表格创建
插入数据
查询数据:
修改数据
删除数据
截断数据
删除表格
数据排序
聚合数据
存储数据的方法?
使用数据库应用程序开发能带来什么好处?
当下主流的数据库
数据库概念
Java数据类型: 8大基本数据类型:byte short int long double float char boolean String date
MySql中数据类型 | java中数据类型 | 大小 (字节) |
解释 |
---|---|---|---|
Tinyint | byte | 1 | |
smallInt | short | 2 | |
int | int | 4 | |
bigInt | long | 8 | |
double | double | ||
float | float | ||
varchar(指定长度) |
String |
||
datetime: |
年月日时分秒 |
||
date |
年月日 |
||
time |
时分秒 |
||
text |
文本类型 |
||
blob |
音频文件 (图片视频等) |
常用的 mysql变量数据类型
整数:int
小数:double
字符串用:varchar(指定长度) varchar(20);//可以保存0-20长度的字符串
Date:年月日
数据库中日期和字符串 使用 单引号引起来
用户名:‘charles’ 日期: ‘2019-04-25’
-- 通过代码创建的数据库称之为 用户数据库
-- 1.创建用户数据库语句 CREATE DATABASE 自定义库名;
CREATE DATABASE StudentDB;
-- 定义字符编码
CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-- 2.设置当前使用的数据库
-- 创表的时候 默认保存在 当前正在使用的数据库中
USE StudentDB;
-- 3.删除数据库 数据库存在 删除存在的数据库
DROP DATABASE IF EXISTS StudentTestDB;
-- 学生表 编号 学生姓名 学生密码 学生性别 学生年级 学生的成绩
-- int varchar(20) varchar(20) varchar(10) int double
CREATE TABLE Student(
id INT AUTO_INCREMENT PRIMARY KEY,
stuName VARCHAR(20) UNIQUE NOT NULL,
stuPass VARCHAR(20) DEFAULT '123' NOT NULL, -- 当不手动插入密码的时候 会给定默认值
stuSex VARCHAR(10) CHECK(stuSex='男' OR stuSex='女'), -- 检查约束
gradeId INT ,
score DOUBLE -- 最后一个字段后面不能加逗号 没加 not null 就默认允许为空
);
-- 创建年级表 编号 年级名称
CREATE TABLE grade(
id INT AUTO_INCREMENT PRIMARY KEY,
gradeName VARCHAR(10) NOT NULL
);
-- 往表格中插入数据 grade():自动增长列 /默认值/ 允许为空的数值 可以不写
INSERT INTO grade(gradeName) VALUES('大一');
INSERT INTO grade(gradeName) VALUES('大二');
INSERT INTO grade(gradeName) VALUES('大三');
INSERT INTO grade(gradeName) VALUES('大四');
-- 插入数据Student 字段与值得顺序必须一一对应
INSERT INTO Student(stuName,stuSex,gradeId,score)
VALUES('charles','男',1,88);
INSERT INTO Student(stuName,stuSex,gradeId,score)
VALUES('jack','男',1,68);
INSERT INTO Student(stuName,stuSex,gradeId,score)
VALUES('Tina','女',2,78);
INSERT INTO Student(stuName,stuSex,gradeId,score)
VALUES('rouse','女',2,58);
INSERT INTO Student(stuName,stuSex,gradeId,score)
VALUES('marry','女',3,98);
INSERT INTO Student(stuName,stuSex,gradeId,score)
VALUES('tomorrow','男',4,88);
INSERT INTO Student(stuName,stuSex,gradeId)
VALUES('quekezhe','男',4);
INSERT INTO Student(stuName,stuSex,gradeId)
VALUES('reduce','男',4); -- 8
INSERT INTO Student(stuName,stuSex,gradeId)
VALUES('reduce1','男',4); -- 8
-- 1.查询表格中所有的数据 *(代表所有列的意思)
SELECT * FROM student; -- 表名
SELECT * FROM grade; -- 表名
-- 2. 查询表格中的部分字段
SELECT stuName,stuPass,score FROM student;
-- 逻辑连接词 or 或者(java ||) and(java &&) not(!)
-- 3.查询及格的学生信息 WHERE:根据什么条件查询
SELECT * FROM student WHERE score>=60;
-- 4.查询 所有及格的女学生
SELECT * FROM student WHERE score>=60 AND stuSex='女';
-- 5.id =1 id=2 id=3的学员信息查询出来
SELECT * FROM student WHERE id=1 OR id=2 OR id=3;
SELECT * FROM student WHERE id>=1 AND id<=3; -- 连续的可以考虑使用
SELECT * FROM student WHERE id BETWEEN 1 AND 3; -- 连续的可以考虑使用
-- 6.id=1 id=3 id=5 的学员信息查询出来
SELECT * FROM student WHERE id=1 OR id=3 OR id=5;
SELECT * FROM student WHERE id IN(1,3,5); -- in 包含
-- 7.查询缺考的学生信息 score IS NULL 分数为空
SELECT * FROM student WHERE score IS NULL;
-- 8.查询没有缺考的学生信息
SELECT * FROM student WHERE score IS NOT NULL;
--修改表格数据
UPDATE student SET stuPass='1234',stuSex='女' WHERE id=2 ;-- 不写where条件默认修改全部
-- 2.删除
DELETE FROM student WHERE id=9;-- 不加where条件 默认删除全部
-- id会重置
TRUNCATE student;
删除表格之后添加信息,id不会重置
DELETE FROM student ; -- id不会重置 永远不回头
-- 1. 从小到大 参加考试的学生根据成绩顺序排名
SELECT * FROM student WHERE score IS NOT NULL ORDER BY score ASC; -- asc 顺序
-- 2.从大到小 参加考试的学生根据成绩倒序排名
SELECT * FROM student WHERE score IS NOT NULL ORDER BY score DESC; -- desc 倒序
-- 聚合函数: 计算平均分 avg() / 总分sum() /最高分max() /最低分min()
-- 统计 表格中总的记录数 count()
SELECT AVG(score),SUM(score),MAX(score),MIN(score),COUNT(*)
FROM student;
SELECT
AVG(score) AS '平均分',
SUM(score) AS '总分',
MAX(score) AS '最高分',
MIN(score) AS '最低分',
COUNT(*) AS '总人数'
FROM student;
-- 也适用于 简单表查询
SELECT stuName AS '学生姓名' ,stuPass AS '学生密码' FROM student;