MySQL程序员篇-python

  • 连接数据库案例:
    • import mysql.connector
    • cnx = mysql.connector.connect(user=‘scott‘, password=‘tiger‘,
    • host=‘127.0.0.1‘,
    • database=‘employees‘)
    • cnx.close()
    • 或者
    • from mysql.connector import (connection)
    • cnx = connection.MySQLConnection(user=‘scott‘, password=‘tiger‘,
    • host=‘127.0.0.1‘,
    • database=‘employees‘)
    • 异常处理
      • import mysql.connector
      • from mysql.connector import errorcode
      • try:
      • cnx = mysql.connector.connect(user=‘scott‘,
      • database=‘testt‘)
      • except mysql.connector.Error as err:
      • if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
      • print("Something is wrong with your user name or password")
      • elif err.errno == errorcode.ER_BAD_DB_ERROR:
      • print("Database does not exist")
      • else:
      • print(err)
      • else:
      • cnx.close()
    • 很多参数时
      • import mysql.connector
      • config = {
      • ‘user‘: ‘scott‘,
      • ‘password‘: ‘tiger‘,
      • ‘host‘: ‘127.0.0.1‘,
      • ‘database‘: ‘employees‘,
      • ‘raise_on_warnings‘: True,
      • }
      • cnx = mysql.connector.connect(**config)
      • cnx.close()
    • 使用拓展的连接方式
      • import mysql.connector
      • cnx = mysql.connector.connect(user=‘scott‘, password=‘tiger‘,
      • host=‘127.0.0.1‘,
      • database=‘employees‘,
      • use_pure=False)
      • cnx.close()
      • 或者
      • import mysql.connector
      • config = {
      • ‘user‘: ‘scott‘,
      • ‘password‘: ‘tiger‘,
      • ‘host‘: ‘127.0.0.1‘,
      • ‘database‘: ‘employees‘,
      • ‘raise_on_warnings‘: True,
      • ‘use_pure‘: False,
      • }
      • cnx = mysql.connector.connect(**config)
      • cnx.close()
  • DDL语句的使用例子
    • 创建数据库和表
    • from __future__ import print_function
    • import mysql.connector
    • from mysql.connector import errorcode
    • DB_NAME = ‘employees‘
    • TABLES = {}
    • TABLES[‘employees‘] = (
    • "CREATE TABLE `employees` ("
    • "  `emp_no` int(11) NOT NULL AUTO_INCREMENT,"
    • "  `birth_date` date NOT NULL,"
    • "  `first_name` varchar(14) NOT NULL,"
    • "  `last_name` varchar(16) NOT NULL,"
    • "  `gender` enum(‘M‘,‘F‘) NOT NULL,"
    • "  `hire_date` date NOT NULL,"
    • "  PRIMARY KEY (`emp_no`)"
    • ") ENGINE=InnoDB")
    • TABLES[‘departments‘] = (
    • "CREATE TABLE `departments` ("
    • "  `dept_no` char(4) NOT NULL,"
    • "  `dept_name` varchar(40) NOT NULL,"
    • "  PRIMARY KEY (`dept_no`), UNIQUE KEY `dept_name` (`dept_name`)"
    • ") ENGINE=InnoDB")
    • TABLES[‘salaries‘] = (
    • "CREATE TABLE `salaries` ("
    • "  `emp_no` int(11) NOT NULL,"
    • "  `salary` int(11) NOT NULL,"
    • "  `from_date` date NOT NULL,"
    • "  `to_date` date NOT NULL,"
    • "  PRIMARY KEY (`emp_no`,`from_date`), KEY `emp_no` (`emp_no`),"
    • "  CONSTRAINT `salaries_ibfk_1` FOREIGN KEY (`emp_no`) "
    • "     REFERENCES `employees` (`emp_no`) ON DELETE CASCADE"
    • ") ENGINE=InnoDB")
    • TABLES[‘dept_emp‘] = (
    • "CREATE TABLE `dept_emp` ("
    • "  `emp_no` int(11) NOT NULL,"
    • "  `dept_no` char(4) NOT NULL,"
    • "  `from_date` date NOT NULL,"
    • "  `to_date` date NOT NULL,"
    • "  PRIMARY KEY (`emp_no`,`dept_no`), KEY `emp_no` (`emp_no`),"
    • "  KEY `dept_no` (`dept_no`),"
    • "  CONSTRAINT `dept_emp_ibfk_1` FOREIGN KEY (`emp_no`) "
    • "     REFERENCES `employees` (`emp_no`) ON DELETE CASCADE,"
    • "  CONSTRAINT `dept_emp_ibfk_2` FOREIGN KEY (`dept_no`) "
    • "     REFERENCES `departments` (`dept_no`) ON DELETE CASCADE"
    • ") ENGINE=InnoDB")
    • TABLES[‘dept_manager‘] = (
    • "  CREATE TABLE `dept_manager` ("
    • "  `dept_no` char(4) NOT NULL,"
    • "  `emp_no` int(11) NOT NULL,"
    • "  `from_date` date NOT NULL,"
    • "  `to_date` date NOT NULL,"
    • "  PRIMARY KEY (`emp_no`,`dept_no`),"
    • "  KEY `emp_no` (`emp_no`),"
    • "  KEY `dept_no` (`dept_no`),"
    • "  CONSTRAINT `dept_manager_ibfk_1` FOREIGN KEY (`emp_no`) "
    • "     REFERENCES `employees` (`emp_no`) ON DELETE CASCADE,"
    • "  CONSTRAINT `dept_manager_ibfk_2` FOREIGN KEY (`dept_no`) "
    • "     REFERENCES `departments` (`dept_no`) ON DELETE CASCADE"
    • ") ENGINE=InnoDB")
    • TABLES[‘titles‘] = (
    • "CREATE TABLE `titles` ("
    • "  `emp_no` int(11) NOT NULL,"
    • "  `title` varchar(50) NOT NULL,"
    • "  `from_date` date NOT NULL,"
    • "  `to_date` date DEFAULT NULL,"
    • "  PRIMARY KEY (`emp_no`,`title`,`from_date`), KEY `emp_no` (`emp_no`),"
    • "  CONSTRAINT `titles_ibfk_1` FOREIGN KEY (`emp_no`)"
    • "     REFERENCES `employees` (`emp_no`) ON DELETE CASCADE"
    • ") ENGINE=InnoDB")
    • cnx = mysql.connector.connect(user=‘scott‘)
    • cursor = cnx.cursor()
    • def create_database(cursor):
    • try:
    • cursor.execute(
    • "CREATE DATABASE {} DEFAULT CHARACTER SET ‘utf8‘".format(DB_NAME))
    • except mysql.connector.Error as err:
    • print("Failed creating database: {}".format(err))
    • exit(1)
    • try:
    • cnx.database = DB_NAME
    • except mysql.connector.Error as err:
    • if err.errno == errorcode.ER_BAD_DB_ERROR:
    • create_database(cursor)
    • cnx.database = DB_NAME
    • else:
    • print(err)
    • exit(1)
    • for name, ddl in TABLES.iteritems():
    • try:
    • print("Creating table {}: ".format(name), end=‘‘)
    • cursor.execute(ddl)
    • except mysql.connector.Error as err:
    • if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
    • print("already exists.")
    • else:
    • print(err.msg)
    • else:
    • print("OK")
    • cursor.close()
    • cnx.close()
  • 插入数据
    • from __future__ import print_function
    • from datetime import date, datetime, timedelta
    • import mysql.connector
    • cnx = mysql.connector.connect(user=‘scott‘, database=‘employees‘)
    • cursor = cnx.cursor()
    • tomorrow = datetime.now().date() + timedelta(days=1)
    • add_employee = ("INSERT INTO employees "
    • "(first_name, last_name, hire_date, gender, birth_date) "
    • "VALUES (%s, %s, %s, %s, %s)")
    • add_salary = ("INSERT INTO salaries "
    • "(emp_no, salary, from_date, to_date) "
    • "VALUES (%(emp_no)s, %(salary)s, %(from_date)s, %(to_date)s)")
    • data_employee = (‘Geert‘, ‘Vanderkelen‘, tomorrow, ‘M‘, date(1977, 6, 14))
    • # Insert new employee
    • cursor.execute(add_employee, data_employee)
    • emp_no = cursor.lastrowid
    • # Insert salary information
    • data_salary = {
    • ‘emp_no‘: emp_no,
    • ‘salary‘: 50000,
    • ‘from_date‘: tomorrow,
    • ‘to_date‘: date(9999, 1, 1),
    • }
    • cursor.execute(add_salary, data_salary)
    • # Make sure data is committed to the database
    • cnx.commit()
    • cursor.close()
    • cnx.close()
  • 查询数据
    • import datetime
    • import mysql.connector
    • cnx = mysql.connector.connect(user=‘scott‘, database=‘employees‘)
    • cursor = cnx.cursor()
    • query = ("SELECT first_name, last_name, hire_date FROM employees "
    • "WHERE hire_date BETWEEN %s AND %s")
    • hire_start = datetime.date(1999, 1, 1)
    • hire_end = datetime.date(1999, 12, 31)
    • cursor.execute(query, (hire_start, hire_end))
    • for (first_name, last_name, hire_date) in cursor:
    • print("{}, {} was hired on {:%d %b %Y}".format(
    • last_name, first_name, hire_date))
    • cursor.close()
    • cnx.close()
  • 查询案例
    • import mysql.connector
    • from mysql.connector import errorcode
    • config = {
    • ‘user‘:‘test‘,
    • ‘password‘:‘test‘,
    • ‘host‘:‘127.0.0.1‘,
    • ‘port‘:‘3306‘,
    • ‘database‘:‘test‘,
    • }
    • try:
    • con = mysql.connector.connect(**config)
    • except mysql.connector.Error as err:
    • if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    • print "Sometine is wrong with your user name or password"
    • elif err.errno == errorcode.ER_BAD_DB_ERROR:
    • print "Database does not exist"
    • else:
    • print(err)
    • cursor = con.cursor()
    • cursor.execute("select * from students")
    • for (no, name, age, sex) in cursor:
    • print "{} {} {} {}".format(no, name, age, sex)
