zoukankan      html  css  js  c++  java
  • 数据库

    简言之,数据库就是存放数据的仓库,但是这些数据之间存在一定的关系,按照一定的格式存放在计算机上,不仅包括数字,还可以有文本,图像,音频,视频。

    数据模型:

    1,层次模型

    2,网状模型

    3,关系模型

    我们主要学习的是第3种数据模型——关系型数据模型

    SQL语言是用于关系数据模型的结构化语言,按照功能可以分为3部分

    1,数据定义语言:定义数据库对象,包括定义表,视图和索引

    2,数据操纵语言:主要对数据库中的数据进行查询,插入,删除和修改

    3,数据控制语言:主要包括数据库的安全性控制,完整性控制,以及事务并发控制和故障。

    通常每一类数据对象的个体称为实体,而每一类对象个体的集合称为实体集,例如管理学生所选课程的成绩时,主要涉及学生课程两个实体集。

    实体集之间的关系可能有3种关系

    1,一对一

    2,一对多

    3,多对多

    show databases 查询数据库。

    create database  数据库名   新建一个数据库。

    drop database  数据库名  删除数据库。

    use database 数据库名  连接到数据库。

    连接到了数据库,就会发现一个库中由很多的表组成。

    show tables;  查询数据库中的表格。

    create table if not exists 表名(表的属性内容)。

    select * from 表名;查询表

    desc 表名;查看表的状态。

    insert into 表名 value(数据);向表中添加数据。varchar(length)可变长度的字符串,但是要在范围内可变,比如varchar(20)如果数据的长度只有5个长度,那么就会变为5个长度的内存空间,但是数据长度有21,那么就会出现错误,跟集合不一样。

    增:alter table 表名 add name varchar(10);

    删:alter table 表名 drop name varchar(10);

    改:alter table 表名 change name Name varchar(10);

    查:select * from 表名;

    复制表格1:create table 表名 select * from 表名;完全一样,包括格式和内容。

    复制表格2:create table 表名 select * from 表名 where 1=0;格式一样,内容为空。

    create index 索引名  on 表名(name);给表格的名字列添加索引,到时候查找数据时就用索引比较快。

    alter table 表名 drop index 索引名; 删除索引。

    按照数据完整性实施的方法,我们可以分为4类:实体完整性,域完整性,引用完整性和自定义完整性。

    实体完整性:

    当我们把数据存放在数据库中时,一个表中的一行数据如果与他代表的实体完全一致,那么这个表具有实体完整性。

    1, 主键约束。即表的主键(primary key)不能为NULL,也不能取重复值,即唯一。语言:create  table student(stu_id int primary key)

    每一个表必须有一个主键来唯一标识表的每一行,这个主键可以是由一列组成,也可以是多个列组成的复合组件。

    2, 唯一约束。给定列的所有值必须是唯一的,不能重复。比如我们的身份证号码。ID int unique;

    域完整性:

    1,非空 。name varchar(20) not null;

    2,默认值。如果一列有很多的数据重复,那么我们可以默认数据,比如:address varchar(20) default "chengdu";当我们给address赋值时不给数据就会默认为chengdu,如果给了数据chongqing就是chongqing。

    3,检查约束。是比较灵活的约束,允许我们在更改或插入行到数据库时有一个比较宽范围的限制。但是在MYSQL中没有效果。age int check(age between 10 and 100);

    4,外键约束。比较难理解的一种约束,我们的数据模型是关系型,那么表之间如何产生关系勒,就是通过外键约束来连接的。多张表之间才有外键约束,涉及到外键约束就会有主表和从表,外键设置在从表中,使用foreign key约束的两列数据类型必须相同的(至少是相似的)。

    语句:constraint fk_useId(外键名) foreign key (外键名) references 主表(主表的主键(primary key))

    上面的约束中,其实主键约束跟唯一约束比较相似,都是保证了数据的唯一性,但是主键约束不能为null,唯一约束可以为null。

    建一个表:

    create table student(

    stu_id int primary key auto_increment,

    stu_name varchar(20) not null,

    stu_age int check(age between 10 and 100),

    stu_idCard varchar(20) unique,

    stu_address varchar(20) default "chengdu",

    teach_id int,

    constraint FK_stuId foreign key(teach_id) references teacher(teach_id)

    )

    teach_id 是主表teacher中的主键

  • 相关阅读:
    DispatcherServlet
    上转型对象
    Javascript闭包(Closure)
    跨域
    dict
    Python 函数参数传递方式
    协同过滤
    白话 动态规划 第一节 初识动态规划
    Spring@Autowired注解与自动装配
    protected
  • 原文地址:https://www.cnblogs.com/Kevin-Ma/p/5471926.html
Copyright © 2011-2022 走看看