Python连载笔记(五)——————MySQL的安装与基础语法

一、 MySQL数据:

    1.什么是数据库:
        数据库就是永久存储数据的仓库
    2.数据库的分类:
        关系型数据库:mysql sqlserver oracle
        非关系型数据库:mongo(芒果) Redis
    3.哪些公司会使用:
        金融机构 游戏公司 购物网站 论坛...
    4.选择数据库:
        M有SQL:
            1.开源 免费 适用于中小型企业,大概处理数据千万级别的
            2.跨平台

二、安装MySQL:

	1.官网下载压缩包:MySQL
        下载之后:
			1)直接通过解压压缩包,配置环境变量
			2)通过exe安装
			3)在线安装
    	注意:如果要卸载已经安装好的MySQL 需要清理三个目录:
        		program Files   data MySQL安装文件夹
        		有一个没删按键,下一个无法安装
        		
	 2.安装过程中需要注意:
          	1)存储地址
	   		2)连接数从15修改成20   同界面下小人选最下面一个
	   		3)选项:utf8  同界面下小黑人选最下面一个
            4)勾选:Include Bin Directory in Windows PATH否则需要自己配置环境变量
            5)记住密码  勾选Enable root access...

	3、安装数据库之后,登录数据库
    		登录命令:mysql -uroot -p
        	-u后面是用户名    -p后面是密码

	4、配置mysql环境变量
    		1).找到mysql安装目录并复制;
        		C:\Program Files\MySQL\MySQL Server 5.5
    		2).右键计算机——属性——高级系统设置——环境变量——系统变量点新建
    		3).新建系统变量:
        		变量名:%MYSQL_HOME%
        		值:C:\Program Files\MySQL\MySQL Server 5.5
    		4).在环境变量-系统变量里面找Path点开,然后在该变量值的后面加:
        		;%MYSQL_HOME%\bin;
       			若尝试上述操作不行,则在环境变量-系统Path变量值的后面加:(注意前后加分号)
       			;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\MySQL\MySQL Server 5.5\bin;

三、库的基本操作

     	提示:对于数据库的操作一定要谨慎,不是自己创建的库,绝对不去动!!慎用删除格式化!!
    1.查看已有的库
        show databases;
    2.使用某个数据库
        use 数据库名;
    3.创建数据库
        create database 库名 character set utf8;     其中:character set utf8为指定字符集可不加。
    4.查看创建的数据库
        show create database python;
    5.切换库
        use 数据库名;
    6.查看当前所在库
        select database();
    7.查看数据库中的表
        show tables;
    8.删除库
        drop database 库名;
    9.库的命名规则
        1).数字 字母 下划线组成,但是不能是纯数字
        2).库名不能是特殊字符和M有SQL的关键字

四、表的管理

    1.表的基本操作
        1)创建表——指定字符集:
            create table 表名(
                字段1     数据类型,
                字段2     数据类型,
                字段3     数据类型
            )character set utf8;
            例:
create table haha(
   id      int,
   name    varchar(50)
)character set utf8;
        2)查看创建表的语句
            show create table 表名;
        3)查看表结构
            desc 表名;
        4)删除表
            drop table 表名;            

	**训练**
		1.新建Python库,在库中创建表pymysql,并指定字符集uft8,
  			字段有三个;id name age\
		2.查看创建表的语句
		3.查看pymysql的表结构
		4.删除表
		5.删除库
#*************************************************************
    create database python character set utf8;
    use python;
    create table pymysql(
        id  varchar(50),
        name  varchar(50),
        age  varchar(50)
        )character set utf8;
    show create table pymysql;
    desc pymysql;
    drop table pymysql;
#*****************************************************************

五、表记录的管理

    1.在表中插入记录
       	1)insert into 表名 values(值);               #表示所有字段都插入,因此值的个数必须等于字段数
        2)insert into 表名(字段1,字段2) values(值1,值2);
        3)insert into 表名 values(记录1),(记录2),(记录3)....;       #一次性插入多条记录
        例:
insert into pymysql values("12","zs","18");
insert into pymysql values("13","ls","19");              
insert into pymysql(id,name) values("14","zs");   
insert into pymysql(id,name,age) values("15","ha","20"),
("16","ha","20"),
("17","haha","20");
    2.查询表记录
        1)select * from 表名;         #这是得到表中所有字段记录信息
        2)select id,name from 表名;   #查询需要的值
        例:
select * from pymysql;
select id,name from pymysql;
select name from pymysql;
#*************************************************************
	练习
		1.查看所有库
    	2.创建一个新库 studb
		3.在studb中创建一张表,指定字符集为utf8,字段有:
    			id  name  age  class1
    	4.查看tab1表结构
    	5.在tab1中随便插5条记录:
        要求:
            第一条:所有字段值都有
            第二条:id name class1 有值
            第三、四、五条记录:所有字段值都有,并且一次性插入
    	6.查看所有人的所有信息
    	7.查看所有人的姓名和班级
#*************************************************************
    show databases;
    create database studb;
    use studb;
    create table tab1(
        id  varchar(50),
        name  varchar(50),
        age  varchar(50),
        class1 varchar(50)
        )character set utf8;
    desc tab1;
    
    insert into tab1 values("001","zs","19","1");
    insert into tab1(id,name,class1) values("002","ls","2");
    insert into tab1(id,name,age,class1) values("15","ha","20","1"),
                ("16","haha","20","2"),
                ("17","xiakela","20","1");
    
    select * from tab1;
    
    select name,class1 from tab1;
