MySQL总结

一.

视图与表的区别和联系
1.表属于全局模式中的表,是有实际的物理记录的,是有内容的,是实表;视图属于局部模式的表,没有实际的物理记录,只是一个用来展示内容的窗口,是虚表。所以视图的建立和删除只影响视图本身,不影响对应的基本表。
2.视图是逻辑概念的存在,只能用创建的语句来修改,不占用物理空间,而表占用物理空间,可以及时对它进行修改。
3.视图是已经编译好的SQL语句,是可视化的表,是查看数据表的一种方法,而表不是。从安全的角度来看,用户通过视图并不能接触数据表。


联系:视图是在基本表之上建立的表,它的结构和内容都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表 


=================================================




普通索引(index前不加修饰词)和唯一索引(常用unique修饰index)
单列索引(一个索引包含单个列)和组合索引(包含多个列的索引,要求这些列的组合必须唯一)
全文索引(fulltext)
创建表时创建索引
create table book{(
index(year_publication)
)
UNIQUE、FULLTEXT    index和key为同义词,两者作用相同,用来指定创建索引。


创建唯一索引(单列索引):
create table t(
UNIQUE  index UniqIdx(id)
)
create table s(
index SingleIdx(name(20))

创建组合索引:(多个字段创建上创建一个索引)
create table t3(
index Multildx(id,name,age(100)))


MySQL13章用户管理
host:%
user表
13.2账户管理;
新建普通用户(create user  )在 自己的MySQLuser表中。 
 不建议直接使用MySQL数据库表的方式
 table_priv
 drop和delete删除用户时,选择drop最好


==================================


创建索引:
            1.创建表时
            2.alter table 表名 add 索引类型 索引名(字段名)这两个字段名都在后面
            3.create 索引类型 索引名称 on 表名(字段名)这两个字段名都在后面
      
      
 删除索引:
            1.drop 索引类型 索引名称 on 表名  
            2.alter table 表名 drop 索引类型  索引名称
            
   
             
 创建视图:
            单表创建视图:create view  视图名 as  select 
            多表创建视图:create view 视图名 as select .....from 表名1,表名2.
 修改视图:
            create or replace view 视图名() as select 
            alter view 视图名(字段名) as select
            update view_t  set quantity=5
 删除视图:drop view if exists 视图名
 delete from view_t2 where price=5;
 
 
 创建用户语法:
1. CREATE USER '用户名'@'host' IDENTIFIED BY '密码'  创建的用户无权限
2.GRANT 权限(all是所有权限) ON db.table(*.*表示所有) TO '用户名'@'host' IDETIFIED BY '密码'  WITH GRANT OPTION(赋予创建用户权限);
删除用户:DROP USER '用户名'@'host';


修改当前用户密码 :SET PASSWORD =password('新密码');
修改其他用户密码:SET PASSWORD FOR '用户名'@'host' = password('新密码');


推荐使用GRANT语句修改密码
语法格式:GRANT USAGE ON db.table TO '用户名'@'host' IDENTIFIED BY '新密码';


远程连接数据库,用户的host地址设置为%, 远程连接命令: mysql -u用户名 -p密码 -h 主机地址


=======================================


mysqldump -uroot -p test []>c:\user\Adminstrster....\test_2018_


通过mysql可视化工具。
备份某个表。
mysqldump -u root -p0000 --database test
mysql -uroot -p


日志15.1即可。
const  




MySQL性能优化:
    优化查询:
    1.尽量使用具有唯一标识的字段进行查询。
    2.如果是字符串数据,能用=号的尽量用=号,不要过多的使用like查询
    3.连接查询中不要使用子查询,全部使用连接查询(内连接\左连接\自链接)
    4.对经常查询的表的某列/多列建立索引,提高查询效率。
    5.对数据库进行分区、分表
    6.搭建数据库集群、分布式数据库
    7.对数据进行读写分离
    8.
    16.3分析表等可以不看了。
    16.4.1 优化服务器硬件
    16.4.2 搞运维的可以更好的配置MySQL服务器,优化MySQL服务器。(MySQL参数优化了解就行)
      MySQL优化的方向:
      MySQL性能优化(可能是面试题)
      16.6 专家点拨
      字符串建立索引通过全文建立索引。

      


二.



数据库的基本操作
创建 删除 数据库存储引擎

数据表的基本操作
增删查改

数据类型和运算符

整数类型
浮点类型和定点数类型
日期和时间类型

低级错误又出现了

函数简介
**abs()
select pi()
sqrt()平方根 Mod(x,y)求余
**cel(x),ceiling(x),floor(x)
rand() select rand(),rand(),rand()
select rand(10)
round(x)四舍五入  round(x,y) truncate(x,y)y的数值表示小数点后几位,1的话就是一位

pow(x,y)幂运算函数pow(x,y)x的y次方,y可能为负
exp(3)以e为底的3次方
sin()cos()
其实还有sum()max()count()等函数,
char-length()
concat()将两个字符串合并为一个
concat_ws(x,y)x表示一个分割符
替换字符串的函数insert(s1,x,len,s2)s1旧,x起始位置,len长度,s2新的字符串
lower()lcase()转换成小写upper()转换成大写
left(s,n)相当于切片right()
lpad(‘hello’,4,‘??’),lpad(‘hello’,10,‘??’)填充字符串
rpad()
日期和时间函数
curdate()current_date()两个函数作用相同都可以返回当前系统的时间
current_time()
Unix时间戳函数
Unix_Timestamp(date)Unix_Timestamp(now())
时间戳用于cooie中用户登录
格林尼治即世界时1970 0.0.0 
date_format(date,format)根据指定的格式
%y %Y %M %m %D %H

select *from fruits limit 4,3;
select *from fruits limit 4
基本查询
表单查询
连接查询
1
select 
先执行子查询,再执行父查询。
子查询的结果很多也可以通过连接查询到。
所有子查询能实现的都可以用内连接或外连接来实现,反之不行。
v


 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值