Java教程

6.数据库级别的外键以及语句详解

本文主要是介绍6.数据库级别的外键以及语句详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

mysql 的数据管理

外键

CREATE TABLE IF NOT EXISTS `student2`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT'姓名',
`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(20)NOT NULL DEFAULT '女' COMMENT'性别',
`birthday` DATETIME DEFAULT NULL COMMENT'出生日期',
`gradeid` INT(4) NOT NULL COMMENT '年级id',
`address` VARCHAR(100) DEFAULT NULL COMMENT'地址',
`email` VARCHAR(50) DEFAULT NULL COMMENT'邮箱',
PRIMARY KEY (`id`),
KEY `FK_gradeid`(`gradeid`),
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`)
)ENGINE INNODB DEFAULT CHARSET=utf8


CREATE TABLE `grade`(
`gradeid` INT(4) NOT NULL AUTO_INCREMENT COMMENT '年级id',
`gradename` VARCHAR(10) NOT NULL COMMENT'年级名称',
PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式:

创建表时没有外键,通过修改表添加外键

ALTER TABLE 表名

ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列)REFERENCES 被引用的表名(字段名);

备注:被引用的表不能直接删除,要先删除引用它的表才能正确删除

======================================================================

DML 语言数据操作语言

  • insert
  • update
  • delete

======================================================================

添加insert

INSERT INTO 表名(字段1,字段2,'''')values('值1'),('值2')

INSERT INTO `grade`(`gradename`) VALUES('大四')

插入多个字段

INSERT INTO `grade`(`gradename`) VALUES('大三'),('大二')

INSERT INTO `student`(`name`,`pwd`,`sex`) VALUES('','',''),('','','')

注意事项:

1.字段和字段之间使用英文逗号隔开

2.字段是可以省略的,但后面的值必须要一一对应

3.可以同时插入多条数据,values后面的值,需要使用,隔开

=======================================================================

修改update

UPDATE `student` SET `name`='chris' WHERE id=1  #修改id为1的人的名字

不指定条件的情况下,会改动所有的表

修改多个属性,用逗号隔开

UPDATE `student` SET `name`='chris',`email`='223673773@qq.com' WHERE id=1

where子句运算符 id等于某个值,大于某个值,在某个区间进行修改

操作符 含义 范围 结果
= 等于 5=6 false
<>或!= 不等于 5<6 true
>      
<      
<=      
>=      
BETWEEN...and... 在某个范围内   【2,5】
AND && 并 5>1 and 1>2 false
OR 5>1 or 1>2 true

注意点:

  • colum_name 是数据库的列,尽量带上``
  • 筛选的条件,如果没有指定,会修改所有的列
  • value是一个具体的值也可以是一个变量
  • 多个设置的属性之间,使用逗号隔开
  • UPDATE `student` SET `birthday`='CURRNT_TIME' WHERE `name`='长江7号' AND sex='女'

========================================================================

删除delete

DELETE FROM `student 

delete from 表名 where 条件

DELETE FROM `student` WHERE id=1;

 

TRUNCATE命令 完全清空一个数据库表,表的结构和索引约束不会变

TRUNCATE `student`

区别:

  • 相同点:都能删除数据,都不会删除表结构
  • 不同:重新设置 自增列计数器会归零
  • TRUNCATE 不会影响事务

=================================================

CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`coll` VARCHAR(20) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO `test` (`coll`) VALUES('1'),('2'),('3')

DELETE FROM `test`  --不会影响自增

TRUNCATE TABLE `test` --自增会归零

这篇关于6.数据库级别的外键以及语句详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!