mysql数据库总结

上传人:痛*** 文档编号:112679851 上传时间:2022-06-23 格式:DOC 页数:12 大小:296.50KB
收藏 版权申诉 举报 下载
mysql数据库总结_第1页
第1页 / 共12页
mysql数据库总结_第2页
第2页 / 共12页
mysql数据库总结_第3页
第3页 / 共12页
资源描述:

《mysql数据库总结》由会员分享,可在线阅读,更多相关《mysql数据库总结(12页珍藏版)》请在装配图网上搜索。

1、mysqI数据库总结(1)mysql数据库,是当前应用非常广泛的一款关系型数据库主要知识点包括:1数据库与表的操作2数据的增加、修改、删除3数据的查询(重点)4与python交互E-R模型当前物理的数据库都是按照E-R模型进行设计的E表示entry,实体R表示relationship,关系个实体转换为数据库中的一个表关系描述两个实体之间的对应规则,包括1. 对一合法的情况下:一个男人娶一个女人,一个女人嫁一个男人2. 对多目前教室里,一个老师教多个学生,一个学生被一个老师教,一个教室里有很多学生,一个学生只能一个教室3. 多对多1在大学中,一个学生选很多课程,一个课程被学生选。2在大学里,一个

2、学生可以有很多老师,一个老师可以教很多学生3关系转换为数据库表中的一个列在关系型数据库中一行就是一个对象三范式经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式。在一定程度上,为了提高访问性能,可以允许一定的冗余。设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第

3、一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。1. 第一范式(1NF)2. 第二范式(2NF)3. 第三范式(3NF)简而言之,第一范式就是无重复的域。简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。说明:后一个范式,都是在前一个范式的基础上建立的安装管理sudoapt-getinstallmysql-servermysql-client启动servicemysqlstart停止servicemysqlstop*重启

4、servicemysqlrestart查询服务是否启动netstat-tap|grepmysql允许远程连接找到mysql配置文件并修改sudovi/etc/mysql/mysql.conf.d/f将bind-address=127.0.0.1注释重启mysql/etc/init.d/mysqlrestart或者servicemysqlrestart卸载管理删除mysql的数据文件sudorm/var/lib/mysql/-R删除mqsql的配置文件sudorm/etc/mysql/-R自动卸载mysql的程序sudoapt-getautoremovemysql*-purgesudoapt-g

5、etremoveapparmor数据库的常见操作命令:1登录ps-aux|grep.*mysql.*sudoservicemysqlrestartmysql-uroot-p密码2选择哪个数据库use数据库名3创建新的数据库createdatabase数据库名字defaultcharset=utf8;4删除数据库dropdatabase数据库名字5创建表createtable表面(列名类型,列名类型,列名类型,类型:int,deximal,char,varchar,longtext,date,time,datatime)6删除表droptable表名7显示当前数据库有多少表showtables;

6、8创建表,加约束如果有主键表先创建主键表,再创建外键表如果有主外键先删除外键表,再删主键表droptableifexistsstudent;droptableifexistsgrade;createtablestudent(sidintprimarykey,snamevarchar(20),ssexchar(1)notnull,snickamevarchar(20)unique,saddressvarchar(200)default未知,cascadednumintnotnull,constraintstudent_dnum_gradeforeignkey(dnum)referencesgra

7、de(gid)ondelete);createtablegrade(gidintprimarykey;gnamevarchar(20)uniquenotnull);约束目的:保证数据的正确性。1. 主键primarykey,默认是唯一2. 非空notnull3. 惟一unique4. 默认default5. 夕卜键foreignkey使用图形窗口连接windows下的navicat点击连接弹出窗口,按照提示填写连接信息,如下图连接成功后,会在连接名称下面显示出当前的数据库双击选中数据库,就可以编辑此数据库下次再进入此软件时,通过双击完成连接、编辑操作数据库操作在连接的名称上右击,选择“新建数据

8、库”,弹出窗口,并按提示填写在数据库上右击,选择“删除数据库”可以完成删除操作表操作当数据库显示为高亮时,表示当前操作此数据库,可以在数据中创建表个实体对应一张表,用于存储特定结构的数据点击“新建表”,弹出窗口,按提示填写信息主键的名称一般为id,设置为int型,无符号数,自动增长,非空自动增长表示由mysql系统负责维护这个字段的值,不需要手动维护,所以不用关心这个字段的具体值字符串varchar类型需要设置长度,即最多包含多少个字符点击“添加栏位”,可以添加一个新的字段点击“保存”,为表定义名称数据操作表创建成功后,可以在右侧看到,双击表打开新窗口,如下图目students(ubuntu)

9、-口交性茅澤習匚Eiirg寻人冉寻13导出问导超碼.isa缜看.fta惡十六曲iidhometownbirthdaygender1环SEE19HHM-01412MSfits佃屉mop5杨江1*6S-03-15di4chffifc育虽05养it1在此窗口中可以增加、修改、删除数据逻辑删除对于重要数据,并不希望物理删除,一旦删除,数据无法找回般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除大于大量增长的非重要数据,可以进行物理删除数据的重要性,要根据实际开发决定脚本命令操作sql语句分为两大类:dml对表的数据内容进行增删改查,ddl除了dml之外使用命令连接命令操作方式

