mysql创建表

mysql单表操作

折月煮酒 提交于 2020-01-28 21:41:21
mysql记录操作 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT查询数据以及。 插入数据insert 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3…值n); 2. 指定字段插入数据 语法: INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…); 3. 插入多条记录 语法: INSERT INTO 表名 VALUES (值1,值2,值3…值n), (值1,值2,值3…值n), (值1,值2,值3…值n); 4. 插入查询结果 语法: INSERT INTO 表名(字段1,字段2,字段3…字段n) SELECT (字段1,字段2,字段3…字段n) FROM 表2 WHERE …; 更新数据update 语法: UPDATE 表名 SET 字段1=值1, 字段2=值2, WHERE CONDITION; 示例: UPDATE mysql.user SET password=password(‘123’)

MySQL information_schema表查询导致内存暴涨

冷暖自知 提交于 2020-01-26 13:54:15
case:下面的一条sql语句,导致mysql实例内存暴涨:    select * from tables where table_name not in(select table_name from partitions group by table_name having count(*)>1 );    mysql 5.5, 1w+的innodb表。 下面看下调查的结果: 1. sql的执行情况以及内存分配: step1 : 构造information_schema.tables临时表 1.1 构造临时表tables结构: 说明:func=create_schema_table; engine=heap 内存: tables是heap引擎的表,临时构造,使用堆内存;语句结束close_tmp_tables释放。 1.2 填充临时表tables数据:一共由三类表来填充tables的内存 1. memory 引擎: 说明:information_schema下的表,创建临时table, 内存: 使用堆内存,填充完数据后 close_tmp_tables,释放内存。 2. mysiam 引擎: 说明:information_schema下一部分表,是mysiam引擎的临时表。 内存: 使用堆内存,创建磁盘临时文件,close_tmp_tables,释放内存,删除临时文件。 3.

SQLAlchemy表操作和增删改查

倖福魔咒の 提交于 2020-01-22 14:58:47
一.SQLAlchemy介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 安装sqlalchemy组件 pip3 install sqlalchemy SQLAlchemy组件的内部原理 组成部分: Engine,框架的引擎 Connection Pooling ,数据库连接池 Dialect,选择连接数据库的DB API种类 Schema/Types,架构和类型 SQL Exprression Language,SQL表达式语言,将创建的类翻译为SQl语言 SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如: 连接mysql 引擎 通过mysqldb 必须安装mysqldbMySQL-Python mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname> pymysql mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>] MySQL-Connector

MySQL Create Table创建表

穿精又带淫゛_ 提交于 2020-01-22 08:30:34
表的创建命令需要: 表的名称 字段名称 定义每个字段(类型、长度等) 语法 下面是通用的SQL语法用来创建MySQL表: CREATE TABLE table_name (column_name column_type); 现在,我们将在 test 数据库中创建以下表。 create table tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( tutorial_id ) ); 在这里,一些数据项需要解释: 字段使用NOT NULL属性,是因为我们不希望这个字段的值为NULL。 因此,如果用户将尝试创建具有NULL值的记录,那么MySQL会产生错误。 字段的AUTO_INCREMENT属性告诉MySQL自动增加id字段下一个可用编号。 关键字PRIMARY KEY用于定义此列作为主键。可以使用逗号分隔多个列来定义主键。 1、通过命令提示符来创建表 在mysql>提示符下,创建一个MySQL表这是很容易的。使用 SQL 命令 CREATE TABLE 来创建表。 示例 下面是一个例子,创建一个表:

python使用MySQLdb模块连接MySQL

百般思念 提交于 2020-01-22 02:19:39
1.安装驱动 目前有两个MySQL的驱动,我们可以选择其中一个进行安装: MySQL-python:是封装了MySQL C驱动的Python驱动;mysql-connector-python:是MySQL官方的纯Python驱动。 MySQL-python: 安装教程: http://www.cnblogs.com/jfl-xx/p/7299221.html mysql-connector-python: 安装教程: http://www.cnblogs.com/Bgod/p/6995601.html 2.测试连接 这里使用MySQL-python驱动,即MySQLdb模块。 test_connect.py 1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 import MySQLdb 5 6 # 打开数据库连接 7 db = MySQLdb.connect("localhost", "root", "123456", "test") 8 9 # 使用cursor()方法获取操作游标 10 cursor = db.cursor() 11 12 # 使用execute方法执行SQL语句 13 cursor.execute("SELECT VERSION()") 14 15 # 使用 fetchone() 方法获取一条数据库。 16

mysql查看表结构命令

