zoukankan      html  css  js  c++  java
  • 数据库整理(基础知识,库操作,表操作,行的增删改)

    0 数据库的基础知识

    安装

    修改用户密码

    修改字符及编码

    数据类型:

      数值类型:整型,浮点型

      字符串类型:char(定长),varchar(不定长) 

         两者都是字符串类型,可以在后面接宽度,char在磁盘上的存储空间均为固定的,保存的时候不需要考虑数据长度,

                 定长在查询的时候也不需要考虑长度,因而读取速度快;

                 varchar插入和查询速度相对较慢,存储数据时,按照数据长度进行存储,每次都需要在存储前计算数据长度,在数据空间

                 前开辟1或2个字节来存储数据的内存长度。在读取数据的术后需要先读取数据的长度,再读取数据内容。这样的速度较慢,                                                                                                       但是多数情况下可以节省空间

      日期:year,date,time,datetime(重点)

      枚举类型:enum(“1”,“2”,“3”)  多个备选项选一

      集合类型:set(“1”,“2”,“3”) 多个备选项选多个

    完整性约束:

      not null:不能为空

      defult:设置默认值

      unique:唯一即不可重复,可以加速查询

      primary key:主键,唯一且非空,每个表中都只有一个主键。未指定的时候则系统自动寻找符合两者要求的一项,再无则指定一个看不见的字段为主键。

      auto_increment:自增,一般加在主键之后。其步长及初始值均可修改。

      foreign key:外键,建立表之间的关系

        一对多:T1为一,T2为多,则T1里的一条数据可以对应T2内的多条数据

        create table T2(字段名,数据类型,约束条件)

        create table T2(id int  primary key auto_increment,

                name char(10) not null,

                sex enum('男','女’) defult '男' not null,

                id_card char(18) not null and unique,

                T1_id int not null,

                constraint fk_t1_t2(自己设定的外键名字) foreign key (T1_id) references T1(id被关联的的字段,不为空且唯一)

                )即在多的一个表里设置外键

                  一对一:两表的数据都只能对应对方的一条

        create table T2(字段名,数据类型,约束条件)

        create table T2(id int  primary key auto_increment,

                name char(10) not null,

                sex enum('男','女’) defult '男' not null,

                id_card char(18) not null and unique,

                T1_id int not null and unique,                同上不一样的地方在于这里加了唯一限制

                constraint fk_t1_t2(自己设定的外键名字) foreign key (T1_id) references T1(id:被关联的的字段,不为空且唯一)

                )

        多对多:

          建立第三个表,其表头为:id  T1_id  T2_id

    1 库操作

      增 create database 库名;

      删 drop database 库名;

      改 alter database 库名 charset utf8;

      查 show databases;此处多个s

        show create database 库名 G;  库名后可不接G

        输入C可以提前结束已错的语句

     2 表操作

      增 create table 表名(字段1 类型1,字段2,类型2);

      删 drop table 表名;

      改(字段的修改,表结构的修改)

        alter table 表名 rename 新表名;  改表名

        alter table 表名 modify 字段名 数据类型 完整性约束;  改字段名

        alter table 表名 change 原名 新名 数据类型 完整性约束;  改字段名

        alter table 表名 add 字段 数据类型 完整性约束 first/after 字段(用于定位);  加字段

        alter table 表名 add foreign key(本表字段)references 被关联表的表名(id); 加外键

      查 show tables;  查看表

     3 行操作

      增 insert into 表名 values(数据1,数据2);

      删 delete from 表名 where 条件;条件成立则执行前面,不成立就废了 

      改 update 表名 set 字段=‘新内容’ where 条件;

  • 相关阅读:
    另一种保证单次插入回文自动机复杂度的做法
    loj #6070. 「2017 山东一轮集训 Day4」基因
    求第一类斯特林数的一行
    NOIP2018游记
    HDU3377 Plan
    【BZOJ】1830: [AHOI2008]Y型项链
    【BZOJ】1832: [AHOI2008]聚会
    【BZOJ】1831: [AHOI2008]逆序对
    【BZOJ】1085: [SCOI2005]骑士精神
    【BZOJ】1798: [Ahoi2009]Seq 维护序列seq
  • 原文地址:https://www.cnblogs.com/shachengcc1/p/11415683.html
Copyright © 2011-2022 走看看