python-day39--mysql基本操作
1.修改密码:
mysqladmin -uroot password 123
2.忘记密码如何修改密码:
1.干掉data目录---> 重新初始化 (不推荐,所有授权信息全部丢失!!!)
2.跳过授权表 (skip-grant-tables) --->修改密码操作
#1 关闭mysql
#2 在cmd中执行:mysqld --skip-grant-tables
#3 在cmd中执行:mysql
#4 执行如下sql:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges; #5 tskill mysqld
#6 重新启动mysql
方式一
#1. 关闭mysql,可以用tskill mysqld将其杀死
#2. 在解压目录下,新建mysql配置文件my.ini
#3. my.ini内容,指定
[mysqld]
skip-grant-tables #4.启动mysqld
#5.在cmd里直接输入mysql登录,然后操作
update mysql.user set authentication_string=password('') where user='root and host='localhost'; flush privileges; #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
方式二
3.配置文件
[mysqld] #mysqld执行的时候会执行下方配置
#skip-grant-tables #跳过授权表
#basedir=D:\mysql-5.7.19-winx64 #mysql的安装目录
#data=可以指定data目录
port=3306
default-storage-engine=INNODB #默认存储引擎
innodb_file_per_table=1 #每一个表都有一个自己的数据文件
character_set_server=utf8 #默认字符编码 [client] # 客户端的配置
port=3306
user=root
password=963.
default-character-set=utf8 [mysql] #单独客户端的配置
port=3306
user=root
password=963.
default-character-set=utf8
在修改mysqld 中的配置时,要重启mysql服务
4.sql语句汇总
#1 操作文件夹(库)
增
create database db1 charset utf8; 查
show databases;
show create database db1;
改
alter database db1 charset gbk;
删
drop database db1; #2 操作文件(表)
切换到文件夹下:use db1 增
create table t1(id int,name char(10))engine=innodb;
create table t2(id int,name char(10))engine=innodb default charset utf8;
查
show tables;
show create table t1; desc t1;#查看表结构
改
alter table t1 add age int;
alter table t1 modify name char(12);
alter table t1 modify id int primary key auto_increment; 删
drop table t1; #3 操作文件的一行行内容(记录)
增
insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
insert into db1.t1(name) values('egon1'),('egon2'),('egon3');
查
select * from t1;
select name from t1;
select name,id from t1;
select * from t1 where id >5 and id <9;
改
update t1 set name='SB' where id=4;
update t1 set name='SB' where name='alex';
删
delete from t1 where id=4; #删除这一行的记录 #对于清空表记录有两种方式,但是推荐后者
delete from t1;
truncate t1; #当数据量比较大的情况下,使用这种方式,删除速度快 #自增id
create table t5(id int primary key auto_increment,name char(10));
create table t4(id int not null unique,name char(10)); #拷贝表结构
create table t7 select * from t5 where 1=2;
#拷贝表
create table t6 select * from t5 ; delete from t7 where id=1; #删记录
update t7 set name=''; #修改字段对应的值
注意:复制表的时候(不是复制表结构) ,key不会复制: 主键、外键和索引
修改表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;
单表查询
select * from t1 where 条件;
操作汇总:
5.一些sql语句:
一些sql语法:
select user(); #查看当前用户
select database(); #显示当前处于哪个数据库下
help create #查看create命令中内容 ,可查看其它命令
use db1 #切换到db1文件夹下
\c #取消当前输入的指令 如:create database db1 asdas\c
#如:create database 'db; 用'\c 就处理了
\s #查看 mysql的一些配置信息
select * from mysql.user\G #\G 会一行一行的显示出来
show variables like 'char%'; 查看编码
show variables like '%auto_in%'; 查看类似auto_in 的信息
6.创建用户:
1.create user'egon'@'localhost' identified by''; #为服务器本机创建用户
2.create user'alex'@'%' identified by''; #为远程客户端创建用户,只要你能ping通服务器的ip,就能远程登录操作
3.create user'wupeiqi'@'192.168.20.%' identified by''; #为某个单独的网段所有客户端放行
7.授权问题:
授权: 从这四个方面想: insert,delele,update,select #级别1:对所有库,下的所有表,下的所有字段
grant select on *.* to 'lin1'@'localhost' identified by ''; #级别2:对db1库,下的所有表,下的所有字段
grant select on db1.* to 'lin2'@'localhost' identified by ''; #级别3:对表db1.t1,下的所有字段
grant select on db1.t1 to 'lin3'@'localhost' identified by ''; #级别4:对表db1.t1,下的id,name字段
grant select (id,name) on db1.t1 to 'lin4'@'localhost' identified by '';
grant select (id,name),update (name) on db1.t1 to 'lin5'@'localhost' identified by ''; #修改完权限后,要记得刷新权限
flush privileges; 删除权限:
revoke select on *.* from 'lin1'@'localhost';
8.统一字符编码 用配置文件的方式
9..修改默认字符编码:
alter database db1 charset utf8;
10.存储引擎:
指的就是文件(表)的格式,针对不同的数据就要不同的存储引擎
11.事务: 比如有20行代码,要么就都执行成功,要么就都不成功
12.数据库命名规则:
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
python-day39--mysql基本操作的更多相关文章
- Python连接mysql基本操作
创建数据库表 import pymysql # 打开数据库连接 db= pymysql.connect(host='localhost',user="root",password= ...
- Python操作Mysql之基本操作
pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- python专题-Mysql数据库(python2._+ Mysqldb)
Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...
- Python使用MySQL数据库【转】
转自 Python使用MySQL数据库(新)[很详细][fetchall和fetchmany有啥区别呢?] - CSDN博客https://blog.csdn.net/u011350541/artic ...
- Python使用MySQL数据库(新)(转)
http://www.cnblogs.com/fnng/p/3565912.html 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步 ...
- python使用mysql数据库(转)
参考地址 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外 ...
- 06 python操作MySQL和redis(进阶)
python操作mysql.redis 阶段一.mysql事务 主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息, ...
- 使用python读取mysql数据库并进行数据的操作
(一)环境的配置 使用python调用mysql数据库要引进一些库. 目前我使用的python版本是python3.6.引进库为pymysql 其他对应的库可以有以下选择: mysqldb,oursq ...
- python使用mysql数据库(虫师)
转自虫师 http://www.cnblogs.com/fnng/p/3565912.html 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文 ...
随机推荐
- ACM第二站————STL之stack
栈,作为一种最基础的数据结构(栈还是一种内存的存储形式,就不介绍了),在各种数据结构的题目都会间接或者直接用到. 栈是一种受到限制的线性表,其限制是仅允许在表的一端进行插入和删除运算.这也给予了栈的一 ...
- Centos文件切割利器_split命令及cat命令合并文件
有个文件要处理,因为很大,所以想把它切成若干份,每份N行,以便并行处理.split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,为提高可读性,生成日志等 命令格式 -b:值为 ...
- Python3 爬取微信好友基本信息,并进行数据清洗
Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...
- Codeforces 788A Functions again - 贪心
Something happened in Uzhlyandia again... There are riots on the streets... Famous Uzhlyandian super ...
- 认识epoll
linux下的epoll(7)函数,其有着良好的就绪事件通知机制.Epoll 是被linux2.6开始引进的,但是不被其他的类UNIX系统支持,它提供了一种类似select或poll函数的机制:a. ...
- Duilib 实现右下角弹出像QQ新闻窗口,3秒后自动关闭(一)
转载:https://blog.twofei.com/667/ 自绘或子类化控件时,有时需要处理鼠标进入(MouseEnter)/鼠标离开(MouseLeave)/鼠标停留(MouseHover)消息 ...
- stl string 使用(转载)
出处:http://www.cnblogs.com/lzjsky/archive/2011/01/23/1942508.html 1. 查找字符 std::wstring strData = L&qu ...
- Razor语法快速参考
语法/示例 Razor Web Forms对应写法或说明 代码块 @{ int x = 123; string y = "because.";} <% int x = 123 ...
- sql逻辑查询语句的执行顺序
SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN ...
- Elasticsearch 基础概念知识
接近实时(NRT) Elasticsearch是一个接近实时的搜索平台.这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒). 集群(cluster) 一个集群就是由一个或多 ...