时间: 2024-11-09 08:26:57

MySQL程序员篇-python的相关文章

给Lisp程序员的Python简介

给Lisp程序员的Python简介 作者:Peter Norvig,译者:jineslong<[email protected]> 这是一篇为Lisp程序员写的Python简介(一些Python程序员告诉我,这篇文章对他们学习Lisp也有帮助,尽管这不是我的本意).基本上,Python可以看作一个拥有“传统”语法(Lisp社区称之为“中缀”或者“m-lisp”语法)的Lisp方言.一个来自comp.lang.python的帖子说到“我一直不明白为什么LISP是一个不错的想法,直到我开始玩上了P

【Python】Java程序员学习Python(五)— 函数的定义和使用

不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍,方法的目的还是重用和封装 一.方法的定义 方法的定义使用关键词def来定义,定义格式如下: def 方法名(参数定义): 方法体 方法名:方法名的规范同变量名规范一样 参数定义:比较复杂,后面会进行讲解 冒号:这个类似于Java的{},必不可少 方法体:方法实现的功能在此定义即可 简单的例子: #定

java程序员自学python day01 认识python及环境搭建

一丶初来乍到: 首先感谢大家能来看我的博客,因为第一次写博客,之前没有经验,所以有不好的地方请大家指出来,当然初来乍到,肯定先要做个小小的自我介绍,本人是今年刚毕业的学生,在大学时期,因为当时看到学长学姐们找工作,都说java比较火,需求量大,所以自学了java,在java学习上,整整花费了两年的时间,现在也即将入职的是一份工作.作为一个程序员,想必大家都知道只会一门语言是远远不够的,因此,下定决心在业余的时间去学习python,把它当做自己的第二门语言,来丰富自己,提高自己的技能. 二丶认识p

