python学习第35天

一. MySQL 数据库

(1)

命令可以用tab来补全
d:
D:>cd MySQL5.7
D:>cd D:MySQL5.7mysql-5.7.25-winx64in 直接切换到对应的路径
D:>dir 来查看文件夹里面的内容

(2)

cls 清屏(windows) ctrl + l 清屏(linux)
ctrl + c 终止

[windows] 在超级管理员权限下才能使用:
net start mysql 启动mysql
net stop mysql 停止mysql

[linux]
service mysql start 启动mysql
service mysql stop 停止mysql
service mysql restart 重启mysql

(3)登录完整语法:
mysql -u用户名 -p密码 -h地址ip

1 .登录到本地mysql 默认用户root 是最高权限账户

mysql -uroot -p

localhost => 127.0.0.1 本地ip地址

2 . 退出mysql

q 或者 exit

3 .远程连接mysql 服务器

mysql -uroot -p -h192.168.65.130

4 . 查询当前登录的用户是谁

select user();

5 . 设置密码

set password = password("123456");

6 . 去除密码

set password = password("");

windows连接远程linux中的mysql

​ create user "ceshi100"@"192.168.65.1" identified by "333";

给具体某个网段下的所有ip设置账户 % 代表任意的数据0~255

​ create user "ceshi11"@"192.168.111.%" identified by "111"

所有的ip都可以登录 % 任意所有ip

​ create user "ceshi12"@"%" identified by "111"

USAGE 没有任何权限

mysql> show grants for "ceshi12"@"%";
+-------------------------------------+
| Grants for ceshi12@% |
+-------------------------------------+
| GRANT USAGE ON . TO 'ceshi12'@'%' |
+-------------------------------------+
1 row in set (0.00 sec)

7 . 赋予权限

grant 权限 on 数据库.表名 to "用户名"%"ip地址" identified by "密码":

主要权限

select 查询数据库的权限
insert 插入数据库的权限
update 更新数据库的权限
delete 删除数据库的权限

1)all 代表所有的权限

grant all on . to "ceshi12"@"%" identified by "333";

2)查看所有数据库

show databases;

3)移除权限

revoke all on . from "ceshi12"@"%";

4)删除账户

drop user "ceshi12"@"%";

5)刷新权限,立刻生效

flush privileges

二.操作数据库

(1) 操作[数据库] (文件夹)

​ 创建数据库

​ create database db0616 charset utf8;

​ 查看所有数据库

​ show databases;

​ 查看数据库的建表语句

show create database db0616 ;
CREATE DATABASE `db0616_2` /*!40100 DEFAULT CHARACTER SET utf8 */


alter 更改数据库的字符集
alter database db0616 charset gbk


删除数据库db0616
drop database db0616;

(2)操作[数据表] (文件)

选择数据库
use 数据库名

​ 查询所有数据表

​ show tables;

​ 查看表的建表语句

​ show create table t1G #( 加上G 垂直显示 ,默认横向显示)

"""
CREATE TABLE `t1_1` (
  `id` int(11) DEFAULT NULL,
  `name` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8	
"""

​ 查看表结构

​ desc t1;

# modify 只能改变数据类型
alter table t1 modify name char(5);
# change 练字段名+数据类型一起改变
alter table t1 change name NAME char(4);
alter table t1 change name name_new char(4);
# add  添加字段
alter table t1 add age int;
# drop 删除字段 column列(字段,关键字)
alter table t1 drop column age;
# rename 更改表名
alter table t1 rename t1_1;

# 删除表t1_1
drop table t1_1;

(3)操作记录(文件里面的数据)

mysql null 相当于 python None 是一样的 代表空的 什么也没有

# 一次插入一条数据
'''insert into 表名(字段1,字段2 ...) values(值1,值2 ... )'''
insert into t1(id,name) values(1,"xboy1")
# 一次插入多条数据
insert into t1(id,name) values(2,"xboy2"),(3,"xboy3"),(4,"xboy4")
# 不指定具体字段,默认把所有字段值查一遍
insert into t1 values(5,"xboy5");
# 可以具体指定某个字段进行插入
insert into t1(name) values("xboy6")	

# * 代表所有
select * from t1;
# 把要搜索的字段写在select 后面
select id,name from t1;

# update 表名 set 字段=值 where  条件
update t1 set name="王文" where id = 1
# 如果不加条件 , 所有的数据都会改掉
update t1 set name="王文" 

# 删除id为2的这条数据
delete from t1 where id = 2
delete from t1 

# 重置数据表 (重置id)
truncate table t1;python

(4) 常用数据类型

1)整型

tinyint 1个字节 有符号(-128 ~ 127) 无符号(unsigned) (0~255) 小整型值
int 4个字节 有符号(-21亿 ~ 21亿 左右) 无符号(0~42亿左右) 大整型值

create table t1(id  int , sex  tinyint);
insert into t1 values(4000000000,127); error
insert into t1 values(2000000000,127);

2)浮点型

float(255,30) 单精度
double(255,30) 双精度
decimal(65,30) 金钱类型,使用字符串的形式保存小数

"""存在四舍五入"""
create table t2(f1 float(5,2) , f2 double(5,2) , f3 decimal(5,2));
insert into t2 values(1.666666666666666666666666666,1.666666666666666666666666666,1.666666666666666666666666666);		

"""float 小数位默认保留5位,double小数位默认保留16位,decimal 默认保留整数位,存在四舍五入"""
create table t3(f1 float , f2 double , f3 decimal);
insert into t3 values(1.666666666666666666666666666,1.666666666666666666666666666,1.666666666666666666666666666);		

# float(5,2) 5=>代表总长度(整数+小数)  2=> 小数长度,保留2位
create table t6(f1 float(5,2));
insert into t4 values(12.34567);
insert into t5 values(1234.34567);

3)字符串 char(字符长度) varchar(字符串) text

char(11) 定长:固定开辟11个字符长度的空间(手机号,身份证号), 开辟空间的速度上说: char更快
varchar(11) 变长:最多创建字符长度为11的空间(小广告,评论) 开辟空间的速度上说: 相较于char稍慢
text 文本类型,针对于文章,小说

create table t7(c char(11) , v varchar(11) , t text);
insert into t7 values("11111","盛占涛祖玛套大保健你你","倚天屠龙宝刀,掉率0.00001");
select concat(c,":",v,":",t) from t7; 

concat 拼接

select concat(参数1,参数2,参数3 ... ) 把所有的参数拼接在一起

4)枚举和集合

enum 枚举 : 从列出来的数据当中选一个(性别)
set  集合 : 从列出来的数据中选多个(自动去重)

create table t8(
id int , 
name char(10), 
money float(6,2) , 
sex enum("man","woman"),
hobby set("beat_doudou","smoke","drink","tang_head")	
)

# 正常写法
insert into t8(id,name,money,sex,hobby) values(1,"张三",9.66666,"woman","smoke,tang_head");

# 自动去重
insert into t8(id,name,money,sex,hobby) values(1,"张三",9.66666,"woman","beat_doudou,beat_doudou,beat_doudou,beat_doudou");
原文地址:https://www.cnblogs.com/yunchao-520/p/13149801.html