内容目录

1.Navicat使用
2.pycharm使用数据库

一、Navicat使用

#1. 测试+链接数据库
#2. 新建库
#3. 新建表,新增字段+类型+约束
#4. 设计表:外键
#5. 新建查询
#6. 建立表模型#注意:
批量加注释:ctrl+?键
批量去注释:ctrl+shift+?键
1.1 导出的sql语句代码
代码附在最后
1.2 导入数据库
"""
使用说明:
拷贝上述代码,新建一个.sql文件,保存到桌面打开navicat新建数据库day41,选中新建的数据库鼠标右键选择运行SQL文件弹出文件框,选中刚刚保存到桌面的.sql文件即可
"""
# 快速建表
"""
#准备表、记录  >>> 命令行
mysql> create database db1;
mysql> use db1;
mysql> source /root/init.sql# navicat建表
"""

"""
练习题:
1、查询所有的课程的名称以及对应的任课老师姓名
4、查询平均成绩大于八十分的同学的姓名和平均成绩
7、 查询没有报李平老师课的学生姓名
8、 查询没有同时选修物理课程和体育课程的学生姓名
9、 查询挂科超过两门(包括两门)的学生姓名和班级
"""

二、pycharm使用MySQL

2.1 pycharm使用mysql
pymysql 模块# 1.安装:pip3 insatll pymysql# 2.代码链接import pymysql#链接conn=pymysql.connect(host='localhost',user='root',password='123',database='day41',charset='utf8')#游标cursor=conn.cursor() #执行完毕返回的结果集默认以元组显示#cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)  # 以字典的方式显示数据# 3.pymysql操作数据库#执行sql语句user = input(">>>:").strip()pwd = input(">>>:").strip()sql='select * from userinfo where name="%s" and password="%s"' %(user,pwd) #注意%s需要加引号rows=cursor.execute(sql) #执行sql语句,返回sql查询成功的记录数目# 获取真实数据cursor.fetchone(),cursor.fetchall(),cursor.fetchmany(),类似管道取值,获取一条,所有,多条cursor.scroll(1,'relative')  # 相对移动cursor.scroll(3,'absolute')  # 绝对移动cursor.close()conn.close()


2.2 sql注入问题
# 不要手动去拼接查询的sql语句username = input(">>>:").strip()password = input(">>>:").strip()sql = "select * from user where username='%s' and password='%s'"%(username,password)# 用户名正确username >>>: jason' -- jjsakfjjdkjjkjs
# 用户名密码都不对的情况username >>>: xxx' or 1=1 --asdjkdklqwjdjkjasdljadpassword >>>: ''

2.3 pycharm 对数据库增删改查
"""
# 增
sql = "insert into user(username,password) values(%s,%s)"
rows = cursor.excute(sql,('jason','123'))# 修改
sql = "update user set username='jasonDSB' where id=1"
rows = cursor.excute(sql)增和改单单执行excute并不会真正影响到数据,需要再执行conn.commit()才可以完成真正的增改# 一次插入多行记录
res = cursor,excutemany(sql,[(),(),()]
"""

------------------------------------------------------------------------------------------------------------------------

