-数据库DDL和DML基础命令

  1. 一、mysql命令

    1.1 mysql的基础命令
    • 登录命令:如果在命令行出现了mysql>说明登录成功

      -- 会有警告提示,密码是明文的
      mysql -uroot -p密码
      -- 第二种,在命令行只输入
          mysql -uroot -p    --回车
      -- 会提示输入密码,现在输入密码,是保密的。
          enter password:****
      -- 对于mysql完整的登录命令 -p密码,-P端口 -h主机名
      mysql -uroot -p密码 -P3306 -h127.0.0.1
      
    • 退出mysql:

      mysql>exit;
      
    • 查看mysql数据库管理系统中的所有数据库

      -- 查看所有的数据库
      mysql > SHOW DATABASES;
      

      一般对于刚刚安装的数据库,会有默认的四张表,这四张表能不能删除

      image-20201222101503440

    • 使用指定的数据库

      mysql > USE 库名;
      
    • 查看数据库中所有的表

      mysql > SHOW TABLES;
      

    二、数据库结构化查询语句SQL

    DDL:数据库定义语言,包含:数据库的创建、数据表的创建、删除数据库、删除数据表、修改数据表。

    DML:数据库操作语言,包含:新增数据、删除数据、修改数据

    DQL:数据库查询语言,包含:查询数据

    DCL:数据库控制语言,用来给组员进行分发权限的

    TCL:事务控制语言

    2.1 数据库定义语言DDL
    • 使用命令行创建数据库

      mysql > CREATE DATABASE 数据库名;
      
    • 删除数据库命令

      DROP DATABASE db_shop;
      
    • 创建数据库中的表:需要表中的字段,规定字段数据类型

      -- 先选择到指定的数据库
      USE 数据库名;
      -- 创建表
      CREATE TABLE t_student(
          s_id int,
          s_name varchar(30),
          age int,
          gender char
      );
      
    • 查看指定数据库中所有的表

      mysql >SHOW TABLES;
      
    • 查看指定表中的表结构

      mysql >DESC t_student;
      
    • 删除一张表

      mysql > DROP TABLE t_student;
      
    • 复制一张表(只复制结构,不复制数据)

      mysql > CREATE TABLE student LIKE t_student;
      
    • 复制一张表,要将数据和结构一起赋值,下午再验证

      mysql > CREATE TABLE stu AS (SELECT * FROM t_student);
      
    • 向表中新增一个字段

      mysql > ALTER TABLE t_student ADD COLUMN tel VARCHAR(11);
      
    • 修改表中已经存在字段的数据类型

      mysql > ALTER TABLE t_student modify gender VARCHAR(10);
      
    • 删除表中的字段

      mysql > ALTER TABLE t_student DROP gender;
      
    2.2 数据库操作语言DML
    • 向数据库中新增数据

      -- 新增语句:INSERT INTO 表名(字段) value(值);
      INSERT INTO t_student(s_id,s_name,age,tel) value(1,"李四",18,"1100");
      -- 如果只有部分数据需要写,那么就新增部分数据即可
      INSERT INTO t_student(s_id,s_name) value(2,"张三");
      INSERT INTO t_student(s_id,age) value(3,19);
      -- 如果所新增的数据和表中的字段完全一致(新增的数据和表中字段的个数一致),表名后面可以不跟括号
      INSERT INTO t_student value(4,"王五",20,"1200");
      
    • 修改数据

      -- 修改数据:UPDATE 表名 SET 字段 = 值;一般是不试用的这种方式,一次性将所有行中对应列的数据修改
      UPDATE t_student SET age = 10;
      -- 根据条件修改数据:UPDATE 表名 SET 字段 = 值 WHERE s_id = 值;常用方式,根据主键修改指定行的数据
      UPDATE t_student SET age = 18 WHERE s_id = 1;
      -- 一次性修改多个字段的值
      UPDATE t_student SET age = 28,tel = '1300' WHERE s_id = 2;
      
    • 删除数据

      -- 删除数据:DELETE FROM 表名;禁止使用
      DELETE FROM t_student;
      -- 根据条件删除数据
      DELETE FROM t_student WHERE s_id = 1;
      
    2.3数据库查询语言DQL(最简单的)
    -- 单表简单查询:
    SELECT * FROM 表名,SELECT * FROM t_student;
    

    三、数据类型

    3.1 数据库的数据类型
    • 整型

      int:最常用的整型

      smallint:短整型

      bigint:长整型

      mediumint:中等整型

      tinyint:微整型

    • 浮点型

      double:双精度浮点型

      float:单精度浮点型

      decimal(D,M):定点小数

    • 字符型

      char:定长的字符型

      varchar:变长的字符型

      两者的区别:char因为是定长的,不管存储的数据长度是多少,都直接给255内存大小,会一定的浪费空间,因为不需要计算开辟的空间大小,节约时间

      varchar:因为是变长的,需要执行两次,第一次计算实际需要的内存空间,第二次才会真正的存储数据,会节约内存大小,会消耗时间,一般在设置varchar类型的时候,会给指定长度,用来限制最大空间。

    • 字节类型(了解)

      BLOB:字节类型

      BIGBLOB:大字节文件

    • 文本类型

      text

    • 时间

      time:时间

      datatime:时间

      year:年

    四、数据库设计

    4.1 键

    唯一键:能够唯一识别出一行数据的字段称为唯一键,比如:学号、电话、身份证等。(了解)

    主键:从唯一键中选出作为识别一行数据的字段称为主键,一般将id设置主键

    候选键:从唯一键中,除了主键的字段,其余字段称为候选键(了解)

    外键:一般用来关联表与表中的关系,一个表中的外键,都是另外一张表中主键的值,添加上外键之后,不能在该外键字段中添加除了另外一张表中主键以外的值,如果在外键中使用了数据,另外一张表的对应的主键数据,不能删除。

    4.2 约束
    • 主键约束:如果将一个字段设置为主键,那么数据库会自动识别是否重复,如果重复将不能存入。主键约束的关键在于不能重复。一般情况下,会将主键设置为自增。
    • 外键约束:一个表中外键字段的值,只能是另一一张表中主键存在的值。表与表之间的关系
    • 非空约束:如果一个字段设置为非空约束,那么该字段必须有值,不能为null
    • 默认值:给指定的字段设置默认值,在新增的时候,如果没有给该字段添加数据,则数据库会自动将默认值填充在该位置。
    • 自定义约束:用触发器、存储过程或者函数代码实现约束。
    4.3 范式
    • 第一范式:保证列的原子性
    • 第二范式:保证每一个实体能够被唯一区分出来,可以使用主键来满足第二范式
      中外键字段的值,只能是另一一张表中主键存在的值。表与表之间的关系
    • 非空约束:如果一个字段设置为非空约束,那么该字段必须有值,不能为null
    • 默认值:给指定的字段设置默认值,在新增的时候,如果没有给该字段添加数据,则数据库会自动将默认值填充在该位置。
    • 自定义约束:用触发器、存储过程或者函数代码实现约束。
    4.3 范式
    • 第一范式:保证列的原子性
    • 第二范式:保证每一个实体能够被唯一区分出来,可以使用主键来满足第二范式
    • 第三范式:保证每一个实体的字段都和主键直接相关,而不是间接相关,如果有相关的数据信息,使用外键进行关联
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值