Mysql清晰明了

1.Mysql概述

MySQL是一个开源的关系型数据库管理系统,在数据存储上MySQL使用表来组织和存储数据。每个表由一组行和列组成,其中每行表示一个记录,每列表示记录中的一个字段。再数据类型上支持各种数据类型,包括整数、浮点数、字符串、日期时间等。它还提供了丰富的数据类型功能,如索引、约束等。

2.将mysql/cmd中运行

mysql -uroot -p

mysql -h192.0.0.0 -u(用户名) -p

3.关于数据库的操作

        3.1 创建数据库

create database 库名 character set utf8;

create database 库名 (列名 列类型 , 列名 列类型与约束)

        3.2 查看所有数据库

show databases;

        3.3 使用数据库

use 库名;

        3.4 查看正在使用的数据库

select database();

        3.5 删除数据库

drop database 库名;

4. 数据库中关于表的操作

        4.1 查看所有表

show tables;

        4.2 创建表

create table 表名(列名 列约束,列名 列约束);

# 约束中 可以设置 主键 primary / not null 非空 /unique 唯一 / auto_increnment 自增长

        4.3 修改表名

rename table 表名 to 修改后的表名;

        4.4 删除表

drop table 表名;

        4.5 查看表内的列设置

desc 表名

        4.6 添加列

alter table 表名 add 列名 列约束;

        4.7 修改列名

alter table 表名 change 原列名  修改后的列名  列约束;

        4.8 删除列

alter table 表名 drop 列名;

5.关于表中数据的操作

        5.1 查看所有数据

select * from 表名;

        5.2 在表中插入数据

# 全列插入 只能插入一行

insert into 表名 values(列1值,列2值,列3值)

# 插入多行

insert into 表名 values(一行值,一行值)

# 缺省插入

insert into 表名(列1名,列2名) values(列1值,列2值);

insert into 表名 set 列名 = 列值,列2名 = 列值;

        5.3 修改数据

update 表名 set 列名 = 列值  where 限制条件

        5.4 删除数据

delete from 表名 where 删除的条件;

6.进阶查询操作

        6.1 基础查询

select *from 表名;

select 列名 from 表名;

select 列名 from 表名 where 条件;

        6.2 给查询结果的列起别名

select 列名 as 别名  from 表名 where 条件;

        6.3 where后的条件介绍

比较运算符:=,!=, <>,<, <= < >, >=;

成员: in 在其中  not in 不在其中

多个条件:and 并且  or 或者

范围比较: between and

模糊查询: like (% 代表任意n个字符,_ 代表一个任意字符)

判空: is null 是空 is not null 空字符串不是null

7. 关于外键的操作

        7.1 添加外键

# 创建表时添加(外键的值在表中必须存在)

create table 表名(列名 类型  foreign key(外键 列名) references 主表 (主键));

# 直接添加

alter table 表名 add 列名 类型  foreign key(外键 列名) references 主表 (主键);

        7.2 外键名的修改

create table 表名(列..., constraint 新列名 foreign key(外键 列名) references 主表 (主键) );

        7.3 外键的修饰选项

RESTRICT : 加入外键使用的主表中的主键 , 不能直接修改主键 (拒绝)

CASCADE: 级联, 删除修改主表时 外键对用的内容 也直接删除或者更新

如何使用: 

create table student(列...,constraint fk_teacher_id foreign key(外键 列名) references 主表 (主键)  on update cascade on delete cascade  );  修改时使用 级联  删除时使用拒绝

        7.4 删除外键

alter table 表名 drop foreign key 外键名;

8. 关联查询

        8.1 嵌套查询

# 一个查询的结果作为另一个查询的内容

select * from student where tid in (select id from teacher where name = 't1' or name = 't2';)

        8.2 笛卡尔连接

# 组合两个表中的所有数据(一个有m行 一个有n行  组合起来有 m*n行)

select * from 表1名,表2名;

        8.3 连接查询

# 内连接  inner join on 连接条件

select 表名.列名 as 新列名 ,表2名.列名 as 新列名 from 表1名 inner join 表2名 on 条件约束;

# 左外连接(内连接内容 + 左表内容 (右侧补NULL))

select student.name , teacher.name from studeng left join teacher on studeng.id * 3 = teacher.id 

# 右外连接(内连接结果 + 右表内容 (左侧补NULL))

select student.name , teacher.name from studeng right join teacher on studeng.id * 3 =teacher.id 

# 全连接(左外连接 union 右外连接)

select student.name , teacher.name from studeng left join teacher on studeng.id * 3 = teacher.id  union select student.name , teacher.name from studeng right join teacher on studeng.id * 3 = teacher.id

9. 常用技术

        9.1 系统函数的调用

方法: select 函数名;

user() 当前用户 、version() 当前数据库版本、database() 当前数据库、current_data 当前日期、

current_time 当前时间、current_timestamp 当前日期时间

        9.2 聚合函数

 

方法:select 聚合函数 from 表名;

max(列名) -- 最大值      min(列名) -- 最小值   avg(列名) -- 平均值    sum(列名)  -- 列求和 

count(列名)   -- 统计行数

        9.3 排序

方法:order by 列名 排序方式,列名排序方式;

# asc 默认升序  desc  降序

        9.4 分页

方法: select * from 表名 limit m,n

方式一 : limit n  显示前n个

方式二:limit m , n 表示 从索引m开始显示n个 

如果显示第page页 每页显示size个: limit(page -1 ) * size, size

        9.5 分组 

方法:select sec ,count(*) from 表名 group by 列名 having 列名 in ('''')

#group by : 针对查询结果进行分组:

select count(*) ,列名 from 表名 where 条件 

#having 指的是针对分组结果进行处理:

select count(*)  as  count, sex from teacher where id > 3 group by sex having count >1;

10. 用户授权操作

        10.1 查看当前用户

select user()

        10.2 创建用户

create user 'temp'@'%'identified by '123456';

        10.3 分配权限

# 所有数据库中所有表的所有权限

grant all on *.* to '用户名' @ ' % ' ;

#mydb数据库 所有表查询 ,插入权限

grant select , insert on mydb.* to' temp2'@'%';

        10.4 删除用户

drop user '用户名'@'%';

        10.5 刷新权限

flush privileges;

11. pysql操作

# 1.下载pymysql包

pip install pymysql

# 2.导入模块

import pymysql

# 3. 构建一个链接
con = pymysql.connect(host="localhost", port=1000, user="root", password="123456")
# 4.通过连接构建一个游标实例
# cur = con.cursor()
# 5.通过游标实例执行sql语句
sql = "show databases;"
cur.execute(sql)

# 6. 获取游标所有内容
datas = cur.fetchall()
for data in datas:
   print(data[0])
# 7.释放游标与连接
cur.close()
con.close()

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值