python mysql数据库操作grid控件_Python--MySQL系列 数据库,库操作,表操作,数据操作...

数据库

一 数据库是什么

为了远程访问并处理这台共享机器上的文件,我们必须为我们的程序额外写一段代码,完成如下功能:

#1.远程连接

#2.打开文件

#3.读写(加锁)

#4.关闭文件

我们写任何程序都需要有这段代码,于是我们提取这段代码,写成一个专门的处理软件,这就是mysql等数据库管理软件的由来,但mysql解决的不仅仅是数据共享的问题,还有查询效率,安全性等一系列问题,总之,把程序员从数据管理中解脱出来,专注于自己的程序逻辑的编写。

二 数据库概述

1 什么是数据(Data)

描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机

2 什么是数据库(DataBase,简称DB)

数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的

过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用

数据库是长期存放在计算机内、有组织、可共享的数据即可。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种 用户共享

3 什么是数据库管理系统(DataBase Management System 简称DBMS)

在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键

这就用到了一个系统软件---数据库管理系统

如MySQL、Oracle、SQLite、Access、MS SQL Server

mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

4 数据库服务器、数据管理系统、数据库、表与记录的关系(重点理解!!!)

记录:1 刘海龙  324245234 22(多个字段的信息组成一条记录,即文件中的一行内容)

表:student,scholl,class_list(即文件)

数据库:oldboy_stu(即文件夹)

数据库管理系统:如mysql(是一个软件)

数据库服务器:一台计算机(对内存要求比较高)

总结:

数据库服务器---运行--->数据库管理软件

数据库管理软件--->管理--->数据库

数据库---组织--->表,即文件夹---组织--->文件

表---存放--->多条记录,即文件---存放--->多行内容

5 数据库管理技术的发展历程(了解)

http://www.cnblogs.com/linhaifeng/articles/7126847.html#_label3

三 mysql介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

mysql是什么???

mysql就是一个socekt服务端

客户端软件

mysql自带

python模块

其他类型的数据库???

sqllite,db2,oracle,access,sql server,MySQL

分两大类:

关系型:上面这一坨,注意:sql语句通用

非关系型:mongodb,redis,memcache

库操作

一 知识储备

MySQL数据库基本操作知识储备

数据库服务器:一台计算机(对内存要求比较高)

数据库管理系统:如mysql,是一个软件

数据库:oldboy_stu,相当于文件夹

表:student,scholl,class_list,相当于一个具体的文件

记录:1 刘海龙 324245234 22,相当于文件中的一行内容

二 初识SQL语言

SQL(Structured Query Language 即结构化查询语言)

SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:

DDL语句  数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER

DML语句数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT

DCL语句  数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

三 系统数据库

information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等

performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象

mysql:授权库,主要存储系统用户的权限信息

test:MySQL数据库系统自动创建的测试数据库

四 创建数据库

1 语法(help create database)

CREATE DATABASE 数据库名 charset utf8;

2 数据库命名规则:

可以由字母、数字、下划线、@、#、$

区分大小写

唯一性

不能使用关键字如 create select

不能单独使用数字

最长128位

五 数据库相关操作

1查看数据库

show databases;  查看数据库列表

show create database zzz;  查看对应数据库的信息

select database();  查看当前所在库

2选择数据库    use 数据库名

use zzz;

3删除数据库 drop database 数据库名;

drop database zzz;

4 添加数据库 create database 数据库名 charset utf8;

create database zzz charset utf8;

5 修改数据库 alter database 数据库名 charset 编码;

alter database zzz charset gbk;

表操作

表介绍

表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段

id,name,qq,age称为字段,其余的,一行内容称为一条记录

一 创建表

语法:

create table 表名(

字段名1 类型[(宽度) 约束条件],

字段名2 类型[(宽度) 约束条件],

字段名3 类型[(宽度) 约束条件]

);

注意:

1. 在同一张表中,字段名是不能相同

2. 宽度和约束条件可选

3. 字段名和类型是必须的

例子

往表中插入数据

乱码问题:重要!!!

永久解决编码问题

注意注意注意:表中的最后一个字段不要加逗号

二 查看表结构

MariaDB [db1]> describe t1; #查看表结构,可简写为desc 表名

+-------+-----------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-----------------------+------+-----+---------+-------+

| id | int(11) | YES | | NULL | |

| name | varchar(50) | YES | | NULL | |

| sex | enum('male','female') | YES | | NULL | |

| age | int(3) | YES | | NULL | |

+-------+-----------------------+------+-----+---------+-------+

MariaDB [db1]> show create table t1\G; #查看表详细结构,可加\G

三 数据类型

四 表完整性约束

五 修改表ALTER TABLE

语法:

1. 修改表名

ALTER TABLE 表名

RENAME 新表名;

2. 增加字段

ALTER TABLE 表名

ADD 字段名 数据类型 [完整性约束条件…],

ADD 字段名 数据类型 [完整性约束条件…];

ALTER TABLE 表名

ADD 字段名 数据类型 [完整性约束条件…] FIRST;

ALTER TABLE 表名

ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;

3. 删除字段

ALTER TABLE 表名

DROP 字段名;

4. 修改字段

ALTER TABLE 表名

MODIFY 字段名 数据类型 [完整性约束条件…];

ALTER TABLE 表名

CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];

ALTER TABLE 表名

CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

示例:

1. 修改存储引擎

mysql> alter table service

-> engine=innodb;

2. 添加字段

mysql> alter table student10

-> add name varchar(20) not null,

-> add age int(3) not null default 22;

mysql> alter table student10

-> add stu_num varchar(10) not null after name; //添加name字段之后

mysql> alter table student10

-> add sex enum('male','female') default 'male' first; //添加到最前面

3. 删除字段

mysql> alter table student10

-> drop sex;

mysql> alter table service

-> drop mac;

4. 修改字段类型modify

mysql> alter table student10

-> modify age int(3);

mysql> alter table student10

-> modify id int(11) not null primary key auto_increment; //修改为主键

5. 增加约束(针对已有的主键增加auto_increment)

mysql> alter table student10 modify id int(11) not null primary key auto_increment;

ERROR 1068 (42000): Multiple primary key defined

mysql> alter table student10 modify id int(11) not null auto_increment;

Query OK, 0 rows affected (0.01 sec)

Records: 0 Duplicates: 0 Warnings: 0

6. 对已经存在的表增加复合主键

mysql> alter table service2

-> add primary key(host_ip,port);

7. 增加主键

mysql> alter table student1

-> modify name varchar(10) not null primary key;

8. 增加主键和自动增长

mysql> alter table student1

-> modify id int not null primary key auto_increment;

9. 删除主键

a. 删除自增约束

mysql> alter table student10 modify id int(11) not null;

b. 删除主键

mysql> alter table student10

-> drop primary key;

六 复制表

复制表结构+记录 (key不会复制: 主键、外键和索引)

mysql> create table new_service select * from service;

只复制表结构

mysql> select * from service where 1=2; //条件为假,查不到任何记录

Empty set (0.00 sec)

mysql> create table new1_service select * from service where 1=2;

Query OK, 0 rows affected (0.00 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> create table t4 like employees;

七 删除表

DROP TABLE 表名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值