MySql数据库-基础

SQL语言是什么?有什么作用?

概念:

结构化查询语言,用于操作数据库,通用于绝大多数的数据库软件

SQL的特征

1. 大小写不敏感 需要以 ; 号结尾

show databases;-查看当前数据库

注意点:无;一般不报错,但是可能会对程序造成影响

show databases;

Show Databases;

show
databases;

2. 支持单行、多行注释

快捷键-Ctrl + /

-- 单行注释(--后面一定要加上空格)

# 单行注释(后面可以不加上空格,推荐加上)

/*
多行注释
*/

SQL语言的分类

数据定义-DDL-创建、删除、展示、(使用、查看)

定义:库的创建删除、表的创建删除等

数据库
查看数据库

show databases;

使用数据库

use 数据库名称;

创建数据库

create database 数据库名称 [charset utf8];

删除数据库

drop database 数据库名称;

查看当前使用的数据库

select database();

注意点:

查看数据库-show databases;添加复数s

其余一般为database

表单-需要提前选择数据库

查看表

show tables;

删除表

drop tables 表名称;

drop table if exists 表名称;

创建表

create table 表名称(

列名称 列类型,

列名称 列类型,

...);

创建表-列表类型

整数类型

int

浮点数类型

float

文本类型

varchar

日期类型

date

时间戳类型

timestamp

数据操作-DML

定义:新增数据、删除数据、修改数据

插入

insert into 表[(列1, 列2, ...,列N)]

values(值1, 值2, 值3, ..., 值N), (值1, 值2, 值3, ..., 值N)(值1, 值2, 值3, ..., 值N), ..., (值1, 值2, 值3, ..., 值N);

列-代表表单的属性,

值-代表要按行插入的内容

删除

delete from 表名 where 条件判断;

按行删除,可以通过条件判断来进行修改

无while-delte from student; 整张数据表进行删除

更新

update 表名 set 列=值 where 条件判断;

可以通过where后面的条件指定删除值

无while-update student set name = '张学有',全部的name变为张学友

条件判断:列, 操作符, 值

操作符:=, <, >, <=, >=, != 等

id = 5

id < 6

id >= 5

id != 4

注意事项:

进行数据操作后,要在不同的页面进行刷新-不然无法显示修改后的信息-最后的展示页面刷新

字符串的值,出现在SQL语句中,必须要用单引号包围起来

字符串类型的表单可以存放数字

就有部分相同的标签id,重复执行,结果会不同

# 确认数据库
use world;
use student;

# 展示
show databases;

show tables;

# 创建
create database student charset utf8;
create database test charset utf8;
create table student(
    id int,
    name varchar(20),
    age int);

# 删除
drop database student;

drop table student;

# 当前数据库
select database();

# 仅插入id列的数据
insert into student(id) values(10001), (10002), (10003);

# 插入全部列的数据
insert into student(id, name, age) values(10001, '周杰伦', 31), (10002,'王力宏', 33), (10003, '林俊杰', 26);

# 插入全部列数据, 快捷写法
insert into student values(10001, '周杰伦', 31), (10002, '王力宏', 33), (10003, '林俊杰', 26);

# 基础语法

# 删除
delete from student; # 整张表格进行删除
delete from student where id = 10001;
delete from student where id > 10002;
delete from student where id < 10003;

# 更新的语法
update student set name = '张学友' where id = 10002;

# 查询id 和 name 两个列
select id, name from student;
# 查询全部列
select id, name, age from student;
# 查询全部的列,快捷写法
select * from student;
# select + where
select * from student where name = '张学友';

数据控制-DCL

新增用户、删除用户、修改密码、权限管理

数据查询-DQL

基于需求查询和计算数据

select 列|聚合函数|*FROM 表

where ...

group by ...

order by ... [ASC | DESC] //asc表示升序排序,bsc表示降序排序

limit n[, m]

截止到目前学习到的的关键字,需要注意:

where、group by、order by、 limit均可以按照需求进行填写,没,可不写

select 和from 必须写

执行顺序:

from-> where->group by 和聚合函数-> select->order by ->limit

基础查询

基础查询的语法

select 字段列表|* from表

select id, name from student;

select * from student;

查询id,name字段的列表

查询整张表格

过滤查询的语法

select + where

select * from student where name = '张学友';

查询带有name = '张学友'的列表

分组聚合
分组聚合和语法

select字段|聚合函数 from 表 [where 条件] group by列

聚合函数有:

sum(列) 求和

avg(列) 求平均值

min(列) 求最小值

max(列) 求最大值

count(列|*) 求数量

分组聚合的注意事项

group by 出现了那个列, 那个列才能出现在select 中的非聚合中

select id, name, avg(age) from student group by name;

注意点:

第一行先写使用数据库-use world;

按顺序执行-顺序结构

按行操作-点击行后运行

字符串使用 ' ' 进行引用

create database studnet1 charset utf8;
select database();

create table student1(
    id int,
    gender varchar(20),
    age int);

drop table student1;

insert into student(id, name, age) values(10001, '男', 31), (10002,'男', 33), (10003, '女', 33);

# 按照性别来分组
select gender, avg(age), sum(age), min(age), min(age), max(age), count(gender) from student1 group by gender;
-- 同样效果
-- select gender, avg(age), sum(age), min(age), min(age), max(age), count(*) from student1 group by gender;
# 选择输出-进行排序
select * from student where age > 20;
# 年纪最小在上,年纪最大在下,升序排列
select * from student where age > 20 order by age asc;
# 年纪最大在上,年纪最小在下,降序排列
select * from student where age > 20 order by age asc;

# 控制输出个数
select * from student limit 10, 5; # 输出表的第10行后的5行数据

# 分组
select age, count(*) from student where age > 20 group by age;
order by age limit 3; # 进行排序,限制输出,仅输出3个

python-数据库基础操作

python中使用什么第三方库来操作MySQl?如何安装

使用第三方库为:pymysql

安 装:pip install pymysql

如何获取连接对象

from pymysql import Connection 导包

Connection(主机,端口,账号,密码)即可以连接对象

连接对象.close()关闭和MYSQL数据库的连接

如何执行SQL查询

通过连接对象调用cursor()方法,得到游标对象

游标对象,execute()执行sql语句

什么是commit提交?

pymysql库在执行对数据库有修改操作的行为时,是需要通过连接对象的commit成员方式进行确定的

只有确认的修改,才能生效

如何自动提交呢?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值