【Python】Java程序员学习Python(二)— 开发环境搭建

巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. 一.准备Java环境 我已经说过了,其实我是一个Java程序员,所以学习过程中会有很多Java相关的内容和对比.先介绍下我的基本情况 jdk1.8 eclipse即可,版本最新的 怎么安装java,配置环境变量什么的,我都不会再说了,我这不是小白教程,我相信具备一定的能力. 二.准备Python环

C程序员对Python的疑惑

1.if/else,try,while不产生新的作用域 与java,c不同的是python只有class和module才会产生新的变量作用域,比如下面的代码会让java,c 程序员很不解 >>if a is none: >> x=3 >>print x 2.为什么python的变量看起来像没有类型限制一样,比如下面的代码 >>a='string' >>a=111 在python世界里,一切都是对象,连函数也是.所以上面的代码其实a只是一个对象引用

你假装自己有女朋友,但是程序员用Python自己造了一个女朋

520这一天,也是网络情人节.就在那天,如果没有女朋友的自己,如何假装自己是有朋友的!如何在朋友圈"秀恩爱" 虽然520过去了,但是小编在这里收集了很多"秀恩爱"的姿势,等到七夕如果你还是一个人的话,那么就有用了,不过小编还是祝你早日找到他(她) 女生版: 很有感觉有木有~~ 男生版: 其实这些都是小意思啦~~ 这些都是假装自己有女朋友/男朋友 那么程序员是如何"秀恩爱"呢? 那么今天就用Python制作一个"女朋友". 运行

