mysql数据库的基本操作有哪些

2024-05-20

1. mysql数据库的基本操作有哪些

1. 将下载的mysql-noinstall-5.1.69-win32.zip解压至需要安装的位置, 如: C:\Program Files;
2. 在安装文件夹下找到 my-small.ini配置文件, 将其重命名为 my.ini , 打开进行编辑, 在 [client] 与[mysqld] 下均添加一行: default-character-set= gbk
3. 打开 Windows 环境变量设置, 新建变量名 MYSQL_HOME , 变量值为 MySQL 安装目录路径, 这里为C:\Program Files\mysql-5.1.69-win32
4. 在 环境变量 的 Path变量中添加 ;%MYSQL_HOME%\bin;
5. 安装 MySQL 服务, 打开Windows命令提示符, 执行命令: mysqld --install MySQL--defaults-file="my.ini" 提示"Service successfully installed."表示成功;

MySQL服务的启动、停止与卸载
在 Windows 命令提示符下运行:
启动: net start MySQL
停止: net stop MySQL
卸载: sc delete MySQL

MySQL脚本的基本组成
与常规的脚本语言类似, MySQL 也具有一套对字符、单词以及特殊符号的使用规定, MySQL 通过执行 SQL 脚本来完成对数据库的操作, 该脚本由一条或多条MySQL语句(SQL语句 + 扩展语句)组成, 保存时脚本文件后缀名一般为.sql。在控制台下, MySQL 客户端也可以对语句进行单句的执行而不用保存为.sql文件。
标识符
标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线。
对于标识符是否区分大小写取决于当前的操作系统,Windows下是不敏感的, 但对于大多数Linux\unix 系统来说,

mysql数据库的基本操作有哪些

2. 关于数据库的知识

数据库是“按照数据结构来组织、存储和管理数据的仓库.J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。 
  (1)物理数据层。
  它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。 
  (2)概念数据层。
  它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。 
  (3)逻辑数据层。
  它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。 
  数据库不同层次之间的联系是通过映射进行转换的。
数据库的主要特点
  (1)实现数据共享。
  数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。 
  (2)减少数据的冗余度。
  同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。 
  (3)数据的独立性。
  数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。 
  (4)数据实现集中控制。
  文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。 
  (5)数据一致性和可维护性,以确保数据的安全性和可靠性。
  主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏
  (6)故障恢复。
  由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。

3. 数据库知识

什么是数据库 
 
 数据库是依照某种数据模型组织起来并存放二级存储器中的数据 *** 。
 
 这种数据 *** 具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。
 
 从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
 
 
 
  
 
 数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。
 
 
 
 (1)物理数据层。
 
 它是数据库的最内层,是物理存贮设备上实际存储的数据的 *** 。
 
 这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。
 
 
 
 (2)概念数据层。
 
 它是数据库的中间一层,是数据库的整体逻辑表示。
 
 指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的 *** 。
 
 它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
 
 
 
 (3)逻辑数据层。
 
 它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据 *** ,即逻辑记录的 *** 。
 
 
 
 数据库不同层次之间的联系是通过映射进行转换的。
 
 数据库具有以下主要特点: 
 
 (1)实现数据共享。
 
 数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
 
 
 
 (2)减少数据的冗余度。
 
 同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。
 
 减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
 
 
 
 (3)数据的独立性。
 
 数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
 
 
 
 (4)数据实现集中控制。
 
 文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。
 
 利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
 
 
 
 (5)数据一致性和可维护性,以确保数据的安全性和可靠性。
 
 主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏 
 
 你可能是初学的,这样说吧,数据库就是建表格,然后把一张一张的表格钉在一起,就成了一大堆的数据了,用专业的术语,我们把这么一大堆的表格叫数据库. 
 
 书很多呀,这本就不错,我学过这本书,虽说是偏现理伦的多一点,但一边学这本书,一边再找一本实用教材,(我指的是专门的一本学习数据库一种软件的书,)很受益. 
 
 我当时,就是一边说这本书,一边说 
 
 SQL,MySQL,比较合适于在家里学习数据库, 
 
 ORCAL,比较适合于公司应用 
 
 DEPHI,本身并不是数据库,但是是一个做数据库系统,相当实 用的软件很实用. 
 
 ACCESS, 对比较合适于应用它,不太适合利用它学数据库,因为ACCESS一般不用语言,而且是面向普通用户的,就是说用的比较方便实用, 
 
 不知道,这么说你能听懂多少,你还是找一本书好好学一下吧, 
 
 对了,忘了和你说了,"VeryCD"上,有我刚才说的那么书的很多相关材料,你可以用电骡下载.

数据库知识

4. 数据库知识


5. sql数据库基础知识

sql数据库基础知识:
一、SQL 概述1、什么是 SQLSQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server 等。SQL 标准(ANSI/ISO)有:SQL-92:1992 年发布的 SQL 语言准;SQL:1999:1999 年发布的 SQL 语言标签;SQL:2003:2003 年发布的 SQL 语言标签;这些标准就与 JDK 的版本一样,在新的版本中总要有一些语法的变化。不同时期的数据库对不同标准做了实现。

虽然 SQL 可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为“方言”。例如 MySQL 中的 LIMIT 语句就是 MySQL 独有的方言,其它数据库都不支持!当然,Oracle 或 SQL Server 都有自己的方言。


sql数据库基础知识

6. MySQL数据库的简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。

7. MySQL数据库基础+ 数据库的基本操作?

需要用的资料以链接的形式给需要的同学。
 
我用的mysql版本为: Mysql-5.5.45-win64.msi 密码是:26zw
 
图形化工具 Navicat(前期不推荐用,直接手动敲): Navicat 密码:c7fs
 
开始我的MySQL之旅吧   始于2016.12.04
 
                                              --WH
 
一、数据库的安装
 
这个就不在这里过多阐述了,因为网上实在是太多安装mysql的教程了,有了我给的mysql,在按照这个安装教程(MySQL安装教程)去看,就能够安装完好。
 
安装好mysql后,如果需要使用windows命令窗口(也就是cmd)来操作mysql,那么就需要配置环境变量,在安装好的mysql下找到bin,将其目录放到环境变量path中去,就行了,检测成功与否的方法是在cmd命令窗口中输入mysql,就会出现一大段英文,就说明成功了,反之失败,如果不会的话就去百度搜教程。
 
二、数据库的基本操作
 
1、开启mysql服务命令
 
net start mysql
 

 
2、进入mysql的两种方式
 
明文进入:mysql -uroot -proot  格式:mysql -u帐号 -p密码
 
密文进入:mysql -uroot -p 按enter会提示你输入密码(Enter pssword:),此时你写的密码就会显示为***这样。
 

 
3、查看mysql中所有的数据库(一般在固定的单词命令就会是用大写,这个要习惯,看多了敲多了就认识了)
 
前面四个数据库是mysql中自带的,也就是必须的.
 
SHOW DATABASES;
 

 
4、创建名为test_1的数据库
 
格式:CREATE DATABASE 数据库名
 
CREATE DATABASE test_1;
 

 
5、删除名为test_1的数据库
 
格式:DROP DATABASE 数据库名

 
DROP DATABASE test_1;
 

 
总结:学习了对数据库的三个操作,1、查看所有数据库 2、创建数据库 3、删除数据库
 
三、数据表的基本操作
 
数据表和数据库还有Mysql三者的关系
 
mysql中保存了很多数据库、一个数据库中可以保存很多表。
 
对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。 注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)
 
前提:表是在数据库下的,所以要先确实使用哪个数据库。
 
USE test_1;
 

 
1、创建数据表
 
格式:CREATE TABLE 数据表名(
 
   字段名1  数据类型[列级别约束条件],
 
   字段名2  数据类型[列级别约束条件],
 
   字段名3  数据类型[列级别约束条件]
 
               ); 
 
注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。
 
解释:
 
1、[]中括号中的内容表示可以有可以没有,
 
2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横 
 
3、约束条件后面会讲到
 
  1.1、创建没有约束的student表
          CREATE TABLE student(            id  INT(11),            name  VARCHAR(12),            age  INT(11)                 );      

 
注释:SHOW TABLES 查询数据库底下的所有表。
 
1.2、创建有约束的student表
 
   六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增加
 
1.2.1:主键约束
 
PRIMARY KEY(primary key):独一无二(唯一)和不能为空(非空),通俗的讲,就是在表中增加记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增加两条记录,如果id字段用了主键约束。则id不能一样,并且不能为空。一般每张表中度有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,因为主键是唯一的,并且非空,一张表中每个记录的主键度不一样,所以根据主键也就能找到对应的记录。而不是多条重复的记录。如果没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也消耗更多资源。
 
一般被主键约束了的字段度习惯性的称该字段为该表的主键
 
单字段主键约束
 
  两种方式都可以
 
  CREATE TABLE student(            CREATE TABLE student(
 
    id  INT(11) PRIMARY KEY,          id  INT(11),
 
    name  VARCHAR(12),            name  VARCHAR(12),
 
    age  INT(11)   age  INT(11),
 
  ); PRIMARY KEY(id) );
 
多字段主键约束(复合主键)
 
    这个id和name都市主键,说明在以后增加的插入的记录中,id和name不能同时一样,比如说可以是这样。一条记录为id=1,name=yyy、另一条记录为:id=1,name=zzz。 这样是可以的。并不是你们所理解的两个字段分别度不可以相同。
 
  CREATE TABLE student(CREATE TABLE student(
 
    id  INT(11) PRIMARY KEY,            id  INT(11),
 
    name  VARCHAR(12) PRIMARY KEY,       name  VARCHAR(12),
 
    age  INT(11)     age  INT(11),
 
  );        PRIMARY KEY(id,name) );
 
1.2.2:外键约束
 
什么是外键举个例子就清楚了,有两张表,一张表是emp(员工)表,另一张表是dept(部门)表,一个员工属于一个部门,那么如何通过员工能让我们自己他在哪个部门呢?那就只能在员工表中增加一个字段,能代表员工所在的部门,那该字段就只能是存储dept中的主键了(因为主键是唯一的,才能确实是哪个部门,进而代表员工所在的部门,如果是部门名称,有些部门的名称可能是同名。就不能区分了。),像这样的字段,就符合外键的特点,就可以使用外键约束,使该字段只能够存储另一张表的主键。如果不被外键约束,那么该字段就无法保证存储进来的值就一定是另一张表的主键值。
 
外键约束的特点:
 
  1、外键约束可以描述任意一个字段(包括主键),可以为空,并且一个表中可以有多个外键。但是外键字段中的值必须是另一张表中的主键。
 
  2、这样被外键关联的两种表的关系可以称为父子表或者主从表。子表(从表)拥有外键字段的表,父表(主表)被外键字段所指向的表。
 
  3、子表被外键约束修饰的字段必须和父表的主键字段的类型一样。
 
  注意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键”。而不是“是外键”),并会给该表中的外键约束取一个名称,所以我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束。也就是说,不能说这个表的外键是xxx(该表中被外键约束修饰的字段名),这种说法是错误的,但是大多数人已经习惯了这样,虽然影响不大,但是在很多时候需要理解一个东西时,会造成一定的困扰。
 
格式:CONSTRAINT  外键名称  FOREIGN KEY(被外键约束的字段名称)  REFERENCES  主表名(主键字段)
 
    英文解释:CONSTRAINT:约束    REFERENCES:参考
 
    CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22),
location VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE tableB
(
id INT(11),
name VARCHAR(22) NOT NULL,
deptId INT(11),
PRIMARY KEY(id),
CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
);            
 
     解释:tableB中有一个名为tableA_tableB_1的外键关联了tableA和tableB两个表,被外键约束修饰的字段为tableB中的deptId,主键字段为tableA中的id     
 
1.2.3:非空约束
 
NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束
 
    CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,
location VARCHAR(50),
PRIMARY KEY(id)
);
 
1.2.4:唯一约束
 
UNIQUE  被唯一约束修饰了的字段,表示该字段中的值唯一,不能有相同的值,通俗点讲,就好比插入两条记录,这两条记录中处于该字段的值不能是一样的。
 
         CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) UNIQUE,
location VARCHAR(50),
PRIMARY KEY(id)
);
 
也就是说在插入的记录中,每条记录的name值不能是一样的。
 
1.2.5:默认约束
 
Default  指定这一列的默认值为多少,比如,男性同学比较多,性别就可以设置为默认男,如果插入一行记录时,性别没有填,那么就默认加上男 
 

CREATE TABLE table
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);
 
1.2.6:自动增加  
 
 AUTO_INCREMENT 一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型     TINYINT,SMALLIN,INT,BIGINT),默认值是1,也就是说从1开始增加的。一般就是给主键使用的,自动增加,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成
       CREATE TABLE table    (      id INT(11) PRIMARY KEY AUTO_INCREMENT,      name VARCHAR(22) NOT NULL    );    
2、查询表结构  
 
              2.1、查看表基本结构语句
 
                    格式1:DESCRIBE 表名/DESC 表名  这两个的功能是一样的,简写了单词describe
 
                      DESCRIBE student; 
 
 
 
 2.2、查看创建表的语句 
 
   格式:SHOW CREATE TABLE 表名
 
   SHOW CREATE TABLE student;
 

 
这样显示的格式很不好,看不清楚,所以有了下面这个语句
 
格式:SHOW CREATE TABLE 表名\G
 
SHOW CREATE TABLE student\G;
 

 
 3、修改数据表      
 
修改数据表包括:对表中字段的增加、删除、修改。 在这个里面用的关键字为 ALTER
 
  3.1、修改表名
 
    格式:ALTER TABLE RENAME[TO];
 
    将student表名改为student1(改完后在改回来)
 
    ALTER TABLE student RENAME TO student1;
 

 
3.2、修改表中的字段名
 
  格式:ALTER TABLE CHANGE
 
  将student表中的name字段名改为 username
 
  ALTER TABLE student CHANGE name username VARCHAR(30);
 

 
3.3、修改表中的数据类型
 
  格式:ALTER TABLE MODIFY                     
 
  ALTER TABLE student MODIFY username VARCHAR(20);
 

 
解释:只能修改字段名的数据类型,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。
 
3.4、修改字段的排列位置
 
   方式1:ALTER TABLE MODIFY FIRST|AFTER
 
   解释:将字段1的位置放到第一,或者放到指定字段2的后面
 
   ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;
 

 
方式2:ALTER TABLE CHANGE FIRST|AFTER 
 
解释:其实是一样的,将是字段2覆盖字段1,然后在进行排序
 
ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;
 

 
总结
 
CHANGE和MODIFY的区别?
 
原理都市一样的,MODIFY只能修改数据类型,但是CHANGE能够修改数据类型和字段名,也就是说MODIFY是CHANGE的更具体化的一个操作。可能觉得用CHANGE只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字MODIFY来操作。
 
3.5、添加字段
 
格式:ALTER TABLE ADD[约束条件][FIRST|AFTER]
 
解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。
 
ALTER TABLE student ADD sex VARCHAR(11);
 

 
3.6、删除字段
 
格式:ALTER TABLE DROP;
 
ALTER TABLE student DROP sex;
 

 
3.7、删除表的外键约束
 
格式:ALTER TABLE DROP FOREIGN KEY
 
注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。
 
3.8、更改表的存储引擎
 
格式:ALTER TABLE ENGINE=
 
这个存储引擎目前我自己也不太清楚,虽然知道有哪几种引擎,但是稍微深入一点就不清楚了,所以打算留到日后在说。
 
4、删除表
 
4.1、删除无关联表
 
格式:DROP TABLE;
 
ALTER TABLE student;
 

 
4.2、删除被其他表关联的主表
 
这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法
 
1、先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除
2、先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在3.7中就讲解了如何删除外键关系。

MySQL数据库基础+ 数据库的基本操作?

8. 数据库基础:了解最常见的13个数据库术语

    关系模型 用二维表格结构表示实体集 外键表示实体间联系的数据模型称为关系模型 关系模型是由若干个关系模式组成的集合 
     关系模式 关系模式实际上就是记录类型 它包括 模式名 属性名 值域名以及模式的主键 关系模式仅是对数据特性的描述 
     关系实例 就是一个关系 即一张二维表格 
     属性 在关系模型中 字段称为属性 
     域 在关系中 每一个属性都有一个取值范围 称为属性的值域 
   
     元组 在关系中 记录称为元组 
     候选码 在关系中能唯一标识元组的属性集称为关系模式的候选码 
     主码 用户选作元组标识的一个候选码为主码 
     外码 某个关系的主码相应的属性在另一关系中出现 此时该主码在就是另一关系的外码 如有两个关系S和SC 其中S#是关系S的主码 相应的属性S#在关系SC中也出现 此时S#就是关系SC的外码 
     实体完整性规则 这条规则要求关系中元组在组成主码的属性上不能有空值 如果出现空值 那么主码值就起不了唯一标识元组的作用 
     参照完整性规则 这条规则要求 不引用不存在的实体 其形式定义如下 如果属性集K是关系模式R 的主码 K也是关系模式R 的外码 那么R 的关系中 K的取值只允许有两种可能 或者为空值 或者等于R 关系中某个主码值 
    这条规则在使用时有三点应注意 
    ( )外码和相应的主码可以不同名 只要定义在相同值域上即可 
    ( )R 和R 也可以是同一个关系模式 表示了属性之间的联系 
    ( )外码值是否允许空应视具体问题而定 
     过程性语言 在编程时必须给出获得结果的操作步骤 即 干什么 和 怎么干 如Pascal和C语言等 
  lishixinzhi/Article/program/SQL/201311/11189