数据库(五)Navicat安装使⽤和pycharm中使⽤sql语句
1.Navicat安装
  Navicat是⼀套快速、可靠并价格相当便宜的数据库管理⼯具,专为简化数据库的管理及降低系统管理成本⽽设。它的设计符合数据库管理员、开发⼈员及中⼩企业的需要。Navicat 是以直觉化的图形⽤户界⾯⽽建的,让你可以以安全并且简单的⽅式创建、组织、访问并共⽤信息。使⽤Navicat可以提⾼我们管理数据库的效率
需要掌握的技能
掌握:
#1. 测试+链接数据库
#2. 新建库
#3. 新建表,新增字段+类型+约束
#4. 设计表:外键
#5. 新建查询
#6. 建⽴表模型
#注意:
批量加注释:ctrl+?键
批量去注释:ctrl+shift+?键
下载地址:
下载完成后解压安装,按照提⽰点击下⼀步,安装地址按照⾃⼰选择的地址安装
1.进⼊Navicat后⾸先测试链接数据库
点击连接按钮,选择想要连接的数据库,如我的电脑上安装的是MySQL
点击MySQL之后输⼊MySQL的端⼝和⽤户名和密码,
端⼝号MySQL默认是3306
⽤户名MySQL默认是root
密码,如果⾃⼰没有设置过默认为空,设置过则输⼊⾃⼰相应的密码
点击连接测试,如成功则按确定进⼊数据库
2.新建库
进⼊后右键点击红框选择新建数据库,如已有数据库也可以双击点开查看数据库
新建数据库时红框部分必填,⾸先是数据库名,填写⾃⼰需要的名字,字符集如⽆特殊情况⼀般都填utf8
点击确定新建数据库完成
3. 新建表,新增字段+类型+约束
打开新建的库,右键点击表,点击新建表,或者在右上⽅也有个新建表的按钮,点击之后即可进⼊创
建表的功能
点击之后会进⼊新建字段的操作,选择字段名,字段类型、长度、是否为空等
需要注意的是设置主键的时候需要点击红框位置的⾃动递增,选择完成后点击橙框保存
点击保存后会让我们填写表名,需要注意不能跟统⼀数据库中的其他表名冲突,完成后点击确定
4.设计表,外键
右键点击表名选择设计表,或者点击红框位置的设计表都可以
这样可以重新进⼊设计表模式,点击外键,填写外键字段,参考的表名,参考表的字段名,级联更新、级联删除
点击保存就完成了
5.新建查询
点击红框处的按钮可以新建查询,出现输⼊框之后输⼊想查询的内容,按橙框运⾏键运⾏代码即可完成查询注意:在输⼊框中的注释
  批量加注释:ctrl+?键
  批量去注释:ctrl+shift+?键
6.建⽴表模型
如果想要新建模型,则点击模型,并新建模型
如果想要查看已有表的模型则右键点击橙框,选择逆向数据库到模型即可查看模型
2.练习题
导⼊sql语句代码
/*
数据导⼊:
Navicat Premium Data Transfer
Source Server        : localhost
Source Server Type    : MySQL
Source Server Version : 50624
Source Host          : localhost
Source Database      : sqlexam
Target Server Type    : MySQL
Target Server Version : 50624
File Encoding        : utf-8
Date: 10/21/2016 06:46:46 AM
*/
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
--  Table structure for `class`
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
`cid` int(11) NOT NULL AUTO_INCREMENT,
`caption` varchar(32) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-
- ----------------------------
--  Records of `class`
-- ----------------------------
BEGIN;
INSERT INTO `class` VALUES ('1', '三年⼆班'), ('2', '三年三班'), ('3', '⼀年⼆班'), ('4', '⼆年九班');
COMMIT;
-- ----------------------------
--  Table structure for `course`
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`cid` int(11) NOT NULL AUTO_INCREMENT,
`cname` varchar(32) NOT NULL,
`teacher_id` int(11) NOT NULL,
PRIMARY KEY (`cid`),
KEY `fk_course_teacher` (`teacher_id`),
CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
--  Records of `course`
-- ----------------------------
BEGIN;
INSERT INTO `course` VALUES ('1', '⽣物', '1'), ('2', '物理', '2'), ('3', '体育', '3'), ('4', '美术', '2');
COMMIT;
-- ----------------------------
--  Table structure for `score`
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`sid` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT NULL,
`course_id` int(11) NOT NULL,
`num` int(11) NOT NULL,
PRIMARY KEY (`sid`),
KEY `fk_score_student` (`student_id`),
KEY `fk_score_course` (`course_id`),
CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),
CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)
) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;
-- ----------------------------
--  Records of `score`
-- ----------------------------
BEGIN;
INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2',
'3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', COMMIT;
-- ----------------------------
批量更新sql语句--  Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sid` int(11) NOT NULL AUTO_INCREMENT,
`gender` char(1) NOT NULL,
`class_id` int(11) NOT NULL,
`sname` varchar(32) NOT NULL,
PRIMARY KEY (`sid`),
KEY `fk_class` (`class_id`),
CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;
-- ----------------------------
--  Records of `student`
-- ----------------------------
BEGIN;
INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '⼥', '1', '钢蛋'), ('3', '男', '1', '张三'), ('4', '男', '1', '张⼀'), ('5', '⼥', '1', '张⼆'), ('6', '男', '1', '张四'), ('7', '⼥', '2', '铁锤'), ('8', '男', '2', '李三'), ('9', '男', '2', '李⼀'), ('10', '⼥', '2', '李⼆'), ('11', '男COMMIT;
-- ----------------------------
--  Table structure for `teacher`
-- ----------------------------
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
`tid` int(11) NOT NULL AUTO_INCREMENT,
`tname` varchar(32) NOT NULL,
PRIMARY KEY (`tid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
--  Records of `teacher`
-- ----------------------------
BEGIN;
INSERT INTO `teacher` VALUES ('1', '张磊⽼师'), ('2', '李平⽼师'), ('3', '刘海燕⽼师'), ('4', '朱云海⽼师'), ('5', '李杰⽼师');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
View Code
拷贝上述代码,新建⼀个.sql⽂件,保存到桌⾯
打开navicat新建数据库day41,选中新建的数据库⿏标右键选择运⾏SQL⽂件
弹出⽂件框,选中刚刚保存到桌⾯的.sql⽂件即可
快速建表
#准备表、记录  >>> 命令⾏
mysql> create database db1;
mysql> use db1;
mysql> source /root/init.sql
# navicat建表
练习题
1、查询所有的课程的名称以及对应的任课⽼师姓名
4、查询平均成绩⼤于⼋⼗分的同学的姓名和平均成绩
7、查询没有报李平⽼师课的学⽣姓名

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。