月薪30k的资深程序员用Python爬取了知乎百万用户!并数据分析!

数据量:3,289,329 人. 数据采集工具:分布式 python 爬虫 分析工具:ElasticSearch + Kibana 分析角度:地理位置.男女比例.各类排名.所在高校.活跃程度等. 请各位注意: 以下所有分析结果都基于我抓取到的这300万用户的个人信息,非权威分析,仅供参考. 数据抓取时间为2017年7月份,用户数据会随着时间推移而变化,所以该报告具有一定时效性. 蓝色为男生,红色为女生.具体数据为: 男生:1,202,234 人,占 51.55%. 女生:1,129,874 人,

程序员篇----你是如何减压的? 分享几个程序员减压网站~

摘要:上班打代码,下班还在打代码,每天被代码折磨的疲惫不堪的程序员们终于可以趁着中秋小假期放松一下了.但是,小编相信可能依然还有部分猿猿们奋战在电脑前线,今天小编为大家奉上几个超赞的良心网站,帮助猿猿们减压放松. 1. Calm 网站链接:http://www.calm.com/ 这个网站就像它的名字一样"平和",网站的设计是通过自然图片(阳光下的暖流.流淌的消息等)与缓缓的音乐相结合,帮你在短时间内即可放松下来.同时你不仅可以设定放松时间,还可以改变音频和图像等,很火的一个网站. 2

8小时以内求生存,8小时以外求发展----程序员篇

http://www.itcast.cn/subject/czschool/index.shtml 在国内,IT行业目前仍然属于新兴行业,整个社会的信息化也处在快速发展的过程中,从事软件开发,可以说是性价比最高的工作.而随着入行门槛的降低,每年都有大量的新人涌入. 目前有个普遍的现象存在,一方面公司对于拥有3年左右开发经验的程序员求贤若渴,另一方面很多程序员在工作了1到2年之后就选择转行了. 为什么很多人在IT这条路上坚持不下去?如何才能在这个行业生存?如何才能更好.更长远地发展呢?我有以下几点