学习MySQL的第二天(2)
【摘要】 1.2.7 外键(不建议使用,一般在应用层级实现) 1.2.7.1 定义外键key 1.2.7.2 给这个外键添加约束 执行引用 eg: CREATE TABLE grade( `grade_id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '主键', `grade_name` VARCHAR(20) NOT NULL COMMEN...
1.2.7 外键(不建议使用,一般在应用层级实现)
1.2.7.1 定义外键key
1.2.7.2 给这个外键添加约束 执行引用
eg:
CREATE TABLE grade(
`grade_id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`grade_name` VARCHAR(20) NOT NULL COMMENT '班级名称',
PRIMARY KEY(`grade_id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS student(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(20) DEFAULT '匿名' COMMENT '姓名',
`pwd` VARCHAR(20) DEFAULT '12345' COMMENT '密码',
`sex` VARCHAR(2) DEFAULT '男' COMMENT '性别',
`brithday` DATETIME DEFAULT NULL COMMENT '出生日期',
address VARCHAR(100) DEFAULT NULL COMMENT '地址',
`gradeid` INT(10) NOT NULL COMMENT '学生年级',
email VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`),
KEY `FK_gradeid` (`gradeid`), -- 创建一个键 后面这个本表中的 gradeid
CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) -- 将这个创建的键值FK_gradeid 添加为外键
REFERENCES `grade`(`grade_id`) -- 引用grade表中的 grade_id字段
)ENGINE=INNODB DEFAULT CHARSET=utf8
1.2.7.3 在已建好的表中添加外键
ALTER TABLE `student` ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`grade_id`);
1.2.8 DML(数据操作语言)
1.2.8.1 新增
insert into XXX表 (字段1,字段2...) values (值1,值2...);
插入多个值:insert into XXX表 (字段1,字段2...) values (值1,值2...),(值1,值2...),(值1,值2...)...;
1.2.8.2 修改
update table XXX表 set XXX字段1 = 'XXX值', XXX字段1 = 'XXX值'... where 条件;
1.2.8.3 删除
delete from XXX表 where 条件;
1.2.8.3.1 delete和truncate的区别
1.2.8.3.1.1 都不会删除表结构,只删除里面的数据
1.2.8.3.1.2 truncate 清空表 自增列会恢复为初始值,不会影响事务
1.2.8.3.1.3 delete的时候 重启数据库
INNODB 自增列会恢复为初始值(存在内存中,断电即失)
MYISAM 继续从上一个自增量开始(存在文件中,不会丢失)
1.2.9 DQL(数据查询语言)
select * from XXX表;
-- concat(a,b)连接函数
-- distinct 去重
-- select version(); 查询版本号
-- select @@auto_increment_increment 查询自增的步长
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)