文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

你应该知道的MySQL的命令和PyMySQL

2024-12-03 16:56

关注

MySQL

MySQL是一个「关系型」数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一。

在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

MySql安装

安装和配置

下面(以CentOS Linux环境为例)。

Linux下有一个MySQL的分支版本,名为MariaDB,它由MySQL的一些原始开发者开发,有商业支持,旨在继续保持MySQL数据库在GNU GPL下开源(因为大家担心MySQL被甲骨文收购后会不再开源)。

如果决定要直接使用MariaDB作为MySQL的替代品,可以使用下面的命令进行安装。

  1. yum install mariadb mariadb-server 

如果要安装官方版本的MySQL,可以在MySQL官方网站下载安装文件。首先在下载页面中选择平台和版本,然后找到对应的下载链接。下面以MySQL 5.7.26版本和Red Hat Enterprise Linux为例,直接下载包含所有安装文件的归档文件,解归档之后通过包管理工具进行安装。

  1. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 
  2. tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 

如果系统上有MariaDB相关的文件,需要先移除MariaDB相关的文件。

  1. yum list installed | grep mariadb | awk '{print $1}' | xargs yum erase -y 

接下来可以按照如下所示的顺序用RPM(Redhat Package Manager)工具安装MySQL。

  1. rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm 
  2. rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm 
  3. rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm 
  4. rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm 

可以使用下面的命令查看已经安装的MySQL相关的包。

  1. rpm -qa | grep mysql 

启动MySQL服务

先修改MySQL的配置文件(/etc/my.cnf)添加一行skip-grant-tables,可以设置不进行身份验证即可连接MySQL服务器,然后就可以以超级管理员(root)身份登录。

  1. vim /etc/my.cnf 

  1. [mysqld] 
  2. skip-grant-tables 
  3.  
  4. datadir=/var/lib/mysql 
  5. socket=/var/lib/mysql/mysql.sock 
  6.  
  7. symbolic-links=0 
  8.  
  9. log-error=/var/log/mysqld.log 
  10. pid-file=/var/run/mysqld/mysqld.pid 

接下来可以使用下面的命令来启动MySQL。

  1. service mysqld start 

在CentOS 7中建议使用下面的命令来启动MySQL。

  1. systemctl start mysqld 

使用MySQL客户端工具连接服务器。

命令行工具:

  1. mysql -u root 

修改超级管理员(root)的访问口令为i_LOVE_macos_123。

  1. use mysql; 
  2. update user set authentication_string=password('i_LOVE_macos_123'where user='root'
  3. flush privileges

将MySQL配置文件中的skip-grant-tables去掉,然后重启服务器,重新登录。这一次需要提供用户名和口令才能连接MySQL服务器。

  1. systemctl restart mysqld 
  2. mysql -u root -p 

也可以选择图形化的客户端工具来连接MySQL服务器,可以选择下列工具之一:

MySQLl命令

MySQL进入与退出

mysql –uusername -ppassword (进入)

exit (退出)


库级操作语句


表级操作语句


注意:语句结束符:「每个语句都以 ; 或者 \G 结束」

插入数据

全字段插入:INSERT INTO tb_name VALUE (all_values); 一般只用这种

查询数据


修改数据


删除数据

 

数值类型


字符类

 Python连接Mysql

Python连接Mysql,用的是pymysql

  1. import pymysql 
  2.  
  3. config = { 
  4.     'host''127.0.0.1'
  5.     'port': 3306, 
  6.     'user''root'
  7.     'passwd'''
  8.     'charset''utf8'
  9.     'cursorclass': pymysql.cursors.DictCursor 
  10. conn = pymysql.connect(**config) 
  11. conn.autocommit(1) 
  12. cursor = conn.cursor() 
  13.  
  14. try: 
  15.     # 创建数据库 
  16.     DB_NAME = 'test' 
  17.     cursor.execute('DROP DATABASE IF EXISTS %s' % DB_NAME) 
  18.     cursor.execute('CREATE DATABASE IF NOT EXISTS %s' % DB_NAME) 
  19.     conn.select_db(DB_NAME) 
  20.  
  21.     # 创建表 
  22.     TABLE_NAME = 'user' 
  23.     cursor.execute('CREATE TABLE %s(id int primary key,name varchar(30))' % TABLE_NAME) 
  24.  
  25.     # 批量插入纪录 
  26.     values = [] 
  27.     for i in range(20): 
  28.         values.append((i, 'kk' + str(i))) 
  29.     cursor.executemany('INSERT INTO user values(%s,%s)'values
  30.  
  31.     # 查询数据条目 
  32.     count = cursor.execute('SELECT * FROM %s' % TABLE_NAME) 
  33.     print('total records:'cursor.rowcount) 
  34.  
  35.     # 获取表名信息 
  36.     desc = cursor.description 
  37.     print("%s %3s" % (desc[0][0], desc[1][0])) 
  38.  
  39.     cursor.scroll(10, mode='absolute'
  40.     results = cursor.fetchall() 
  41.     for result in results: 
  42.         print(result) 
  43.  
  44. except
  45.     import traceback 
  46.  
  47.     traceback.print_exc() 
  48.     # 发生错误时会滚 
  49.     conn.rollback() 
  50. finally: 
  51.     # 关闭游标连接 
  52.     cursor.close() 
  53.     # 关闭数据库连接 
  54.     conn.close() 

 【编辑推荐】

  1. 为什么没人告诉我Android手机居然还能有线上网?
  2. 2020年还在用Windows 8.1?其实该操作系统并不老土
  3. 微软通过这些新的攻击检测工具增强了Linux的安全性
  4. 代码不止|想制胜海外市场?Google 来帮你!
  5. 代码不止|Google 带你感受科技带来的无限可能

 

来源:Python之王内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