MySQL第二天
<强> 关键词:分组聚合 强>
自关联
<强> 物理上一张表,逻辑上是两张表 强>
<代码>创建表区域( int id主键, atitle varchar (20), pid int, 外键(pid)的引用领域(id) );代码>
<强> 导入sql文件 强>
<代码> areas.sql来源;代码>
<强> 示例图 强>
<强> 示例语句 强>
<代码>选择盛。id作为sid,盛。标题是阶梯,史。id作为shiid史。标题shititle从地区为盛 内连接领域sheng.id=shi.pid史 盛的地方。pid零和sheng.title='山西省的 限制0100;代码>
视图
<代码>创建视图stuscore +查询语句代码>
事务
<强> 四个特性(ACID) 强>
-
<李>原子性(原子性):事务不可分割李>
<李>一致性(一致性):事务间执行顺序不影响结果李>
<李>隔离性(隔离):不受干扰李>
<李>持久性(耐久性):对数据库的更改不丢失李>
引擎类型:引擎=innodb/bdb支持事务,默认innodb
查看表创建的语句:<代码>显示创建表学生;代码>
修改表类型:<代码> alter table学生引擎=innodb; 代码>
<强> 事务语句 强>
<代码>开始;//开启 提交;//提交 回滚;//回滚操作代码>
索引
<强> 查看索引 强>
<代码>显示指数从表名;代码>
<强> 创建索引 强>
<代码>创建索引indexName领域(标题(20));代码>
<强> 删除索引 强>
<代码>下降指数(indexName)表名;代码>
<强> 执行时间 强>
-
<李>开启执行时间监测:<代码>设置分析=1;代码> 李>
<李>执行语句李>
<李>显示监测结果:<代码>显示配置文件;代码> 李>
Python的数据库操作
<强>每一个python会话都是一次事务强>
常用类
<强> Connec类 强>
<代码>连接=连接(主机、端口、数据库、用户、密码、字符集)代码>
<强> 连接对象的方法 强>
<代码> close()关闭连接 commit()事务提交,所以需要提交才会生效 rollback()事务回滚,放弃之前的操作 光标()返回光标对象,用于执行sql语句并获得结果代码>光标
<强> 强>
执行SQL语句
引用><代码> cursor1=connection.cursor()//调用光标方法返回一个光标对象代码>指针对象的常用方法
引用><代码>执行(操作,(参数))//执行语句,返回受影响的行数 fetchone()//获取查询结果集的第一个行数据,返回一个元组 fetchall()//获取查询结果集的所有行,一行构成一个元组,返回一个大元组代码>增删改查
<代码>进口MySQLdb 试一试: 连接=MySQLdb.connect(主机=發ocalhost”,端口=3306,db=皃ython3”,用户=?passwd=? * *’, charset=use utf8) cursor1=connection.cursor () sql=' sql语句增删查改的 数=cs1.execute (sql) connection.commit () cursor1.close () connection.close () 除了例外,e: 打印(e.message) 代码>参数化
<强> 防止SQL注入 强>
<代码>从MySQLdb导入* 试一试: name=raw_input(“请输入一个名字”) 连接=连接(主机=發ocalhost”,端口=3306,db=皃ython3”,用户=?passwd=? * *’, charset=use utf8) # sql='插入学生(名字)值(“小乖巧”)” # sql='更新学生组name='乖巧' id=3 ' # sql='删除从学生id=3 ' sql='插入学生(名字)值(% s) ' cursor1.execute (sql,[名字]) connection.commit () cursor1.close () connection.close () 除了例外,e: 打印(e.message) 代码>封装
<代码>类MYSQL: def __init__(自我,主机、端口=3306 db,用户,密码,charset=皍ft8”): 自我。主机=主机 自我。端口=端口 自我。db=自我。用户=用户 自我。passwd=passwd 自我。charset=字符集 def开放(自我): 自我。连接=连接(主机=self.host端口=self.port db=self.db用户=self.user passwd=self.passwd charset=self.charset) 自我。光标=self.connection.cursor () def关闭(自我): self.cursor.close () self.connection.close () def豆腐(自我): 试一试: self.open () self.cursor (sql参数) self.commit () self.close () 除了例外,e: 打印(e.message) def所有(自我、sql参数=[]): 试一试: self.open () self.cursor (sql参数) 结果=self.cursor.fetchall () self.commit () self.close () 返回结果 除了例外,e: 打印(e.message)MySQL第三天