10、,在工作中使用的更多一些,所以要达到熟练的程度打开终端,运行命令mysql-hip-uname-ppasswordmysql-uroot-p回车后输入密码,当前设置的密码为mysql连接成功后如下图QingRerigflengifubiHntunysfll-urwt-pEntepaEE.N)rd!LfelcanEtotheNQL円口nitor.ConmandEendwithorg*YourMSQLcorrectionidis5Serververs*Ldti;S*7aIS-Oubuntu04.1(UbuntuCopyright(c)L8比2917,Oracltand/erItsarftand/o

11、ritsafflltates.Othernamesm曲$betradicinarksaftheirresipectlveType1help;;1orITforrlpTyp住to-cUdrth含currantinpotsttsnent.退出登录quit或exit退出成功后如下图远程连接登录成功后,输入如下命令查看效果:查看版本:selectversion。;显示当前时间:selectnow();般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库运行命令mysql-hip地址-h后面写要连接的主机ip地址-u后面写连接的用户名-ur

12、oot-p-p回车后写密码数据库操作创建数据库createdatabase数据库名charset=utf8;删除数据库dropdatabase数据库名;切换数据库use数据库名;查看当前选择的数据库selectdatabase();表操作查看当前数据库中所有表showtables;创建表没有业务逻辑意义,所以是什么值不重要,auto_increment表示自动增长,只能是数字类型,主键本身是用来唯一标识这一行,只要唯就行,所以如果是主键不需要修改.createtable表名(列及类型);如:createtablestudents(idintauto_incrementprimarykey,sn

13、amevarchar(IO)notnull);修改表查看表的创建语句数据操作showcreatetable表名;altertable表名add|modify|drop列名类型;如:altertablestudentsaddbirthdaydatetime;删除表droptable表名;查看表结构desc表名;更改表名称renametable原表名to新表名;-查询select*from表名增加全列插入:insertinto表名values(.),缺省插入:insertinto表名(列1,.)values(值1,.),同时插入多条数据:insertinto表名values(.),(.).;或in

14、sertinto表名(列1,.)values(值1,.),(值1,.).;主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准修改update表名set列1=值1,.where条件删除deletefrom表名where条件逻辑删除,本质就是修改操作updatestudentsisdelete=1where.;altertablestudentsaddisdeletebitdefault0;如果需要删除则;update备份与恢复数据备份进入超级管理员Sudra-s运行mysqldump命令mysqldump-uroot-p数据库名/备份文件.sql;按提示输入mysq

15、l的密码数据恢复连接mysql,创建数据库,退出连接,执行如下命令,mysql-uroot-p数据库名3;查询编号不大于4的科目select*fromsubjectswhereid3andgender=0;查询编号小于4或没被删除的学生select*fromstudentswhereid4orisdelete=0;模糊查询like%表示任意多个任意字符表示一个任意字符查询姓黄的学生select*fromstudentswheresnamelike黄%;查询姓黄并且名字是一个字的学生select*fromstudentswheresnamelike黄_;查询姓黄或叫靖的学生select*from

16、studentswheresnamelike黄%orsnamelike%靖%;范围查询in表示在一个非连续的范围内查询编号是1或3或8的学生 select*fromstudentswhereidin(1,3,8);between.and表示在一个连续的范围内查询学生是3至8的学生select*fromstudentswhereidbetween3and8;查询学生是3至8的男生* select*fromstudentswhereidbetween3and8andgender=1;空判断*注意:null与”是不同的判空isnull查询没有填写地址的学生select*fromstudentswhe

17、rehometownisnull;判非空isnotnull-查询填写了地址的学生select*fromstudentswherehometownisnotnull;查询填写了地址的女生select*fromstudentswherehometownisnotnullandgender=0;优先级小括号,not,比较运算符,逻辑运算符and比or先运算,如果同时出现并希望先算or,需要结合()使用聚合为了快速得到统计数据,提供了5个聚合函数count(*)表示计算总行数,括号中写星与列名,查询学生总数结果是相同的selectcount(*)fromstudents;max(列)表示求此列的最大值

18、gender=0;min(列)表示求此列的最小值isdelete=0;查询女生的编号最大值selectmax(id)fromstudentswhere查询未删除的学生最小编号selectmin(id)fromstudentswheresum(列)表示求此列的和gender=1;avg(列)表示求此列的平均值isdelete=0andgender=0;查询男生的编号之后selectsum(id)fromstudentswhere查询未删除女生的编号平均值selectavg(id)fromstudentswhere分组selectfrom分组之前的过滤wheregroupby分组之后的过滤havi

19、nglimit按照字段分组,表示此字段相同的数据会被放到一个组中分组后,只能查询被分组的列和聚合函数可以对分组后的数据进行统计,做聚合运算语法:select列1,列2,聚合.from表名groupby列1,列2,列3.查询男女生总数selectgenderas性另别,count(*)fromstudentsgroupbygender;查询各城市人数selecthometownas家乡,count(*)fromstudentsgroupbyhometown;分组后的数据筛选语法:select列1,列2,聚合.from表名groupby列1,列2,列3.having列1,.聚合.having后面的

20、条件运算符与where的相同查询男生总人数方案一selectcount(*)fromstudentswheregender=1方案二:selectgenderas性别,count(*)fromstudentsgroupbygenderhavinggender=1;对比where与havingwhere是对from后面指定的表进行数据筛选,属于对原始数据的筛选*having是对groupby的结果进行筛选排序查询未删除科目信息,按名称升序为了方便查看数据,可以对数据进行排序语法:select*from表名orderby列1asc|desc,列2asc|desc,.将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推默认按照列值从小到大排列asc从小到大排列,即升序desc从大到小排序,即降序查询未删除男生学生信息,按学号降序select*fromstudentswheregender=1andisdelete=0orderbyiddesc;select*fromsubjectwhereisdelete=0orderbystitle;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!