若如初见. 提交于 2020-01-20 18:30:36
MySQL 查看表结构命令,如下: --查看表结构信息(本人相看,得到相同的结果) 1.desc 表名; 2.show columns from 表名; 3.describe 表名; --显示如何创建一个表 show create table 表名; use information_schema select * from columns where table_name='表名'; 顺便记下: show databases; use 数据库 名; show tables; 原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中, 执行以下sql修改索引 alter table tb_webparamcounter drop index AK_PAS_Name; alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name); 若发现索引的逻辑不对,还需要再加一个字段进去,执行 alter table tb_webparamcounter drop index AK_PAS_Name; alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value); 注意

通过binlog日志恢复表记录

别来无恙 提交于 2020-01-17 11:28:29
使用binlog日志 1 使用binlog日志 1.1 问题 利用binlog恢复库表,要求如下: 启用binlog日志 创建db1库tb1表,插入3条记录 删除tb1表中刚插入的3条记录 使用mysqlbinlog恢复删除的3条记录 1.2 步骤 实现此案例需要按照如下步骤进行。 步骤一:启用binlog日志 1)调整/etc/my.cnf配置,并重启服务 [root@dbsvr1 ~]# vim /etc/my.cnf [mysqld] .. .. log-bin-index=mysql-bin //启用二进制日志,并指定前缀 server_id=1 binlog_format=STATEMENT //在Mysql5.7中,binlog日志格式默认为ROW,但它不记录sql语句上下文相关信息。需要将binlog日志格式修改为STATEMENT .. .. [root@dbsvr1 ~]# systemctl restart mysqld.service 2)确认binlog日志文件 新启用binlog后,每次启动MySQl服务都会新生成一份日志文件: [root@dbsvr1 ~]# ls /var/lib/mysql/mysql-bin.* /var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index

MySQL的分区、分表、集群

烂漫一生 提交于 2020-01-16 05:40:52
1.分区 mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的, 一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能, 在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。 如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去 分区的二种方式 a,横向分区 什么是横向分区呢?就是横着来分区了,举例来说明一下,假如有100W条数据,分成十份,前10W条数据放到第一个分区,第二个10W条数据放到第二个分区,依此类推。也就是把表分成了十分,根用merge来分表,有点像哦。取出一条数据的时候,这条数据包含了表结构中的所有字段,也就是说横向分区,并没有改变表的结构。 b,纵向分区 什么是纵向分区呢?就是竖来分区了,举例来说明,在设计用户表的时候,开始的时候没有考虑好,而把个人的所有信息都放到了一张表里面去,这样这个表里面就会有比较大的字段,如个人简介,而这些简介呢,也许不会有好多人去看,所以等到有人要看的时候

python中mysql单表curd基于orm

谁说胖子不能爱 提交于 2020-01-15 13:02:24
应用demo下,models新建一个People类继承models.Model # People类 class People(models.Model): name = models.CharField(max_length=20) age = models.IntegerField(max_length=3) addr = models.CharField(max_length=32) sex = models.IntegerField(default=0, max_length=1) 生成迁移文件 : 进入项目根目录 > cmd > python manage.py makemigrations 写入到数据库 : python manage.py migrate 对数据库的单表curd # 添加 def add_people(request): # 方式一添加 创建People对象 调用save()方法 p = People(name="小明", age=12, sex=1, addr="中国") p.save() # 方式二添加 使用People.objects.create() People.objects.create(name="熊二", age=10, sex=2, addr="森林") # 添加传入的参数可以是字典,键名字跟数据库字段一样 dic = { "name

三十八. 分库分表概述 配置mycat

烈酒焚心 提交于 2020-01-15 05:17:30
1.搭建mycat 分片服务器 数据库主机 192.168.4.55 使用db1库存储数据 数据库主机 192.168.4.56 使用db2库存储数据 主机 192.168.4.54 运行mycat服务,逻辑库名称为test,连接用户名为admin,密码123456 在主机 192.168.4.254 访问测试配置 1.1 在54(主机c1)和55(主机c2)上面分别创建db1和db2库 mysql> create database db1; //c1上面创建db1库 mysql> create database db2; //c2上面创建db2库 1.2 54 55 都授权 mysql> grant all on *.* to admin@"%" identified by "123456"; 1.3 修改数据库的配置文件(54 55) 注意:1代表不区分表名的大小写,0为区分大小写 ]# vim /etc/my.cnf [mysqld] lower_case_table_names=1 //表名忽略大小写 ]# systemctl restart mysqld 1.4 在56主机上面安装JDK ]# rpm -qa | grep -i jdk //安装自带的即可 ]# yum -y install java-1.8.0-openjdk 1.5 在56主机上面安装mycat ]#