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 的安装非常简单,直接下载安装文件,双击安装文 ...
随机推荐
- python之路----面向对象进阶一
一.isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() i ...
- linux环境下安装tomcat6
1)下载apache-tomcat-6.0.10.tar.gz 2)#tar -zxvf apache-tomcat-6.0.10.tar.gz ://解压 3)#cp -R apache-tomca ...
- Python入门之安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了. 首要条件,python版本必 ...
- 20145127《java程序设计》第三周学习总结
教材学习内容总结 第四章 认识对象 4.1 类与对象 0.Java中有基本类型和类类型两个类型系统.本章主要讲的是类类型.java编写几乎都要使用对象,要产生对象必须先定义类.类是对象的设计图,对象是 ...
- Android实践项目汇报(四)
全国天气客户端 本周学习计划 添加修改功能,完成项目 实际完成情况 1.成功显示当天及后几天的天气信息 通过修改chaxun.java程序,比较JSON数据格式中JSONObject("to ...
- VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例
转载:http://www.codefans.net/articles/1435.shtml 转载:http://www.cnblogs.com/morewindows/archive/2011/08 ...
- DSDS,双模,双卡,双待,单待,双通,单通,概念及相互关系?【转】
本文转载自:https://blog.csdn.net/dirk_it/article/details/7178058?utm_source=blogxgwz9 DSDS:双卡双待 DualSimDu ...
- chrome浏览器新建标签打开页面【学习笔记】
按照下面方法进行设置即可
- linux下sz rz的正确用法
一.背景 2018年5月30日,今天遇到一个关于串口协议相关的问题,其中涉及到串口传输工具sz,rz等的使用,从man手册中并没有获取到有效信息,因此经过一番搜索,才知这两个工具应该这样使用 二.使用 ...
- ubuntu下转换flv格式为mp4格式
一.环境 ubuntu 16.04 二.安装工具 sudo apt install libav-tools 三.开始转换 avconv -i input.flv -codec copy output. ...