一. 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");