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 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模块的更多相关文章
- Linux学习之用户管理命令与用户组管理命令(十五)
Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...
- 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】
MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...
- 数据库04 /多表查询、pymysql模块
数据库04 /多表查询.pymysql模块 目录 数据库04 /多表查询.pymysql模块 1. 笛卡尔积 2. 连表查询 2.1 inner join 内连接 2.2 left join 左连接 ...
- MySQL数据库(五)--用户管理、pymysql模块
一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...
- MySQL数据库(五)—— 用户管理、pymysql模块
用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...
- 子查询,用户管理,pymysql使用
当我们的一条记录 分散不同的表中时,就需要进行多表查询例如 一对一 一对多 多对多 1.笛卡尔积查询 意思就是将两个表中的所有数据 全部关联在一起例如A表有两条 B表有三条 一共有6条会产生大量的错误 ...
- Oracle数据库——常用命令(用户管理、数据库导入导出)
--==cmd控制台==-- --==日常用户管理SQL==-- --连接到SQLPLUS >sqlplus /nolog --以dba身份连接 sql>conn / as sysdba ...
- oracle 学习笔记--用户管理
oracle 用户管理 创建用户(需要具有dba权限的用户) create user 用户名 identified by 密码 defaule tablespace users //默认表空间 ...
- Python11/23--mysql用户管理/pymysql
1.mysql用户管理 定义:数据安全是很重要的,不能随便分配root账户,应该按照不同开发岗位分配不同的账户和权限 mysql中将用户相关的数据放在mysql库中 user→db→tables_pr ...
随机推荐
- sql server自增列值的获取
IDENT_CURRENT(tbname) 是看表对象.所以没有受作用域限制. SCOPE_IDENTITY() 受作用域限制.同一个会话里面不同作用域也会有差异 @@IDENTITY 受会话限制 ...
- JSON解析工具比较,主要GSON和FastJSON
JSON解析工具比较,主要GSON和FastJSON 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确 ...
- eclipse插件常用网址链接
目录 jar下载地址 java maven svn erMaster linux镜像ISO: http://www.linuxfly.org/post/659/ virtual下载: ...
- ready 事件 DOM(文档对象模型) 已经加载....
定义和用法 当 DOM(文档对象模型) 已经加载,并且页面(包括图像)已经完全呈现时,会发生 ready 事件. 由于该事件在文档就绪后发生,因此把所有其他的 jQuery 事件和函数置于该事件中是非 ...
- C++ 0x 使用condition_variable 与 Mutex 同步两个线程
Mutex : 锁 同一时间只允许一个线程访问其代码内容 拟人 : 就是一把锁而已,可以lock unlock, 谁都可以拿到锁,打开门进屋,但进去后,就会把门锁上(lock) 别人想进就得等他出 ...
- js 日期证有效性验的通用方法
开发的理念是“为复用而开发,为使用而组装”,代码的复用度将是项目和产品的一个重要的技术指标. var DateTools={ isDate:function(str) { var result = s ...
- HTML CSS + DIV实现整体布局 part2
9.盒模型的层次关系 我们通过一个经典的盒模型3D立体结构图来理解,如图: 从上往下看,层次关系如下: 第1层:盒子的边框(border), 第2层:元素的内容(content).内边 ...
- pyspark dataframe 格式数据输入 做逻辑回归
该方法好处是可以调节阈值,可调参数比其他形式模型多很多. [参照]http://blog.csdn.net/u013719780/article/details/52277616 [3种模型效果比较: ...
- 首届阿里巴巴在线技术峰会,9位大V演讲整理!
https://yq.aliyun.com/articles/57826 感谢参加阿里巴巴在线技术峰会.7月19日的3场专家分享:Blink.Docker.电商互动:7月20日的云数据库十大经典案 例 ...
- org.apache.cxf.interceptor.Fault: Unmarshalling Error: 意外的元素 (uri:"", local:"mixornot")。
三月 09, 2018 3:09:14 下午 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging警告: Interceptor fo ...