人生苦短,我用Python--一个新疆农业大学计算机本科生的Python学习之路-数据库(第一天)

人生苦短,我用Python--一个新疆农业大学计算机本科生的Python学习之路-数据库(第一天)

数据库基本介绍

  • 数据库
  • RDBMS
  • SQL
  • MySQL

1.数据库

数据库就是一种特殊的文件,其中存储着需要的数据:

  • 数据库核心元素
    1.数据行(记录)
    2.数据表(数据行的集合)
    3.数据列(字段)
    4.数据库(数据表的集合)

2.RDBMS

Relational Database Management System

所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据

查看最全数据库排行榜:https://db-engines.com/en/ranking

  • 数据库的主要产品:
    1.oracle:在以前的大型项目中使用,比如,银行,电信等项目
    2.mysql:web时代使用最广泛的关系型数据库
    3.sql server:在微软的项目中使用
    4.sqlite:轻量级数据库,主要应用在移动平台

在这里插入图片描述

3.SQL

Structured Query Language

SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库

  • 数据库的主要产品:
    1.DQL:数据查询语言,用于对数据进行查询,如select
    2.DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete

    3.TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
    4.DCL:数据控制语言,进行授权与权限回收,如grant、revoke
    5.DDL:数据定义语言,进行数据库、表的管理等,如create、drop
    6.CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor

4.MYSQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品

  • MYSQL数据库的特点:
    1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
    2.支持多种操作系统,如Linux、Windows、AIX、FreeBSD、HP-UX、MacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等

    3.为多种编程语言提供了API,如C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等
    4.支持多线程,充分利用CPU资源
    5.优化的SQL查询算法,有效地提高查询速度
    6.提供多语言支持,常见的编码如GB2312、BIG5、UTF8
    7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
    8.提供用于管理、检查、优化数据库操作的管理工具
    9.大型的数据库。可以处理拥有上千万条记录的大型数据库
    10.支持多种存储引擎
    11.MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库
    12.MySQL使用标准的SQL数据语言形式
    13.Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统
    14.在线DDL更改功能
    15.复制全局事务标识
    16.复制无崩溃从机
    17.复制多线程从机

MYSQL查询

1.查询

数据库操作

--连接数据库
	mysql -uroot -p
	mysql -uroot -pmysql

	--退出数据库
	exit/quit/Ctrl+d

	--显示数据库版本
	select version();

	--显示时间
	select now();

	--查看所有的数据库
	show databases;

在这里插入图片描述

--创建数据库
	create database python04;
	create database python04new charset=utf8;

	--查看创建数据库的语句
	show create database python04;

在这里插入图片描述
所以通常使用 create database python04new charset=utf8; 命令

	--删除数据库
	drop database python04;
	drop database python04new;

	--查看当前使用的数据库
	select database();

	--使用数据库
	use python01;

在这里插入图片描述

	--使用数据库
	use python03;
	--查看当前数据库中所有的表
	show tables;

数据表操作
– 创建表
– auto_increment 表示自动增长
– not null 表示不能为空
– primary key 表示主键
– default 默认值
– create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
– 创建classes表 (id, name)

	-- 创建一个名为 python03 的数据库
	create database python03 charset=utf8;
	--查看当前数据库中所有的表
	show databases;
	-- 数据库创建好了之后 我们得使用数据库
	use python03;

在这里插入图片描述

	-- 创建数据表
	create table student(id int, name varchar(30));
	create table classes(id int primary key not null auto_increment, name varchar(30));
	-- 下面是最简单的数据表的创建

在这里插入图片描述

	desc student;
	desc classes;

在这里插入图片描述

--练习
	--创建student表(id, name, age, height, weight, gender, class_id)
	create table student2(
		id int unsigned not null auto_increment primary key,
		name varchar(30),
		age tinyint unsigned default 0,
		height decimal(5, 2),
		weight decimal(7, 2),
		gender enum("男", "女", "中性", "保密") default "保密",
		class_id int unsigned
		);

在这里插入图片描述

	-- 给表中插入数据
	insert into student2 values (0, "小艾", 25, 1.72, 64, "男", 1);
	-- 查看插入的数据
	select * from student2;

在这里插入图片描述
修改表-添加字段

	-- alter table  表明 add 列名 类型
	alter table student2 add birthday datetime;

在这里插入图片描述
在这里插入图片描述

	--修改表-修改字段:不重命名阪
	alter table student2 modify birthday date;

在这里插入图片描述

	--修改表-修改字段:重命名版
	alter table student2 change birthday birth date default "2000-01-01";

在这里插入图片描述

	-修改表-删除字段
	--alter table 表名 drop 列名
	alter table student2 drop weight;

在这里插入图片描述

	--删除表
	-- drop database 数据库名;
	-- drop table 数据表;
	drop table student2;

增删改查

	-- 增加
		-- 全裂插入
		-- insert [into] 表明 values(...)
		-- 主键字段 可以用 0 null default 来占位
		-- 向classes 表中插入一个班级
		insert into classes values(0, "大神班");
	-- 向student 表中插入一个学生信息
		insert into student2 values(0, "xiaoai", "1999-11-11", 19, 1.88, 2);
		insert into student2 values(null, "xiaoai", "1999-11-11", 19, 1.88, 2);
		insert into student2 values(default, "xiaoai", "1999-11-11", 19, 1.88, 2);

		-- 失败
		insert into student2 values(default, "xiaoai", "中性""1999-11-11", 19, 1.88, 2);

		-- 枚举中 的 小标从1开始 1---"男" 2--->"女"
		insert into student2 values(default, "小力", 20, 1, 1, "1999-11-11");


		-- 部分插入
		-- insert into 表名(1,...) values(1,...)
		insert into student2 (name, gender) values ("小巧", 2);
		insert into student2 (name, gender) values ("小巧", 2), ("貂蝉"3) ("吕布"4);
	-- 修改
	-- update 表名 set1=1,2=2, ... where 条件;
	update student2 set gender=1; --全部修改
	update student2 set gender=1 where name="小巧"; --只要name是小巧的全部修改
	update student2 set gender=1 where id=3; --只要id为3的 进行修改
	update student2 set age=22, gender=1 where id=3; --只要id为3 进行修改
	-- 查询基本使用
		-- 查询所有列
		-- select * from 表名;
		select * from student2;

		-- 条件查询
		select * feom student2 where name="小巧";  -- 查询name为小巧的所有信息
		select * feom student2 where id>3;  -- 查询用户id小于3的所有用户信息

		-- 查询指定列
		--select 列1,列2 .....from 表名;
		select name, id from student2;



		-- 可以使用as为列或表指定别名
		-- select 字段[as 别名], 字段[as 别名] from 数据表 where ...;
		select name as 姓名, gender as 性别 from student2;

		-- 字段的序列
		select gender as 性别, name as 姓名 from student2;
		select id as 序列号, gender as 性别, name as 姓名 from student2;

	-- 删除
		-- 物理删除
		-- delete from 表名 where 条件
		delete from student2;  -- 整个数据表里的所有数据全部删除
		delete from student2 where name ="小巧";


		-- 逻辑删除
		-- 用一个字段来表示 这条信息是否已经不能在使用了
		-- 给 student2 表添加一个 is_delete 字段 bit 类型
		alter table student2 add is_delete bit default 0;
		update student2 set is_delete-1 where id= 0;
			

猜你喜欢

转载自blog.csdn.net/weixin_45176275/article/details/106336654
今日推荐