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:行级锁、奔溃恢复好 、性能快
简单查询
一、升序
select* from 表名 order by 字段名 asc
二、降序
select* from 表名 order by 字段名 desc
三、多个字段排序
SELECT * FROM 表名 ORDER BY 字段名一 DESC,
字段名二 ASC;
四、安特定类别查询来排序
SELECT * FROM 表名 WHERE ptype='彩妆'
ORDER BY price ASC,jfen DESC;
五、筛选数据
1. limit m,n 取第m+1(包括m+1)条之后的n条数据
SELECT * FROM productinfo WHERE ptype='彩妆'
ORDER BY price ASC,jfen DESC
LIMIT 0,10;
2.第二页有6条 (2-1)*10
-- (当前页面-1)*每页的数量
-- 取第m+1(包括m+1)条之后的n条数据
-- 取第m条(不包括m)之后的n条数据
SELECT * FROM productinfo WHERE ptype='彩妆'
ORDER BY price ASC,jfen DESC
LIMIT 10,10;
六、聚合函数
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子句中,
-- 要么只能出现在聚合函数中
SELECT COUNT(0) '数量',ptype FROM productinfo
GROUP BY ptype;
-- 完美芦荟矿物晶(瓶)
SELECT * FROM productinfo WHERE ptype='健康食品'
AND price>200
2. where在group之前执行
-- having 是在group 之后执行
SELECT COUNT(0) '数量',AVG(price),ptype FROM productinfo
WHERE ptype='健康食品' AND price>200
GROUP BY ptype
3. 根据聚合的结果再次筛选,一定要放在having当中
-- 在where条件后面,无法使用聚合函数
SELECT COUNT(0) AS 'mm',ptype
FROM productinfo WHERE price>200 AND COUNT(0)>10
GROUP BY ptype HAVING COUNT(0)>10
八、模糊查询
SELECT pname,COUNT(0) '数量',ptype FROM productinfo
WHERE pname LIKE '%芦荟%'
GROUP BY ptype;(有特殊字段的可以用—)
认识Mysql
概念:简称结构化查询语句,是关系型数据通讯的标准语言
SQL的种类:
(1)DDL ,数据定义语言,它是SQL语言的一部分,允许数据库用户或者重新构建新对象: ①CREATE TABLE ALTER TABLE DROP TABLE ②CREATE INDEX ALTER INDEX DROP INDEX
(2)DML,数据库操作语言,用于关系型数据库对象的操作: INSERT UPDATE DELETE
(3)DQL,数据库查询语言,主要完成对数据库的查询:通常用select来执行
(4)DCL,数据库控制语言主要用于数据控制命令,允许用户在数据库中进行数据访问控制,通过用于创建与用户访问相关的对象,也控制着用户的权限分配:ALTER PASSWORD GRANT REVOKE CREATE SYNONYM
(5)数据管理命令:能够审计和分析对数据库的操作,用来帮助和分析数据运行情况
(6)实物性控制命令:BEGIN TRANSACTION 用于开始一个数据库事务 COMMIT TRANSACTION 提交一个数据库事务 POLLBACK TRANSACTION 回滚一个数据库事物 SET TRANSACTION 设置事物名称
数据库的结构
1、表
是数据的主要存储对象,有多个字段组成,一条记录也称为一行数据,列是表中基于某个字段的所有数据
2、主键
在关系型数据库中,主键唯一标识了表中的每一条记录,通常在创建表的过程中初始化
数据库的字段
(一)整型
tinyint 微整
smallint 小整
int 整型
bigint 大整
(二)浮点型
float 单精度
double 双精度
dacimal(m,d) 定点型
(三)日期
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 表名;
四、插入
插入数据:INSERT INTO stuinfo VALUES('001','赵一雄','男','YF1803');
INSERT INTO stuinfo(id,sname) VALUES('002','李倩');
五、修改
修改信息:UPDATE stuinfo SET sname='猪坚强',sex='男',class='YF1803'
WHERE id=005;
六、删除
1. 删除表数据,建议带条件进行有选择性的删除
-- delete from stuinfo ;
2.删除表结构,不可带条件,等同恢复出厂
-- truncate table stuinfo;
3.删除表结构,不带条件
-- drop table stuinfo;
JDBC
DQL
1.连接查询
A:内连接查询:select s.name,m.mark from student as s,mark as m where s.id=m.stu_id. 或者可以写成 select s.name, m.mark from student as s inner join mark as m where s.id=m.stu_id.
左/(右)连接
B:左/(右)连接:select s.name, m.mark from student as s left/(right) join mark as m on s.id=m.stu_id.
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代表限制的条数
2.select * from 表名 limit 3,5 3代表从第三个数据开始查询,5代表查询几个数据出来。
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 条评论
下一页
为你推荐
查看更多