Mysql总结
2020-12-11 16:38:12 0 举报
AI智能生成
mysql的基础知识,面试的高频点
作者其他创作
大纲/内容
视图 view
1.视图的作用:方便其它人员调用我需要让他人可以使用的数据库。其实就是当做一个查询表来使用。(临时表)
2.创建视图:create 视图名 [(列名1,列名2......)]as select 语句
3.删除视图:drop [ if exists] 视图名
数据库之int、varchar、char
1.int(n) 并不表示能够 存储的最大长度
2.varchar(n) 长度必加
3.char(n) 表示能够存储的最大长度
MySQL常见的问题
1.字符集编码及中文乱码问题
utf8:(万国码) gbk:(中文码)
注意字符集的统一
2.字符集的相关设置
create datebase test1 character set gbk
3.字符集的校对
查看状态:show table statues
校对规则是定义了比较字符串的方式,解决排序和字符分组问题,使用utf8_general_ci;collate=utf8_general_ci;
4.数据长度的设定(int、char、varchar)
子主题 1
子主题 2
子主题 3
存储引擎
1、数据库的存储引擎类型
MyISAM(全文搜索 full text 不支持事务)、BLACKHOLE、CSV、MEMORY、ARCHIVE、InnoDB(支持事物 不支持全文搜索(5.6版本开始支持) 推荐使用innoDB 速度 快)
2、引擎的基本操作
1.创建引擎
2.产看引擎
show table statue\\G show table statues
3.修改引擎
alter table 数据库表 engine=innodb
3、MyISAM与innodb的区别
MyISAM:表级锁、奔溃恢复支持不好
innoDB:行级锁、奔溃恢复好 、性能快
Mysql
简单查询
一、升序
select* from 表名 order by 字段名 asc
二、降序
select* from 表名 order by 字段名 desc
三、多个字段排序
四、安特定类别查询来排序
五、筛选数据
2.第二页有6条 (2-1)*10 -- (当前页面-1)*每页的数量 -- 取第m+1(包括m+1)条之后的n条数据 -- 取第m条(不包括m)之后的n条数据
六、聚合函数
1.计算count
SELECT COUNT(0) FROM productinfo/SELECT COUNT(pid)FROM productinfo WHERE ptype='彩妆'
2.求和sum
SELECT SUM(price) FROM productinfo;
3.平均值 avg
SELECT avg(price) FROM productinfo;
4.最大值 max
SELECT max(price) FROM productinfo;
5.最小值 min
SELECT min(price) FROM productinfo;
七、注意
- 1. 使用了group by后,select后出现的字段要么 -- 只能出现在group by子句中, -- 要么只能出现在聚合函数中
2. where在group之前执行 -- having 是在group 之后执行
3. 根据聚合的结果再次筛选,一定要放在having当中 -- 在where条件后面,无法使用聚合函数
八、模糊查询
认识Mysql
概念:简称结构化查询语句,是关系型数据通讯的标准语言
SQL的种类:
(2)DML,数据库操作语言,用于关系型数据库对象的操作: INSERT UPDATE DELETE
(5)数据管理命令:能够审计和分析对数据库的操作,用来帮助和分析数据运行情况
(6)实物性控制命令:BEGIN TRANSACTION 用于开始一个数据库事务 COMMIT TRANSACTION 提交一个数据库事务 POLLBACK TRANSACTION 回滚一个数据库事物 SET TRANSACTION 设置事物名称
数据库的结构
1、表
是数据的主要存储对象,有多个字段组成,一条记录也称为一行数据,列是表中基于某个字段的所有数据
2、主键
在关系型数据库中,主键唯一标识了表中的每一条记录,通常在创建表的过程中初始化
数据库的字段
(一)整型
tinyint 微整
smallint 小整
int 整型
bigint 大整
(二)浮点型
float 单精度
double 双精度
(三)日期
datetime
timestamp
(四)字符串
char(长度)
varchar(长度)
text-----长文本
CURD(增删改查)
一、数据库
1.创建数据库:CREATE DATABASE mydb;
2.查看数据库:SHOW CREATE DATABASE mydb;
二、表
1.创建表:CREATE TABLE IF NOT EXISTS stuinfo(字段名 数据类型 not null comment'注释信息'........);
2.修改表字段的数据类型: ALTER TABLE 表名 MODIFY 字段名 VARCHAR(4) NOT NULL DEFAULT '李志强' COMMENT '学生姓名';
3.查看表结构:desc 表名
三、查询
查询表:SELECT * FROM 表名;
四、插入
五、修改
六、删除
1. 删除表数据,建议带条件进行有选择性的删除 -- delete from stuinfo ;
2.删除表结构,不可带条件,等同恢复出厂-- truncate table stuinfo;
3.删除表结构,不带条件 -- drop table stuinfo;
JDBC
DQL
1.连接查询
左/(右)连接
2.联合查询(列数一致)
select name from student union all select mark from marks
3.子查询
select * from student where id in (select stu_id from marks)
4.LIMIT查询,限制查询的条数
1.select *from 表名 limit 3; 3代表限制的条数
DCL
1.创建用户:create user 用户名 @'ip地址' identified by '密码' 此用户只能在指定的IP上使用 所有的IP要用%
2.用户授权:create/revoke(撤销权限) 权限一、权限二、....... on 数据库名 .*to 用户名 @ip地址或者%
DTL事务控制语言
1.含义:事物可以保证一组SQL语句要么成功要么失败,默认自动提交。
2.使用方法
start transaction sql语句
1.如果上面的sql语句没有问题 commit(提交)
2.如果有问题 rollback(回滚)
3.事物的特性
(1)原子性:一个事务中的所有语句,应该做到要么全做,要么全都不做。
(2)一致性:让数据保持逻辑上的“合理性”。
(3)隔离性:如果多个事物同时并发执行,但每个事物就像各自独立执行一样。
(4)持久性:一个事务执行成功,则对数据来说是一个明确的硬盘数据的更改(而不仅仅是内存的变化)
0 条评论
回复 删除
下一页