MySQL数据库笔记(一)

前言

数据库真是用完就忘,下学期要开数据库原理与安全,这章先复习一下基本操作,为以后的深入学习做下准备。

环境以及可能要用到的工具:

  • 数据库:MySQL 5.7
  • 编程环境:python 3.7 配合MySQLdb
  • 数据库管理工具:DataGrip

一、数据库创建

1.1 创建数据库

直接

CREATE DATABASE dbname;

1.2 创建/删除数据库表

comment是我们在Navicat可以看到的列名
在数据库里创建表,如果不带comment,那么column_name就会充当comment的内容。比如我们创建一个学生信息库,可以id varchar(11) comment('学号')

CREATE TABLE table_name # 建议使用【库名.表名】形式
(
column_name1 data_type(size) comment('column_name_show1'),
column_name2 data_type(size) comment('column_name_show2'),
column_name3 data_type(size) comment('column_name_show3'),
....
);

data_type 参数规定列的数据类型(例如 varchar、int、十进制型decimal、日期型date 等)。
size规定长度

二、增/删/改/查

增删改查是MySQL最常用的操作表单的四种方法,为了方便整理,以后学的新内容也在这儿块进行补充。

2.1 INSERT INTO增加/插入

不指定列名:

INSERT INTO table_name
VALUES (value1,value2,value3,...);

指定列名:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

我在利用过去创建好的的数据库做实验的时候,插入总是error,最后发现是限定了数据type,所以要注意这点,这点不会报错提醒。

2.2 SELECT 查询

因为修改和删除的前提都是先去定位数据,所以把查询放在了修改和删除的前边。

  • 支持LIKE模糊查找。
  • 支持REGEXP正则表达式查找。
  • 支持distinct去重查找。
  • 支持order by排序。
  • 支持group by分组聚合。
# 查询所有:
SELECT * FROM 表名;
# 指定字段查询
SELECT column_name,column_name FROM table_name;

2.3 UPDATE 修改

修改的前提是查询,先查到要修改的

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

2.4 DELETE 删除

删除数据库或者数据表是drop,删除数据表中某一项是delete

drop table table_name;
drop database database_name;
delete from user where account IS NULL and id IS NULL;

三、常用关键字

名称关键字用法
记录条数countsqlselect count(*) from user where id=1;(返回user 中id等于1的个数)
分页查询LIMITSELECT * FROM user LIMIT 5; (返回查询到的前五个结果)
在···之间BETWEENselect * from user where age between 20 and 30;(跟在where后)
去重DISTINCT用于返回唯一不同的值。
模糊匹配LIKEselect * from user where name like ‘张_%’;(_匹配任意单字符,%匹配任意个,[] [^]类似于正则表达式中的用法)
分组group byselect sex,count(*) from user group by sex;(分组查询男女总人数)
正则REGEXPSELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';(查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:)
排序order byselect *from student order by age desc;(查询学生表并按年龄降序排列。desc 降序排列,asc 升序排列)
  • 多条件AND
  • IS NULL
  • 非空IS NOT NULL
  • WHERE
  • 所有*

四、使用python执行SQL语句

python里,sql语句用三组""引起来,对指定数据库的**游标cursor进行操作,如果执行错误要进行回滚。

import MySQLdb
sql = """*****\
		 ******\
	  """

db = MySQLdb.connect("IP地址", "账号", "密码", "数据库名", charset='utf8')
cursor = db.cursor()
try:
	cursor.execute(sql)
except:
	db.rollback() #错误回滚
db.close()
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值