完成了考研这个任务,准备考软件设计师,刚开始复习,发现之前学的所有知识全部都忘记了,JavaWeb,数据库,Android等等都忘记了,现在只能按照软件设计师的要求来进行复习,最开始我选择的是数据库,在我看来,一个软件最重要的就是数据库了,数据库设计好了,剩下的就是就是增删改查了。这篇文章就是重新复习MySQL数据库的知识。
这篇文章主要从以下几个方面来复习MySQL:
1、MySQL的登陆与退出
2、DDL
3、DML
4、DQL
5、字段的约束、外键
6、表与表之间的关系、三大范式
7、事务
8、DCL
9、查询典例
1、MySQL的登陆与退出
MySQL的登陆方式有两种,一种是采用命令行的方式,win+R,输入cmd,输入 mysql -u 用户名 -p密码(前提是把mysql放在环境变量中),退出方式直接输入exit;第二种是采用可视化界面的方式进行连接 ,退出方式关闭程序即可。
2、DDL
DDL主要是操作库和表的一些语句,常用的如下:
- show databases—–查看所有的数据库
- use database 数据库名称 —–使用某个数据库
- create database 数据库名称—–创建数据库
- drop database 数据库名称—–删除数据库
- alter database 数据库 character set utf8 —–修改数据库的字符集为ut8
- show tables ——查看所有的表
- create table 表名 (字段名 类型 约束);—–创建表格
- drop table 表名 ——删除表
- alter table 表名 add 字段名 约束 ——-增加一个字段名
- alter table 表名 modify 字段名 类型 约束 ——-修改表的字段名
- alter table drop 字段名——删除表地字段名
3、DML
DML主要是对表中记录地增删改
insert into 表名 (字段名)values (对应地值)——-增加数据
update 表名 set 字段名=值 where 条件——-修改字段的值
delete from 表名 where 条件——删除记录
在更新和删除记录时,一定要注意这个条件,我记得我们医院的老师有一次就是更新数据,把医院所有科室的名称都改成骨科了,造成所有患者的挂号界面显示的都是骨科,这一点一定要注意。
4、DQL
DQL在所有的语句中用的最多,在我实习的过程中,带教老师用的最多的就是多表查询,看了老师写的SQL语句,在比较自己之前在学校写的SQL语句,一比较,相形见绌,老师写的SQL连接了很多表,而且医院的数据库的表的字段名特别多,很复杂!
单表查询:select * from 表名 where 条件 group by 字段 having 条件 order by 字段 ,这是最基本的一个查询语句。
去重语句:select distinct 字段名 from 表名 as a;
条件查询,模糊查询 :条件查询就是在where后面加上条件即可,模糊查询,where name like ‘_%’,”_”代表单个字符,“%”代表多个字符
排序查询:order by 字段名 asc desc
聚合函数:对列做运算!!!!count(),sum(),max(),min(),avg();
分组查询:group by 字段名 having 字段名 条件;分组查询的字段只能是 分组字段或者聚合函数
分页查询:select * from 表名 limit 开始索引 显示数量
开始索引=(页数-1)*显示数量
约束:primary key 主键 foreign key 外键 unique 唯一 not null 不为空 auto increment 自增
外键 constraint 外键别名 foreign key(字段名)references 表名(列名)(on update cascade)级联更新(on delete cascade)级联删除,级联更新和级联删除可以省略。
5、表与表之间的关系、三大范式
表与表之间关系有三种,一对一,一对多,多对多,一对一关系的表合成一张表,一对多的表需要借助外键,多对多关系需要借第三张表来联系多对多的关系。数据库的三大范式比较抽象,我记得当时我在学习的时候,就挺困难的,1NF是要使所有的属性不在可以分割,2NF是要消除部分依赖,3NF是要消除传递依赖。
6、事务
事务包含多个操作,这些操作同时成功,或者同时失败,比如在在银行转账的操作,A向B转500元,首先A自己的账户要减少500,B的账户要增加500,若两个操作不是在一个事务中,就有可能会发生A的钱减少了,但是B的钱没有增加。
事务的具体操作就是:开启事务,start transaction 回滚rollback 提交commit
事务具有四大特性,原子性,持久性,一致性,隔离性
7、DCL
DCL操作一般就是DBA所操作的,一般程序员了解即可
查询用户:在mysql中的user表中
添加用户:create user 用户名@主机名 identified by 密码
删除用户:drop user 用户名@主机名
查询权限:show grants for 用户名@主机名
授权:grant 权限列表 on 数据库.表名 to用户名@主机名
撤销权力:revoke 权限列表 on 数据库.表 from 用户名@主机名
MySQL的知识大致就复习到这吧,以后学习到新的知识在继续往这添加!