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基本操作的更多相关文章

  1. Python连接mysql基本操作

    创建数据库表 import pymysql # 打开数据库连接 db= pymysql.connect(host='localhost',user="root",password= ...

  2. Python操作Mysql之基本操作

    pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...

  3. python使用mysql数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  4. python专题-Mysql数据库(python2._+ Mysqldb)

    Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...

  5. Python使用MySQL数据库【转】

    转自 Python使用MySQL数据库(新)[很详细][fetchall和fetchmany有啥区别呢?] - CSDN博客https://blog.csdn.net/u011350541/artic ...

  6. Python使用MySQL数据库(新)(转)

    http://www.cnblogs.com/fnng/p/3565912.html 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步 ...

  7. python使用mysql数据库(转)

    参考地址 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外 ...

  8. 06 python操作MySQL和redis(进阶)

    python操作mysql.redis 阶段一.mysql事务 主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息, ...

  9. 使用python读取mysql数据库并进行数据的操作

    (一)环境的配置 使用python调用mysql数据库要引进一些库. 目前我使用的python版本是python3.6.引进库为pymysql 其他对应的库可以有以下选择: mysqldb,oursq ...

  10. python使用mysql数据库(虫师)

    转自虫师 http://www.cnblogs.com/fnng/p/3565912.html 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文 ...

随机推荐

  1. centos 网卡名称修改

    在centos6.4之前,如果6.2,6.3安装后网卡名称都是em开始,如果想用eth0这种名称,或者是自定义名称,可以参照以下来实施. 第一步:修改/boot/grub/grub.conf增加一个 ...

  2. Qt之美(一):D指针/私有实现

    The English version is available at: http://xizhizhu.blogspot.com/2010/11/beauty-of-qt-1-d-pointer-p ...

  3. SQL去重之distinct和group by的应用

    遇到一个需求,要去重查出某张表的字段一和字段二,但是查出来的结果要按照表中记录的创建时间排序. 于是,第一时间就想到了使用distinct这个去重专用语法了: select distinct col1 ...

  4. django admin 使用

    Django admin 中一些常用的设置 Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸索 ...

  5. python 线程 进程 协程 学习

    转载自大神博客:http://www.cnblogs.com/aylin/p/5601969.html 仅供学习使用···· python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和 ...

  6. 05: jQuery

    目录: jQuery参考网站 W3school 1.1 JQuery作用 1.2 jQuery与DOM比较 与 相互转换 1.3 jQuery选择器 1.4 jQuery筛选与过滤 1.5 jQuer ...

  7. php在Nginx环境下进行刷新缓存立即输出,实现常驻进程轮询。

    以下面这段代码并不会逐个输出,而是当浏览器筹够一定字节数进行统一输出,结果显而易见,10秒后一次性输出所有内容 for($i=0;$i<10;$i++){ echo $i.'</br> ...

  8. 20145312袁心《网络对抗》Web基础实践

    20145312袁心<网络对抗>Web基础实践 问题回答 1.什么是表单: 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程 ...

  9. 20145317彭垚《网络对抗》Exp7 网络欺诈技术防范

    20145317彭垚<网络对抗>Exp7 网络欺诈技术防范 基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充 ...

  10. 搭建最新版本的Android开发环境

    只为成功找方法,不为失败找借口! Android开发学习总结(一)——搭建最新版本的Android开发环境 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Andr ...