<1>数据库分类:
1.·1连接数据库(命令行连接)
mysql -uroot -p --这里的p对应自己设置的密码
1.2.数据库xxx语言(CRUD)
DDL 定义
DML 操作
DQL 查询
DCL 控制
1.3数据库大致可以分为两类:关系型数据库和非关系型数据库
关系型数据库:指采用关系模型来组织数据的数据库。指的是二维表格模型
非关系数据库:不规定基于SQL实现(key_value 基于键值对;基于文档型等)
<2>数据库操作
2.1显示当前数据库
2.2创建数据库:例如创建一个sc据库
注:一般采用utf8mb4字符集
2.3使用数据库
2.4删除数据库
<3>常用数据类型
数据类型 大小 说明 对应java类型
BIT[(M)] M指定位数,默认为1 M范围1-64,存储数值范围0—2^M-1 Boolean
INT 4字节 Integer
DECIMAL(M,D) M/D最大值+2 M为指定长度,D为小数点位数 BigDecimal
VARCHAR 0—65535 可变长度字符串 String
TEXT 0-65535 长文本数据 Sting
TIMESTAMP 4字节 1970—2038 java.util.Date/java.sql.Timestamp
<4>表的操作
需要操作数据库中的表的时候需要先使用数据库:
4.1创建表
4.2查看表结构
4.3删除表
<5> CRUD(Create Retrieve Update Delete)
5.1新增(Create)
案例:
(1)单行数据+全列插入
(2)多行数据+ 指定列插入
5.2查询(Retrieve)
案例:
(1)全列查询
(2)指定列查询
(3) 查询字段为表达式
表达式不包含字段
表达式包含一个字段
表达式包含多个字段
(4)别名:为查询结果中的列指定别名
(5)去重(DISTINCT):对某列数据进行去重:
由于单列无重复的,所以查出来列数不变
(6)排序:ORDER BY
DESC:降序(从大到小)
ASC:升序(从小到大),默认为ASC
注:NULL数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
使用表达式及别名排序
--查询同学的总分由高到低
对多个字段进行排序,排序优先级随书写顺序
--查询同学各门成绩,依次按照:数学降序,英语升序,语文升序的方式显示
(7)条件查询:WHERE
基本查询:(不可以用别名)
AND与OR
注明:AND的优先级高于OR,可用小括号包裹先执行的部分
范围查询
BETWEEN...AND...(使用AND也可以实现)
IN(OR也可以实现)
模糊查询:LIKE
--%匹配任意多个(0个)自负
--_匹配严格一个任意字符
NULL的查询:IS[NOT]NULL
(8)分页查询:LIMIT
--从0开始,筛选n条结果 LIMIT n;
--从s开始,筛选n条结果LIMIT s,n;
--从s开始,筛选n条结果LIMIT n OFFSET s;
案例:按照id进行分页,每页三组数据,分别显示第1,2,3页
5.3修改(Update)
--将总成绩倒数前三的同学数学减去10分
未更新前:
更新后:
5.4 删除:(delete)
案例: