1.主键:
每个表中最多只能有1个主键,且主键的值不能重复,通过主键可以唯一的确定一条记录。当我们在创建表的时候就声明了主键的话,Mysql就会对我们插入的每一条记录进行检验,若有主键值相同时就会报错。另外主键是默认NotNull的。
声明主键的两种方式:
主键只是单个列时(比如设置学生的学号为主键):
Stu_id int( 5 ) primary key;
主键是多个列时 :
primary key(列名1,列名2。。。);
主键和唯一性约束的区别:
都保证了列或列组合的唯一性;但是主键在一个表中只能有一个,唯一性约束可以存在多个;主键不允许为空,唯一性约束可以为空的。
2.外键:
定义:在两个关系中存在公共的若干个字段,且在一个关系中这些公共字段是主键就称该表为主表,另一个关系就称为从表并称这些公共字段为外键。外键主要目的是将两张表形成关联,即就是可以通过从表的外键来引用从表中其他列的值或者空值。
定义的语法格式:
constraint [ 外键的名称 ] foreign key (列1,列2。。。) refferences 父表名(父列1,父列2。。。)
(建立外键时:先创建主表,再是从表 删除外键时:先删除从表,再是主表)
#创建外键方式:在创建从表的同时创建外键 (grade是主表,student是从表) CREATE TABLE `grade` ( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT ‘年级ID‘, `gradename` VARCHAR(50) NOT NULL COMMENT ‘年级名称‘, PRIMARY KEY (`gradeid`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; CREATE TABLE `student` ( `studentno` INT(4) NOT NULL COMMENT ‘学号‘, `studentname` VARCHAR(20) NOT NULL DEFAULT ‘匿名‘ COMMENT ‘姓名‘, `sex` TINYINT(1) DEFAULT ‘1‘ COMMENT ‘性别‘, `gradeid` INT(10) DEFAULT NULL COMMENT ‘年级‘, `phoneNum` VARCHAR(50) NOT NULL COMMENT ‘手机‘, `address` VARCHAR(255) DEFAULT NULL COMMENT ‘地址‘, `borndate` DATETIME DEFAULT NULL COMMENT ‘生日‘, `email` VARCHAR(50) DEFAULT NULL COMMENT ‘邮箱‘, `idCard` VARCHAR(18) DEFAULT NULL COMMENT ‘身份证号‘, PRIMARY KEY (`studentno`), KEY `FK_gradeid` (`gradeid`), CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`) ) ENGINE=INNODB DEFAULT CHARSET=utf8;
3.数据的管理:
数据库操作语言:用于操作数据库对象中所包含的数据。
INSERT:添加数据语句
INSERT INTO `school`.`grade`(`GradeID`,`GradeName`) VALUE (‘7‘,‘大六‘); (注意数据库名,表名,字段名用 ` ` 括起来,普通的字符串用 ‘ ‘括起来)
UPDATE:更新数据语句
- 语法 :
UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];
注意 :
- column_name 为要更改的数据列
- value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果
- condition 为筛选条件 , 如不指定则修改该表的所有列数据
DELETE:删除数据语句
原文地址:https://www.cnblogs.com/xbfchder/p/11146474.html