05 数据库入门学习-正则表达式、用户管理、pymysql模块

一、正则表达式

正则表达式用于模糊查询,模糊查询已经讲过了 
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 [email protected]‘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 [email protected]"localhost" identified by "123";
#可以访问day42库的所有表
grant all on day42.* to [email protected]"localhost" identified by "123";
#可以访问day42库的emp表
grant all on day42.emp to [email protected]"localhost" identified by "123";
#仅能查看和添加 day42库的emp表中的 id和name字段
grant select(id,name),insert(id,name) on day42.emp to [email protected]"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 [email protected]‘localhost‘;

4.删除用户

#语法
 drop user 用户名@"主机地址";

#实例
drop user [email protected]‘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()

原文地址:https://www.cnblogs.com/ouyang99-/p/10354770.html

时间: 2024-11-06 19:35:30

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

Linux 入门学习之用户管理

Linux入门之用户管理 linux用户进行访问一般需要认证.授权.审计,其中linux提供了很多的相关命令和相关文件来供使用者分层管理. 用户分类 user 按权限划分: 管理员:root uid为0 普通用户: 系统用户:uid:1-499(centos6)  uid:1-999(centos7) 特性:1.用来运行特定进程的一种身份 2.对守护进程获取资源进行分配 3.不需要登录 登录用户:uid:500+(centos6)  uid:1000+(centos7) 用来登录系统的普通用户

mysql用户管理+pymysql模块

mysql 用户管理 Mysql 是一个tcp 服务器 用于接收用户端发送的指令,操作服务器上的文件数据 在mysql自带的mysql数据库中有4个表用于用户管理的 分别是: 优先级从高到低 user -> db -> tables_priv -> columns_priv 1.创建用户 create user 用户名@"主机地址" identified by "密码"; 此处的主机地址 不是服务器地址 而是表示 这个账户可以在那台电脑上登录 2.

vsftpd基于数据库文件实现虚拟用户管理站点目录

vsftpd基于数据库文件来实现虚拟用户管理站点目录: ftp授权单个系统用户管理(此用户要禁止登陆服务器),虚拟出多个虚拟用户来管理不同的站点目录 一环境:(1)关闭selinux,centos6.8 x_86_64开启防火墙,放开ftp的端口 (2).存放虚拟用户的密码文件[[email protected] vsftpd]# cat /etc/vsftpd/vsftpd_logindrxiaowu ##账户ZkJxu55rt9 ##密码yanyonGZk&aO=+w09xiaowuZk&am

linux命令学习系列-用户管理2

先复习一下上节内容: 1.       用户和用户组的基本介绍,UID,GID,用户类型(普通用户,系统用户,根用户) 2.       用户和组常用命令id,groups,who命令,加用户名参数和不加用户名参数的区别 3.       用户添加命令useradd,执行命令后系统进行了哪些操作,如何通过参数自定义添加用户信息 4.       同时还给大家留了一个小作业,不知道大家完成了没有呢,作业的命令是 useradd –u 503 –g users –d /home/users user

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

Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel 用户切换命令su 用户组管理命令 添加用户组 修改用户组 删除用户组 将用户添加到组或者从组中删除 用户管理命令 用户添加命令useradd 只能超级用户才能添加用户. useradd [选项] 用户名 选项: -u UID:手工指定用户的UID号 -d 家目录:手工指定用户的家目录 -c 用户说明

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

用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_priv user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段 db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段 tables_priv #该表放行的权限.针对:某一张表,以及该表下的所有字段 columns_priv #该

TimesTen 应用层数据库缓存学习:12. 管理缓存环境

缓存和复制代理的启停和状态查看 cache agent的作用是将监控Oracle中数据的变化,并更新到TimesTen.因此,对于只读和AWT缓存组,cache agent都是必需的. cache agent的启停 ttisql> call ttcachestart ttisql> call ttcachestop 或者 $ ttadmin -cachestart DSN $ ttadmin -cachestop DSN replication agent的启停 ttisql> call

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

--==cmd控制台==-- --==日常用户管理SQL==-- --连接到SQLPLUS >sqlplus /nolog --以dba身份连接 sql>conn / as sysdba --修改用户密码 将system用户的密码修改成system sql>alter user system identified by "system" --连接 sql>conn 请输入用户名:system 输入口令: --查询所有用户 sql>select * from

TimesTen 数据库复制学习:7. 管理Active Standby Pair(无缓存组)

Active Standby Pair是TimesTen复制的一种固定模式,就是1个active到1个standby,再到0个或127个subscriber,如下图: 配置 Active Standby Pair (不带缓存组) 大致步骤如下: 1. 创建数据库 2. 使用CREATE ACTIVE STANDBY PAIR创建复制 3. 调用Call ttRepStateSet('ACTIVE'),将active数据库的角色设为ACTIVE 4. 调用Call ttRepStart, 启动复制