一、正则表达式

正则表达式用于模糊查询,模糊查询已经讲过了 
like 仅支持 % 和 _ 远没有正则表达式灵活
当然绝大多数情况下 like足够使用

#语法
select *from table where name regexp "正则表达式"; #实例
#准备数据
create table emp (id int,name char(10),sex char,age int,dept_id int,job char(10),salary double);
insert into emp values
(1,"刘备","男",26,1,"总监",5800),
(2,"张飞","男",24,1,"员工",3000),
(3,"关羽","男",30,1,"员工",4000),
(4,"孙权","男",25,2,"总监",6000),
(10,"刘备2","男",26,2,"总监",5800),
(5,"周瑜","男",22,2,"员工",5000),
(6,"小乔","女",31,2,"员工",4000),
(7,"曹操","男",19,3,"总监",10000),
(8,"司马懿","男",24,3,"员工",6000); mysql> select *from emp where name regexp('司*');
+------+-----------+------+------+---------+--------+--------+
| id | name | sex | age | dept_id | job | salary |
+------+-----------+------+------+---------+--------+--------+
| 8 | 司马懿 | 男 | 24 | 3 | 员工 | 6000 |
+------+-----------+------+------+---------+--------+--------+ mysql> select *from emp where name regexp('懿$');
+------+-----------+------+------+---------+--------+--------+
| id | name | sex | age | dept_id | job | salary |
+------+-----------+------+------+---------+--------+--------+
| 8 | 司马懿 | 男 | 24 | 3 | 员工 | 6000 |
+------+-----------+------+------+---------+--------+--------+

二、用户管理

MYSQL 是一个tcp 服务器,用于操作服务器上的文件数据,接收用户端发送的指令, 接收指令时需要考虑安全问题

atm 购物车中的用户认证和mysql的用户认证原理是一样的,mysql中把文件称为表

在mysql自带的mysql数据库中有4个表用于用户管理的
优先级从高到低,分别是: user -> db -> tables_priv -> columns_priv

注:对用户管理进行操作后,要使用flush privileges;刷新

1.创建用户

#语法
create user 用户名@'客户端地址' identified by '密码'; #实际操作(在本地上操作)
mysql> create user xcq@'localhost' identified by '123';
Query OK, 0 rows affected (0.13 sec) #查看是否创建完成
mysql> use mysql mysql> select *from user \G;
************************** 4. row ***************************
Host: localhost
User: xcq
Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
#但此时的用户没有任何的权限

2.授权

#语法
grant 全部[all]/权限名称[select(字段名),updata(字段名),alter(字段名),delete(字段名)] on 数据库名.表名 to 用户名@'主机地址'; #可以访问 所有库和表
grant all on *.* to xcq@"localhost" identified by "123";
#可以访问day42库的所有表
grant all on day42.* to xcq@"localhost" identified by "123";
#可以访问day42库的emp表
grant all on day42.emp to xcq@"localhost" identified by "123";
#仅能查看和添加 day42库的emp表中的 id和name字段
grant select(id,name),insert(id,name) on day42.emp to xcq@"localhost" identified by "123"; #all可以给用户添加除了grant(赋予权限)以外的所有权限
#如果想把拥有的权限赋予别人
#使用 with grant option
#如果授权时,被授权的用户不存在,直接创建用户
grant 全部[all]/权限名称[select(字段名),updata(字段名),alter(字段名),delete(字段名)] on 数据库名.表名 to 用户名@'主机地址' with grant option;

3.删除权限

#语法
revoke 权限的名称 on 数据库名.表名 from 用户名@'主机地址'; #实例
revoke all on *.* from xcq@'localhost';

4.删除用户

#语法
drop user 用户名@"主机地址"; #实例
drop user xcq@'localhost';

注:每次对用户进行操作都要刷新权限flush privileges;

三、pymysql模块

1.pymysql

python编写的mysql客户端
pip install pymysql

2.基本使用

import pymysql

#1.链接数据库
conn=pymysql.Connect(
host='127.0.0.1',#服务器地址
user='root',#用户名
password='root',#密码
database='day41',#数据库名称
port=3306,#端口号,可选
charset='utf8'#编码,可选
) #2.获取游标对象
cursor=conn.cursor(pymysql.cursors.DictCursor) #3.sql语句
sql='select *from emp' #4.执行语句
res=cursor.execute(sql)#返回执行的行数
print(res) # fetchall\fetchone\fetchmany 获取查询结果
# print(cursor.fetchall())#全部取出来 # print(cursor.fetchone())#每次取一个,然后游标往下一位
# print(cursor.fetchone())#每次取一个,然后游标往下一位
#
# print(cursor.fetchmany(1))#取的时候指定行数
# print(cursor.fetchall())#将剩下全部取出来 #scroll 游标移动
# cursor.scroll(1,'relative')#个数与模式。relative相对位置;absolute绝对位置 #5.关闭游标
cursor.close() #6.关闭链接
conn.close()

3.commit和rollback

import pymysql

