A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

三大范式

第 1 范式 原子性,每列不可再拆分

存在的问题:数据冗余,数据添加存在问题,数据删除存在问题

第 2 范式 不产生局部依赖,表中每一列都完全依赖于主键。

存在的问题:数据添加存在问题,数据删除存在问题

第 3 范式 不产生传递,表中每一列都直接依赖于主键

多表查询

笛卡尔积

有两个集合A ,B,取这两个集合所有的组合情况

多表查询:
内连接:
隐式内连接,
Select 字段列表 from 1,2 where 关联条件 and 条件;
显式内连接
    Select 字段列表 from 表名1 inner join 表名2 on 关联条件 where 条件;
左外连接:
Select 字段列表 from 表名1
Left join 表名2  On 关联条件
Where 条件
   右外连接:
Select 字段列表 from 表名1
right join 表名2  On 关联条件
Where 条件

子查询:
SELECT 查询字段 FROM 表 WHERE 字段=(子查询);

事务

事务:

如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败


操作:

1.开启事务:start transaction;

2.回滚:rollback;

3. 提交:commit

事务的提交方式:手动和自动

开发中一般是手动关闭自动提交



四大特性:

原子,隔离,持久,一致性


修改事务的默认提交方式:

set @@autocommit=0;



事务的隔离级别:

概念:多个事务之间隔离的,互相独立的,但是如果多个事务操作同一批数据,则会引发一些问题,

设置不同的隔离级别就可以解决这些问题


隔离级别:

1.read uncommitted

2.read committed

3.repeatable read

4.serializable  

* 数据库查询隔离级别

select @@tx_isolation

设置隔离级别

set global transaction isolation level 级别字符串;


DCL

* DCL:管理用户,授权
        1. 管理用户
                1. 添加用户:
                        * 语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
                2. 删除用户:
                        * 语法:DROP USER '用户名'@'主机名';
                3. 修改用户密码:

                        UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
                        UPDATE USER SET PASSWORD = PASSWORD('abc') WHERE USER = 'lisi';

                        SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
                        SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');

                        * mysql中忘记了root用户的密码?
                                1. cmd -- > net stop mysql 停止mysql服务
                                        * 需要管理员运行该cmd

                                2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables
                                3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功
                                4. use mysql;
                                5. update user set password = password('你的新密码') where user = 'root';
                                6. 关闭两个窗口
                                7. 打开任务管理器,手动结束mysqld.exe 的进程
                                8. 启动mysql服务
                                9. 使用新密码登录。
                4. 查询用户:
                        -- 1. 切换到mysql数据库
                        USE myql;
                        -- 2. 查询user表
                        SELECT * FROM USER;

                        * 通配符: % 表示可以在任意主机使用用户登录数据库

        2. 权限管理:
                1. 查询权限:
                        -- 查询权限
                        SHOW GRANTS FOR '用户名'@'主机名';
                        SHOW GRANTS FOR 'lisi'@'%';

                2. 授予权限:
                        -- 授予权限
                        grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
                        -- 给张三用户授予所有权限,在任意数据库任意表上

                        GRANT ALL ON *.* TO 'zhangsan'@'localhost';
                3. 撤销权限:
                        -- 撤销权限:
                        revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
                        REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';








0 个回复

您需要登录后才可以回帖 登录 | 加入黑马