附在最后的代码:a.sql
/*数据导入:Navicat Premium Data TransferSource Server         : localhostSource Server Type    : MySQLSource Server Version : 50624Source Host           : localhostSource Database       : sqlexamTarget Server Type    : MySQLTarget Server Version : 50624File Encoding         : utf-8Date: 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', '4', '3', '67'), ('17', '4', '4', '100'), ('18', '5', '1', '79'), ('19', '5', '2', '11'), ('20', '5', '3', '67'), ('21', '5', '4', '100'), ('22', '6', '1', '9'), ('23', '6', '2', '100'), ('24', '6', '3', '67'), ('25', '6', '4', '100'), ('26', '7', '1', '9'), ('27', '7', '2', '100'), ('28', '7', '3', '67'), ('29', '7', '4', '88'), ('30', '8', '1', '9'), ('31', '8', '2', '100'), ('32', '8', '3', '67'), ('33', '8', '4', '88'), ('34', '9', '1', '91'), ('35', '9', '2', '88'), ('36', '9', '3', '67'), ('37', '9', '4', '22'), ('38', '10', '1', '90'), ('39', '10', '2', '77'), ('40', '10', '3', '43'), ('41', '10', '4', '87'), ('42', '11', '1', '90'), ('43', '11', '2', '77'), ('44', '11', '3', '43'), ('45', '11', '4', '87'), ('46', '12', '1', '90'), ('47', '12', '2', '77'), ('48', '12', '3', '43'), ('49', '12', '4', '87'), ('52', '13', '3', '87');
COMMIT;-- ----------------------------
--  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', '男', '2', '李四'), ('12', '女', '3', '如花'), ('13', '男', '3', '刘三'), ('14', '男', '3', '刘一'), ('15', '女', '3', '刘二'), ('16', '男', '3', '刘四');
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;

转载于:https://www.cnblogs.com/xt12321/p/10876328.html

MySQL数据库 -- Navicat、pycharm连接数据库相关推荐

  1. mysql 数据库异常_Mysql连接数据库异常汇总【必收藏】

    在Centos上部署项目发现一个奇怪的问题,数据库连接一直抛异常.于是花了两个小时搜了各种数据库连接异常导致的原因,最终问题得以解决.同时,把解决过程中搜集到的异常信息汇总一下,当大家遇到类似的问题时 ...

  2. MySQL 数据库(Python 连接数据库)

    Mysql 引擎 外键 表之间的关联 Python 连接数据库 Python 中类的实现 引擎 查看引擎 show engines 可以了解到默认引擎为 MyISAM,此引擎不支持外键 修改默认引擎 ...

  3. jdbc连接mysql数据库过程_jdbc连接数据库的步骤

    基本理解:开发中要先加载驱动,然后获得连接,创建执行SQL语句的对象,并且执行SQL 第一步:把想要连接的数据库驱动加载入JVM,如加载mysql数据库驱动类可以通过Class.forName(&qu ...

  4. 连接mysql数据库实验_Jdbc连接数据库实验报告(1)

    一 实验目的 1熟悉myeclipse的使用. 2掌握MySQL的使用. 3掌握jdbc连接数据库. 二实验内容 1在MySQL下创建一个数据库students,并创建表student_info.并且 ...

  5. qt连接mysql数据库原理_Qt连接数据库的两种方法

    我曾经想过,无论在哪个平台下开发,都不要再接触SQL Server了,但显然不行.我们是来看世界的,不是来改变世界的,想通就好. 前两天,尝试了一下Qt下远程访问数据库.在macOS下,用Qt 5.1 ...

  6. MySQL→数据库、启动连接数据库、SQL→DDL数据定义语言及数据类型、DML数据操作语言、DQL数据查询语言、数据库约束→主键、唯一、非空、默认、外键、SQL、三大范式及一多关系、视图、内外连接

    MySQL连接退出命令 mysql –uroot -proot mysql –h127.0.0.1 –uroot -proot mysql --host=localhost --user=root - ...

  7. mysql数据库 navicat premium mac 破解教程

    https://www.jianshu.com/p/f3ef78deadaa 转自Navicat Premium for Mac v12.0.22.0 破解教程,macOS上手动破解,无需补丁,无毒 ...

  8. mysql 数据库dbhelp_C# VS连接数据库DBhelp

    #region 执行查询全部SQL语句,返回DataTable;查询全部 DataTable dt=OracleHelper.ExecuteDataTable(sqlString);for (int ...

  9. 当MySQL想恋爱,java和navicate抢着做媒婆 ------ java连接MySQL数据库 navicat for MySQL 连接

最新文章

  1. 程序员需要谨记的9个安全编码规则【转载】
  2. Golang——Println与键盘录入
  3. wireshark linux远程,如何在SSH连接Linux的环境下使用wireshark抓包云边端架构?
  4. python输入10个数字排序案例_介绍十个Python小案例,新手入门就在这里
  5. python实践项目(十一)
  6. 详解Linux上iptables配置命令及常见的生产环境防火墙规则
  7. VS 母版使用配置技巧
  8. Proto3 Any与Oneof(转载)
  9. 最常用的前端网站模板集合
  10. BreakPoint Hex Workshop 6.7.2.5284 portable
  11. 科研绘图自由之开放式绘图平台 (Figdraw)
  12. 看完这份全国各地结婚/离婚数据,我彻底懵了。。。
  13. Datawhale组队学习周报(第042周)
  14. 用浏览器控制台获取一些网页资源
  15. mac m1 解决fatal: unable to access ‘https://github.com/Homebrew/homebrew-core/‘ ;同时指定intel架构的brew 版本
  16. ELK:Logstash 字段名称大小写切换
  17. python医院自动化抢号脚本
  18. 哥德尔递归汉译和原始递归——哥德尔原著英译拆解汉译之七
  19. ThinkPHP5_无限极分类
  20. python numpy.fft.fft和ifft

热门文章

  1. Spring集成MyBatis01 【推荐使用】、springMVC中文乱码和json转换问题
  2. 关于 Java 性能监控您不知道的 5 件事,第 1 部分
  3. QT中调用shell或外部命令
  4. 枚举也能直接转换为对应的数值输出
  5. 字符串加密解密函数 (C#) (转)
  6. python @classmethod和@staticmethod的区别
  7. 语法》第一章 基本语法
  8. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一2.8  黄金分割的三分法构图...
  9. 关于陀螺仪 deviceorientation
  10. maven的基本用法