sql

  • SQL Structured Query Language 结构化查询语言
  • 大部分的关系型数据库,都拥有着基本一致的sql语法
  • DDL
    • DDL: Data Definition Langiage 数据定义语言
    • 操作数据库对象
      • 视图
      • 存储过程
  • DML
    • Data Manipulation Language 数据操控语言
    • 操作数据库中的记录
  • DCL
    • Data Control Language 数据控制语句
    • 操作用户权限

      管理库

查看文档MySql教程

所有的命令都要在终端的控制台登录MySql 执行

  • 创建库 CREATE DATABASE 数据库名;
  • 选择库 use lantong;
  • 删除库 drop database 数据库名

    管理表

  • 创建表 CREATE TABLE table_name (column_name column_type);

  • 删除表 DROP TABLE table_name ;


demo 创建带字段的表

  1. CREATE TABLE IF NOT EXISTS `runoob_tbl`(
  2. `runoob_id` INT UNSIGNED AUTO_INCREMENT,
  3. `runoob_title` VARCHAR(100) NOT NULL,
  4. `runoob_author` VARCHAR(40) NOT NULL,
  5. `submission_date` DATE,
  6. PRIMARY KEY ( `runoob_id` )
  7. )ENGINE=InnoDB DEFAULT CHARSET=utf8;

修改表

image.png

字段

  1. 字段类型
  • bit: 占1位,0或1,false或true
  • int: 占32位,整数
  • decimal(M,N): 能精确计算实数,M是总的数字位数,N是小数位数
  • char(n):固定长度n的字符串
  • varchar(n): 长度可变,最大长度位n的字符
  • text:大量的字符
  • date: 仅日期
  • datetime: 日期和时间
  • time: 仅时间
  1. 自增 无需设置值,每增加一条数据会自动增加(自在那个必须是主键)
  2. 默认值 字段没有值时候的默认值
  3. 必填 该字段必须有值,不然的话新增数据会报错

    主键和外键

主键: 每一条数据的的唯一的标识,代表整条数据的唯一性

  • 唯一
  • 不能更改
  • 无业务含义

外键: 用来产生表关系,本表和其他表的关系

  • 外键一般是其他表的主键
  • 外键关系建立的表,使用到的数据,不能随意删除

    表关系

  1. 一对一
  • 一个A对应一个B,一个B对应一个A
  • 例如:用户和用户信息
  • 把任意一张表的主键同时设置为外键
  1. 一对多
  • 一个A对应多个B,一个B对应一个A,A和B是一对多,B和A是多对一
  • 例如:班级和学生,用户和文章
  • 在多的一端的表上设置外键,对应另一张表的主键
  1. 多对一
  • 一个A对应多个B,一个B对应多喝A
  • 例如:学生和老师
  • 需要新建一张关系表,关系表至少包含两个外键,分别对应两张表

    三大设计范式

  1. 列不可以分割: 要求数据库表的每一列都是不可分割的原子数据项
  2. 非主键列必须依赖主键列
  3. 非主键列必须直接依赖主键列