ER模型:关系:1-1 1-N M-N (在关系数据库中,不能够直接表示多对多的关系,必须把多对多的关系拆分成两个一对多的关系。从实现的角度上说,多对多的关系必须要用三张数据库的表来实现,其中两张是储存多方实体,比如说学生-课程 学生是一张表 课程是一张表 学生和课程表的主键作为中间表的联合主键)
记录:如果在表中,是指表中的一行(一条记录)
MySQL(关系型数据库):RE(实体,关系,属性)=>>1:1 1:n m:n (m实体表n实体表)
关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了。 https://baike.baidu.com/item/数据库范式/7309898?fr=aladdin
查看MySQL使用的引擎命令: show engines;
MySQL四种常见的数据库引擎:innodb, myisam,memory,archive.
MySQL的全局变量:搜https://www.csdn.net/gather_2c/MtTaIgzsOTQxOC1ibG9n.html
通过explain分析低效率的SQL语句的执行情况 优化
不等于 : <> <==> !=;
select * from 表名 where 字段名 like "_ _ _数值开头";
select * from 表名 where 字段名 like "%数值ii%";
//只要包括数值i的都能查到
select address count(id), sum
1。单标操作的完整语句 2.创建用户的语句
3。授权和回收权限 4.flush privileges
help contents; //帮助内容
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the following
categories:
Account Management //账户管理
Administration //政府
Compound Statements //复合语句
Contents //内容
Data Definition //数据定义
Data Manipulation //数据操作
Data Types //数据类型
Functions //功能
Geographic Features //地理特征
Help Metadata //帮助元数据
Language Structure //语言结构
Plugins //插件
Procedures //程序
Storage Engines //存储引擎
Table Maintenance //表的维护
Transactions //交易
User-Defined Functions //用户定义函数
Utility //实用程序
help show 帮助显示
日期函数跟字符串函数---help 面试题
activiti
作业:创建表,创建用户,授权,取消权限
@ MySQL创建用户:
create user 'qq'@'localhost' identified by '666666';
create user '用户名'@'来源地址' identified by '用户密码';
create user 用户名 identified by '用户密码';
@ 删除用户:
drop user 用户名;
drop user 'sss'@'%';
drop user '用户名'@'来源地址'
@ 重更名及修改主机:
rename user 原用户名 to 新用户名;
rename user 's'@'111%' to 'chao'@'192.168.1.1%';
重更名 user '原用户名'@'原来源地址' to '新用户名'@'新来源地址';
@ 给用户修改密码:
set password=password('666666'); //给当前登录的用户修改密码
set password for 'chao'@'192.168.1.1%'=password('666666');
//为其他用户修改密码
@ 给 test 分配所有的权限:
grant all on *.* to 用户名;
grant all on *.* to 'test'@'%';
grant all on *.* to '用户'@'来源地址';
其中all 可以替换成select,insert,update,delete等
@ 查看用户权限:
show grants for '用户名';
@ 收回 test的所有权限:
revoke all on *.* from 用户名;
revoke all on *.* from 'test' @'%';
@ 刷新权限 :flush privileges;
@ 查看用户密码权限
show variables like '%validate%';
@ 密码安全类型
set global validate_password_policy=0;
@ 密码最少长度:
set global validate_password_length = 1;
-----------事 务--------------
@ 事务具有四个属性:ACID
transaction(事务): ACID(原子性,一致性,隔离性。持久性)
@ 开始一个事务: begin
@ 提交一个事务: commit
@ 回滚一个事务: rollback
@ 设置自动提交开启: set autocommit=0;
@ 设置自动提交关闭: set autocommit=1;
-----------索 引--------------
@ 创建索引:
create index suoyin_idx on test(id);
create index 索引名 on 表名(列名);
@ 以修改的方式创建索引的语法:
(1)alter table test add index ss_idx(id);
alter table 表名 add index 索引名(列名);
(2)alter table test add unique(id);
alter table 表名 add unique(列名);
(3)alter table 表名 add primary key (列名) ;
@ 显示索引信息:
show index from testG;
test=(表名)
show keys from testG;
@ 删除索引的语法:
(1)drop index suoyin_idx on test;
drop index 索引名 on 表名;
(2)alter table table_name drop index index_name ;
alter table 表名 drop index 列名
(3)alter table table_name drop primary key ;
函数跟存储过程的区别:
@ 内连接:
(1)显示内连接:select t1.*,t2.* from tb ti inner join tb t2 on t1.id=t2.id;
(2)隐式内连接:select t1.*,t2.* from tb1 t1,tb2 t2 where t1.fk_id=t2.pk_id;
@ 外连接:
(1)左外链接:select t1.*, t2.*from tb1 t1 left [outer] jion tb2 t2 on t1.fk_id=t 2.pk_id;
(2)右外连接:select t1.*, t2.*from tb1 t1 right [outer] jion tb2 t2 on ti.fk_id= t2.pk_id;
(3)完全链接:select t1.columns... from tb1 t1 union [all] select t2.columns... t b2 t2 where condition_columns
@ 笛卡尔积(禁止使用)
@ CRUD(增删改查):insert retrieve update delete;
(1)查不重复的行: distinct
(2)select * from t1 where condition group by grp_cloumns having grp_condition order by sorted_
联合查询(两个表的查询结果相对应的列的类型必须保持一致):select t1.c1,t1.c2 from tb t1 union select t2.c1, t2.c2 from tb t2;
A)内连接:join,inner join
B)外连接:left join,left outer join,right join,right outer join,union
C)交叉连接:cross join
select * from biao where id not in (select );
《视图》