数据库的学习2

1.约束

1.主键约束

  • primary key

    • 用来区分表中的数据

      • 唯一不重复的值

      • 不能包含null值

语法:

  1. 创建表时添加主键:create table 表名 ( 字段名 字段类型 primary key,字段名 字符字段类型);
  2. 删除主键约束:alter table 表名 drop primary key;
  3. 建表后单独添加主键约束:alter table 表名 add primary key(字段名);

2.主键自增

语法:字段名 字段类型  primary key auto_increment;

注意事项:auto_increment:必须是数值类型;

-- 修改自动增长的开始值(面试题)
ALTER TABLE st2 AUTO_INCREMENT=1000;

 3.唯一约束

作用:让字段的值唯一,不能重复

语法:create table 表名(字段名 字段类型 unique,字段名 字段类型) ;

 4.默认值约束

作用:如果字段不设置值,就使用默认值

语法:create table 表名(字段名 字段类型 default 值,字段名 字段类型) ;

5.非空约束的作用

作用:让字段的值不能为null

语法:create table 表名(字段名 字段类型 not null,字段名 字段类型) ;

-- 面试题: 主键是唯一和非空,普通的字段我们也可以添加唯一和非空,有区别吗?
/*
一张表只有一个主键
一张表可以有多个唯一非空的字段
*/

6.外键约束

概念:一张表中的某个字段引用其他表的主键,这个字段成为外键

创建时添加外键约束的语法: create table 表名 ( 字段名 字段类型,字段名 字符字段类型,

[constaint 外键约束名] foreigh key(外键字段名)  references 主表(主键字段名)

);

-- 删除外键约束(了解)
ALTER TABLE employee DROP FOREIGN KEY fk_dep_id;
-- 在已有表添加外键约束, 外键约束可以省略: CONSTRAINT 外键约束名 (了解)
-- 省略CONSTRAINT外键约束名 数据库会自动设置外键约束的名字,我们要到 `3信息` 中查找
ALTER TABLE employee ADD FOREIGN KEY(dep_id) REFERENCES department(id);

2.数据库设计

  • 1.软件研发步骤

产品经理-架构师-开发工程师-测试工程师-运维工程师

  • 2数据库设计概念

    • 根据业务的具体需求

  • 3.数据库设计的步骤

需求分析-逻辑分析-物理设计-维护设计

1.表关系

  1. 一对多:如部门和员工,在多的一方建立外键关联一的一方主键.

  2. 一对一

  3. 多对多:如商品和订单,实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

2.事务

  • 原子性:要不同时成功,要不同时失败;

  • 一致性:事务前后数据的完整性必须保持一致;

  • 隔离性:多个并发事务之间数据要隔离,不能互相影响;

  • 持久性:事务一旦提交或者回滚,对数据库中的数据的改变是永久的;

  • 自动提交事务

    • select @@autocommit

    • set autocommit=0;

3.多表查询

1.隐式内连接:格式select * from 表名1,表名2 where 条件(不推荐使用,会丢失表中数据)

2.显示内连接:格式select 字段列表 from 表1 [inner] join 表2 on 条件;

3.左外连接:select 字段列表 from 表1 left [outer] join 表2 on 条件; 

4.右外连接:select 字段列表 from 表1 right [outer] join 表2 on 条件; 

5.子查询:一个查询语句的结果作为另一个查询语句的一部分;select 查询字段 from 表 where 条件; 

你可能感兴趣的:(数据库,学习)