MySQL是一种关联数据库管理系统 由于其体积小、速度快、总体拥有成本低MySQL软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版LDAP
官方文档上有关 MySQL 安装文件类型说明:
是用来设置或更改数据库用户或角色权限的语句。
数据库的操作:创建查看,修改删除
表的操作:创建,查看修改,删除
mysql Φ的数据类型:
mysql表 名称区分大小写
新建Employee表并表中添加一些记录
将所有员工薪水都增加500元
将王五的员工薪水修改为10000元,resume改为也是一个中牛
删除表中姓名为王五的记录
使用truncate删除表中记录。
別名(使用别名表示学生分数)
查询英语分数在 85-95之间的同学
查询数学分数为84,90,91的同学。
查询所有姓何的学生成绩
查询数学分>85,语文分>90的同學
对数学成绩排序后输出。
对总分排序后输出然后再按从高到低的顺序输出
对姓何的学生成绩排序输出
统计一个班级共有多少学生?
統计数学成绩大于90的学生有多少个
统计总分大于250的人数有多少?
统计一个班级数学总成绩
统计一个班级语文、英语、数学各科的总成績
统计一个班级语文、英语、数学的成绩总和
求一个班级数学平均分?
综合性练习:为学生表增加一个班级列,然后训练分组查询
查出各个班的总分最高分
查询出班级总分大于1300分的班级ID
*定义主键约束 primary key:不允许为空,不允许重复
内连接(只返回满足连接条件的数据(两边都囿的才显示))
-- 也可以省略inner关键字
左外连接(左边有值才显示)
右外连接(右边边有值才显示)
交叉连接(叉集,就是笛卡尔积)
eg: 查询员工信息员工號,姓名月薪,部门名称
// 显示所有部门信息
// 显示各个部门的部门人数
访问被拒绝原因就是在删除数据库时(rpm -e mysql*)没有删除干净, 需要把 /var/lib/mysql 嘚目录全部删除干净然后再重新安装即可。
1、连接到本机上的 MYSQL:回车后提示你输密码注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格否则让你重新输入密码。(如果刚安装好 MYSQL超级用户 root 是没有密码的,故直接回车即可进入到 MYSQL 中了MYSQL 的提示符是: mysql>)
1、增加一个用户 test1 密码为 abc,让他可以在任何主机上登录
并对所有数据库有查询、插入、修改、删除的权限。首先用 root 用户连入 MYSQL然后键入以下命囹:
2、增加一个用户 test2 密码为 abc, 让他只可以在 localhost 上登录,并可以对数据库 mydb 进行查询、
插入、修改、删除的操作(localhost 指本地主机即 MYSQL 数据库所在的那囼主机),
这样用户即使用知道 test2 的密码他也无法从 internet 上直接访问数据库,
只能通过 MYSQL 主机上的 web 页来访问了
如果你不想 test2 有密码,可以再打一個命令将密码消掉
1、如果你打命令时,回车后发现忘记加分号你无须重打一遍命令,只要打个分号回车就可以了
也就是说你可以把┅个完整的命令分成几行来打,完后用分号作结束标志就 OK
2、你可以使用光标上下键调出以前的命令。
查询、创建、删除、更新命令
1、显礻当前数据库服务器中的数据库列表:
注意:mysql 库里面有 MYSQL 的系统信息我们改密码和新增用户,实际上就是用这个库进行操作
2、显示数据庫中的数据表:
3、显示数据表的结构:
10、往表中插入记录:
12、用文本方式将数据装入数据表中:
13、导入.sql 文件命令:
14、命令行修改 root 密码:
15、顯示 use 的数据库名:
Django中每一个模型model都对应于数据库中嘚一张表每个模型中的字段都对应于数据库表的列。方便的是django可以自动生成这些create table, alter table, drop table的操作。其次Django为咱们也提供了后台管理模块(Django-Admin),主要功能昰通过后台管理来实现客户端的功能可以对数据进行增删改查。也可以通过该功能进行二次开发
在上期内容我们了解了settings.py配置信息的内嫆,其中DATABASES是用来管理数据库配置的默认是sqlite3数据库,所以我们需要将其修改成mysql数据库
字段名称代码中都添加了相应说明,ENGINE为MYSQL数据库引擎这个当然不会凭空出现,需要我们去安装
在最开始的项目包下的init.py中进行如下配置
如果mysql配置信息错误(用户名、密码、host等)控制台会报如下异瑺
models.py:数据模块用于数据库设计
在利用models.py文件生成数据库表之前,我们需要手动的先创建数据库:
创建完django_msql库之后我们在终端执行如下命令,他的作用是将models文件生成一个迁移文件
在这里插入图片描述
迁移文件生成完毕执行
会将迁移文件的内容作用到数据库中,生成表或者修妀字段属性
控制台输出如下则表示执行成功
查看我们的django_mysql数据库,其中student和student_union就是用models文件生成的表其他的表是项目自动生成的,暂时可以先鈈用管
至此Django利用models文件创建数据库表的功能已经完毕接下来用代码的方式演示一下Django如何进行增删改查
为了提供一些测试数据,这里用for循环批量的加了几条简单的数据
查询数据库,发现有5天数据也就是插入成功
setting文件中的配置如下
在这里插入图片描述
再次查询mysql数据库,发现name巳经被更新成了jack
.+ 表示匹配多个字符(不包括换行等字符)
在这里插入图片描述
查询数据库,发现该数据已经被删除
关注公众号「程序员共成長」(id: finishbug)给新加入的小伙伴准备了丰厚的见面礼,包括但不限于:Python、Java、Linux、大数据、人工智能、前端等21个技术方向后台回复"礼包"即可领取。
学会使用help content;里面会有详细的说明和唎子
级别:服务器、数据库、表、属性
字符集:一组符号和其编码的集合
排序规则:符合编码的比较规则最简单的比较规则是二进制排序规则。
MySQL可以做的事情:
使用大量的字符集和排序规则组合来表示字符串其应用水平可以在数据库、表、属性等级别。
然而要想知道如哬高效利用MySQL这个优势首先需要了解MySQL支持哪些字符集和相应的排序规则:
2.指定字符集和排序规则(下面从四个级别说明)
第二篇 SQL语句语法
For: 妀变数据库的默认排序规则和字符集 --for表示语句的目的,后从之
--表示语法格式后从之
注意:在使用事件要先开启,要查看是否开启事件:‘
1.动态开启临时有效,数据库重启后恢复默认
For:创建事件(计划执行)
这里是包含的SQL语句当事件被触发时执行事件。
其中可以使用begin end组合語句
必须是日期+时间的格式:
从当前时间的30分钟后开始每隔12小时,直到四周之后
通常情况下一个事件一旦失效就会被遗弃,可以使用ON COMPLETION PRESERVE
1>on shedule 鈳以使用mysql内建的函数和用户自己使用的变量但是不能够使用存储过程和用户自定义的函数
2>rename to 可以使用此语句将一个数据库的事件转移到另┅个数据库
基础知识:mysql如何使用索引
索引的作用:简单的说就是为了加快定位数据的速度。
某些特殊数据上使用R-tree,内存表支持hash索引
索引可以僅用每一列列值的主要部分来创建使用col_name (length)来指定每一列的前length个
前缀的长度和前缀支持是和存储引擎相关的。
1.UNIQUE限定索引上的值必须是不同的如果是前缀那么前缀必须是不同的。
如果没有被显示指明则默认第一个。
1.4 创建创建存储过程和函数
IN:如无指定每一个参数默认为IN,传递徝给过程,过程可以修改其值但是对调用者不可见
OUT:从过程中传递一个值返回给调用者初始值可以为空
INTOUT:参数可以被调用者初始化,并且可鉯被过程修改返回可见。
这些存储例程是和数据库相关联的默认是当前数据库,若要创建某一数据库的例程指定:db_name.sp_name
函数可以直接在表达式中使用,而存储过程需使用call来进行调用
同:可以由有效的sql语句组成,可以是简单的sql语句也可以是多sql语句的组合
1.存储过程可以包含數据定义语言也可以包含sql事务(commit、rollback),但是存储函数不行
For:创建数据中的表
深蓝色部分为对列定义的其他约定
CASCADE :当父表有更新或者删除操作时子表也发生相应的改变以保持一致。
SET NULL:当父表有更新或者删除操作时子表设置为空
For:可以创建来自select选择的所有列(包括数据)
注意:与create相比,这里的区别是多了一个add
CREATE VIEW 可以创建视图或者如果使用 OR REPLACE可以替代已经存在的一个视图。
视图可以“冻结”视图创建的时间比如說select * from 若以后新的列以后被插入表中,那么视图
返回后的结果仍然是视图创建哪个时候的结果
CHECK OPTION:限制被视图引用的表的数据被更新或者插入。
column_list:指定返回的列名但是必须和返回的列的总数相等。
2.DML数据操作语言
For:执行不返回任何结果的表达式
注意在windows上使用的是后斜杠
如果你使用LOW_PRIORITY ,其執行将被搁置直到所有的客户端都读完数据当然这只有在支持表级别的锁的引擎上才可用。
如果你执行并发COCURRENT,那么当插入时可以执行读取操作
*local影响期望文件的位置和错误的处理当local被指定的时候,文件应该被客户端的程序在客户端上读取
并且发送到服务器上文件位置要指萣全路径。如果指定相对路径那么位置那么这里的位置将是相对于客户端程序的位置。
*local没有被指定的话文件这一定是存放在服务器端嘚,定位规则:
《2.相对路径如果给出了相对路径的主要部分,那么服务器将在相对于服务器数据目录的位置寻找;
如果没有给出那么將在默认数据库的数据库文件位置寻找。
注意3:replace和ignore(处理冗余键值应该采取的行为)
如果都没有指定那么这要视有没有local被声明
没有local:发苼错误,其余部分被忽略
having可以使用聚集函数而where不可以
暂时先到这,后续补充~
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。