#1.链接数据库
conn=pymysql.Connect(
host='127.0.0.1',#服务器地址
user='root',#用户名
password='root',#密码
database='day41',#数据库名称
port=3306,#端口号,可选
charset='utf8'#编码,可选
) #2.获取游标对象
cursor=conn.cursor(pymysql.cursors.DictCursor) #3.sql语句
sql='insert into emp value(15,"黄月英","女","市场","员工",4500)' #4.执行语句
res=cursor.execute(sql)#返回执行的行数
print(res) cur=cursor.fetchall()
for i in cur:
print(i) #撤销数据,只要数据还没提交,都可以撤销
#conn.rollback() #提交数据,因为pymysql 默认是启用事务,对记录操作的sql语句如果不提交,不会执行。
#但是对于库和表得操作会默认提交
conn.commit(); #5.关闭游标
cursor.close() #6.关闭链接
conn.close()

05 数据库入门学习-正则表达式、用户管理、pymysql模块的更多相关文章

  1. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  2. 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】

    MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...

  3. 数据库04 /多表查询、pymysql模块

    数据库04 /多表查询.pymysql模块 目录 数据库04 /多表查询.pymysql模块 1. 笛卡尔积 2. 连表查询 2.1 inner join 内连接 2.2 left join 左连接 ...

  4. MySQL数据库(五)--用户管理、pymysql模块

    一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...

  5. MySQL数据库(五)—— 用户管理、pymysql模块

    用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...

  6. 子查询,用户管理,pymysql使用

    当我们的一条记录 分散不同的表中时,就需要进行多表查询例如 一对一 一对多 多对多 1.笛卡尔积查询 意思就是将两个表中的所有数据 全部关联在一起例如A表有两条 B表有三条 一共有6条会产生大量的错误 ...

  7. Oracle数据库——常用命令(用户管理、数据库导入导出)

    --==cmd控制台==-- --==日常用户管理SQL==-- --连接到SQLPLUS >sqlplus /nolog --以dba身份连接 sql>conn / as sysdba ...

  8. oracle 学习笔记--用户管理

    oracle 用户管理 创建用户(需要具有dba权限的用户) create user 用户名 identified by 密码 defaule tablespace users     //默认表空间 ...

  9. Python11/23--mysql用户管理/pymysql

    1.mysql用户管理 定义:数据安全是很重要的,不能随便分配root账户,应该按照不同开发岗位分配不同的账户和权限 mysql中将用户相关的数据放在mysql库中 user→db→tables_pr ...

随机推荐

  1. windows10系统右键添加cmd命令

    https://blog.csdn.net/Mr_BEelzebub/article/details/78776104 首先,在桌面新建一个文本文档. Windows Registry Editor ...

  2. 如何使用Python快速制作可视化报表----pyecharts

    如何使用Python快速制作可视化报表   数据可视化能力已经越来越成为各岗位的基础技能.领英的数据报告显示,数据可视化技能在2017年中国最热门技能中排名第一. 就数据分析而言,可视化探索几乎是你正 ...

  3. 机器学习入门-随机森林预测温度-不同参数对结果的影响调参 1.RandomedSearchCV(随机参数组的选择) 2.GridSearchCV(网格参数搜索) 3.pprint(顺序打印) 4.rf.get_params(获得当前的输入参数)

    使用了RamdomedSearchCV迭代100次,从参数组里面选择出当前最佳的参数组合 在RamdomedSearchCV的基础上,使用GridSearchCV在上面最佳参数的周围选择一些合适的参数 ...

  4. hibernate 三种状态

    JPA是Java Persistence API的简称,中文名Java持久层API. 因JPA是由Hibernate的创建者编写,因此和Hibernate基本相似一致.JPA由不同的服务解析,因此在w ...

  5. Flume环境搭建_五种案例(转)

    Flume环境搭建_五种案例 http://flume.apache.org/FlumeUserGuide.html A simple example Here, we give an example ...

  6. eclipse添加源码的另外一种方法

    当我们使用maven或者gradle时,我们不需要担心源码的问题.Maven会帮我们下载jar包的同时下载对应的源码包.一般为source.jar,比如servlet-api-2.5-sources. ...

  7. 安装oracle后java -version命令显示 jdk version "1.3.1"的原因

    因为先装的JDK,后装了oracle,oracle的JDK配置把原来的jdk路径替换掉了. 我的电脑->属性->高级->环境变量->系统变量->PATH ,把JDK的路径 ...

  8. Hibernate 的三种状态详解

    hibernate的对象有3种状态,分别为:瞬时态(Transient).持久态(Persistent).脱管态(Detached). 处于持久态的对象也称为PO(Persistence Object ...

  9. 3类与对象——重拾Java

    面向对象编程的3个特性 1 封装性 面向对象编程核心思想之一就是将数据和对数据的操作封装在一起.通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念. 在实际生活中,我们每时每刻都在与 ...

  10. js json转对象

    使用eval() 读取 for (var i=0;i< response.length; i++) { //alert(response[i].username) html=html+" ...