#*************************************************************

六、查询记录

	1.查询记录
	select 字段名1,字段2 from 表名 where 条件;
	比如:查询国家是魏国的,字段需要显示姓名
		select name from hero where country = "魏国"
	注:
		1)安装Navicat Premium
		2)创建好库之后,再连接,自取连接名,输入密码
		3)找到自己建的库和表
		4)若要让表报错enum:点表————右键————设计表 将 enum 改为 varchar 并将长度修改
		5)工具中有黑色命令框
		6)新建表值后按F5键刷新
		7)可手动创建数据库和表格等操作,无需代码操作

七、数据类型

	1.数值类型
			1)整型:int   #通常使用这个
						tinyint unsigned
			2)浮点型:
						float(m,n)   m:总长度  n:代表小数位数   比如:float(5,2):999.99
						注意:MySQL保存值的时候,会进行四舍五入,如果你插入的是
							    999.009	,结果是:999.01
						decimal(m,n):结果会更精确,建议使用decimal
			3)字符型
						char(50):定长,浪费存储空间性能高,以空间换时间
						varchar(50):变长,节省存储空间,性能低
		
			注意:
				a.存储的数据不能超过定长,超出会自动截断舍弃
				b.所谓的变长并不是说可以超出你指定的长度

八、表字段操作

	1.对表中的字段进行添加:add
			alter table 表名 add 字段名 类型;
	2.修改 modify
			alter table 表名 modify 字段名 新数据类型;

九、表记录的管理——删、改

	1.删除表记录
		第一种:清空表
			delete from 表名;
			注意:
				所有和删除相关的操作,一定要再三确认。
		第二种:删除表中某一条记录,即有选择性的删除
			delete from 表名 where 条件;
			比如删除魏延:
				delete from hero where name = "魏延";
			比如删除蜀国所有:
				delete from hero where country = "蜀国";
	2.更新表记录 updata
		update 表名 set 字段1 = 值1,字段2 = 值2 where 条件;
			比如把貂蝉国家改为大汉:
				update hero set country = "大汉" where name = "貂蝉";
			比如把性别为女的国家改为女儿国:
				update hero set country = "女儿国" where sex = "女";
练习:
	1.查找所有蜀国人的信息
	2.把id为3的英雄名字改为司马懿,国家改为魏国
	3.查找女英雄的姓名,性别和国家
	4.删除所有魏国的英雄
	5.查找所有蜀国男英雄的信息
	6.删除所有英雄
	
		select * from hero where country = "蜀国";
		update hero set name = "司马懿",country = "魏国" where id = 3;
		select name,sex,country from hero where sex = "女";
		delete from hero where country = "魏国";
		select * from hero where country = "蜀国" AND sex = "男";
		delete from hero;

十、运算符的操作

	1.数值比较 字符比较 逻辑比较
		数值: = != > < >= <= 
		字符:= !=
		逻辑:and or
	练习:
		1.找出攻击力高于150的蜀国英雄的名字和攻击值
		2.将赵云的攻击力改为667,防御力改为883.查找蜀国和魏国的英雄信息
		4.吴国英雄中攻击力为110的英雄,攻击力设置为100,防御力设置为60
			select name,gongji from sanguo where gongji > 150;
			update sanguo set gongji = 667,fangyu = 88 where name = "赵云666";
			select * from sanguo where country = "蜀国" or country = "魏国";
			update sanguo set gongji = 100,fangyu = 60 where gongji = 110 and country = "吴国";

十一、主键的设置

	1.建表第一个字段最好为id,方便索引

	2.主键的设置:
		id int primary key auto_increment
	例如:
		create table user(
		id int primary key auto_increment,
		name varchar(50)
		)character set utf8;
	3.确保数据的完整性,唯一性
		primary key:		主键的约束,非空,唯一
		auto_increment:		自增长,自增长必须配合主键使用
		注意:
			自增持必须配合主键使用,但主键的创建不必依靠自增长

十二、范围的比较(作为判断语句)

	1.between 值1 and 值2		#取值1到值2之间的数
		例如:取攻击值在100-200之间的蜀国英雄信息
	2.in (值1,值2,值3)		#查询符合值1,2,3的记录
	3.not in(值1,值2,值3)		#查询除了符合值1,2,3的记录
		例如:查询除了蜀国和吴国以外女性英雄的信息
			select * from sanguo where country not in ("蜀国","吴国") and sex = "女"

十二、匹配空与非匹配空的字段

	空:is null
	非空:is not null
	例如:查找姓名为null的蜀国男英雄
		select * from sanguo where name is null
	注意:
		1.NULL:空值 必须使用 is 或者 is not 去匹配
		2." ":空字符串,只能用 = 或者 != 去匹配

十三、模糊比较

	1.通过一部分去寻找整条记录,一般是:
		where 字段名 like 表达式
	2.表达式:
		1)"_"   #匹配单个字符
		2) %    #匹配0到多个字符
		示例1:
			查询姓名中至少有2个字符的记录
			select * from sanguo where name like "__"
		示例2:
			匹配名称为非NULL的记录
			select * from sanguo where name like "%";
		练习:
			匹配姓氏是赵的记录
			匹配姓名中只有三个字符的记录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值