志在指尖
用双手敲打未来

mysql数据库基础知识(学了mysql数据库能干嘛)

mysql数据库基础知识

1.根底常用指令
mysql-uroot-p密码;(也能够不带密码,之后输入)本地登录
mysql-h登录ip-p端口(一般3306)-uroot-p密码;长途登录
desc表名;查看表的各个字段的特点,以及自增键
mysqldump-u用户-p数据库名>xx.sql;导出数据库文件,保存
mysql-u用户-p密码数据库名<xx.sql;导入数据库文件(也能够挑选登录进去,在挑选数据库后,运用source指令导入数据)
2.创立指令
createuser’用户名’@’ip’identifiedby’密码’;创立用户
ip是指用户登录mysql的电脑ip,能够写%,本地写localhost
grant权限(select/insert/updata/allpriveleges)on表/数据库名to’用户’@’ip’identifiedby’密码’;用户授权
dropuser用户名@ip删去用户
showdatabases;查数据库
showtables;看表
createdatabase数据库名defaultcharsetutf8;创立数据库
createtable表名(列名数据类型束缚···,列名数据类型束缚···)engine=innodbdefaultcharset=utf8创立表
其间数据类型种类数字(int,tinyint,smallint,float,double),字符串(char(个数)varchar(个数))时刻(DATE,TIME,DATETIME),枚举enum(值只能是枚举中的元素),集合set(值只能是结合元素的组合)
createtable表名(列名数据类型primarykeyauto_increment,列名数据类型束缚···)engine=innodbdefaultcharset=utf8创立含主键的表
createtable表名(列名数据类型primarykey,列名数据类型constraintfk_外键名foreignkey(列名[,])references表名2(列名[,])···)engine=innodbdefaultcharset=utf8创立含外键的表mysql
2.查表指令
条件查询
select*from表名;
select列名···from表名;
select列名from表名where列名(id等)>/
select列名,常量from表名;增加一个常量列
select列名from表名where列名in/notin/betweenandvalue;
select列名from表名where条件1and条件2;
特别的:select列名from表名where列名in(select列名(只能一列)from表名);
select列名from表名where列名like’xx%’/’%xx’/”xx_”;查询以xx开头/xx结束%代表恣意位,_代表一位
selectxx,(selectxxfrom…)from…..查询条件做常量值
分页
select列名from表名limitnum;显示num个
select列名from表名limitnum1,num2;从num1后取num2行数据,num1是起始方位,num2是个数
select列名from表名limitnum1offsetnum2;从num2后取num1行数据,num2是起始方位,num1是个数
排序
select*from表名orderby列名desc;从大到小排序
select*from表名orderby列名asc;从小到大排序
select*from表名orderby列名1desc列名2asc;首要遵从列1从大到小排序,遇到相同数据时,按列2从小到大排序
分组操作
selectcount/sum/max/min/avg(列名1),列名2from表名groupby列名(一般是列名2);分组操作
selectcount/sum/max/min/avg(列名1),列名2from表名groupby列名(一般是列名2)having条件;分组操作后挑选
连表操作
select*from表1leftjoin表2on表1.列名=表2.列名;左衔接
select*from表1rightjoin表2on表1.列名=表2.列名;右衔接
select*from表1innerjoin表2on表1.列名=表2.列名;内衔接
留意:如果超越3个表联合操作,如果其间两个表操作时已经改变了表结构,应该将这两个表操作的成果作为一个暂时表再与第三个表联合操作。
暂时表
(select*from表名)ase
3.删去,修正,刺进指令
刺进
insertinto表名(列名1,列名2···)values(值1,值2···),(值1,值2···),(值1,值2···);刺进值
insertinto表名1(列名)select列名from表2;在一个表中刺进另一个表中数据
修正
update表名set列名1=value1,列名2=value2where条件1[and/or条件2];
删去
deletefrom表名;铲除表(如果有自增id,id不会重新开始)
deletefrom表名where条件;铲除特定数据
truncatetable表名;铲除表(如果有自增id,id会重新开始)
4.修正表结构
altertable表名auto_increment=value;设置自增键起始值;
altertable表名drop列名;删去列
altertable表名add列名数据类型束缚;增加列
altertable表名change旧列名新列名数据类型;修正字段类型
altertable表名modify列名数据类型;修正数据类型
altertable旧表名rename新表名;修正表名
altertable表名dropprimarykey;删去表中主键
altertable表名add列名数据类型primarykey;添加主键
altertable表名addprimarykey(列名);设置主键
altertable表名addcolumn列名数据类型after列名;在某一列后添加主键
二.mysql进阶
1.外键
外键适用于一对多,1对1,多对多三种情况
一对多
典型事例职工与部分,一个部分对应于多个职工,一个职工对应于一个部分,所以要在职工表中设置部分id列,并设置为外键,与部分表id相关。
1对1
事例博客园用户与博客,不是每个用户都写博客,写博客的用户与拥有的博客地址一一对应,所以在博客用户表user中设置blog_id,设置成外键和仅有索引,与博客表blog中id相关
createtableuser(idintnotnullauto_incrementprimarykey,namechar(10),blog_idint,uniqueuq1(blog_id),constraintfk_user_blogforeignkey(blog_id)referencesblog(id))engine=innodbdefaultcharset=utf8;
多对多
典型事例电脑与用户,一个用户能够运用多台电脑,一台电脑对应多个用户,多对多,此时一般挑选新建一个表contact,在其间设置两个外键,同时相关用户表id与电脑表id
createtablecontact(idintnotnullauto_incrementprimarykey,user_idint,computer_idint,uniqueuq2(user_id,computer_id),constraintfk_userforeignkey(user_id)referencesuser(id),constraintfk_userforeignkey(computer_id)referencescomputer(id))engine=innodbdefaultcharset=utf8;
能够看情况决定要不要把两个外键弄成联合仅有索引。
2.自增
showcreatetable表名[\G];查看表的创立信息
关于自增键,我们能够设置它的初始值以及与自增步长
altertableauto_increment=value;设置自增初始值
关于自增步长有两种类型:
第一种:根据会话等级(只对本次登录有用)
showsessionvariableslike”auto_incre%”;查看步长
setsessionauto_increment_increment=value;改变步长
setsessionauto_increment_offest=value;设置起始值(不常用,由于有之前的alter)
第二种:根据全局等级(对一切会话都有用)
setglobalauto_increment_increment=value;设置全局步长
3.pymysql
pymysql是python第三方模块,主要用于python与mysql交互。
pymysql办法:
connect(host=,user=,passwd=,database=)衔接数据库
cursor()建立游标
execute(sql)执行sql句子
fetchone()从查询成果中取出一条数据
fetchmany(num)从查询成果中取出num条数据
fetchall()从查询成果中取出一切数据
commit()改变(updata,insert,drop)数据库内容专用,executesql句子后必须commit才能真实改变数据库
close()留意最终有两个close,游标要关闭,衔接也要关闭

学了mysql数据库能干嘛

首要技不压身,不管你将来从事什么技能行当,跟数据库都或多或少会产生交集,遇到问题,自己能够处理,比等候他人来处理要快得多。
学习了MySQL最主要目的是能够有才有所长,能够从事相关作业,能够有多个发展方向。比方最直接的便是从事数据库相关作业,能够作为DBA对数据库进行布置、处理、优化等,也能够倾向于数据库开发,对数据库进行规划。假如数据库学得十分精深乃至能够通过对源码的修正完成自己想要的功用,国内外很多MySQL大神都是很通晓MySQL源码的,在源码基础上添加一些中间件来增强数据库,有的都做出自己的分支版本。现在作为开发者大部分也都需求具有数据库相关知识,而MySQL现在又是在开发中运用的人气最热的数据库之一。即便不做技能,做销售的话,在宣扬自己的产品的时分或许也会涉及到数据库相关知识,自己比较通晓的话,在向客户介绍的时分就能很好的像用户说明为什么选用MySQL而不是其他数据库。
当然,假如作为纯爱好也是没问题的,有人喜欢垂钓、有人喜欢玩游戏,咱们喜欢揣摩数据库他人也是管不着的??。
纯手打,期望对你有所协助。
mysql数据库的作用是什么?
在大学的计算机教科书中,数据库是被这样说明的:数据库是计算机运用系统中的一种专门处理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像以及声响等。数据是全部计算机系统所要处理的对象。人们所熟知的一种处理方法是制造文件,行将处理进程编成程序文件,将所涉及的数据按程序要求安排成数据文件,用程序文件来调用。数据文件与程序文件保持着一定的对应联络。在计算机运用迅速发展的情况下,这种文件式方法便显出缺少。比方,它使得数据通用性差,不方便于移植,在不同文件中存储大量重复信息、糟蹋存储空间、更新不方便等。数据库系统便能处理上述问题。数据库系统不从具体的运用程序出发,而是立足于数据本身的处理,它将全部数据保存在数据库中,进行科学的安排,并借助于数据库处理系统,以它为中介,与各种运用程序或运用系统接口,使之能方便地运用数据库中的数据。mysql
这段说明介绍确实十分具体,不过你或许看得头晕眼花了,其实简略地说数据库便是一组经过计算机收拾后的数据,存储在一个或多个文件中,而处理这个数据库的软件就称之为数据库处理系统。一般一个数据库系统(Database
System)可分为数据库(Database)与数据处理系统(Database
Management
System,DBMS)两个部分。
MySQL是用来做什么的?
如下:
1、MySQL是一个联络型数据库处理系统,由瑞典MySQLAB公司开发,现在是归于Oracle旗下产品。MySQL是现下最盛行的联络型数据库处理系统之一,在WEB运用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,联络数据库处理系统)运用软件之一。
2、MySQL是一种联络型数据库处理系统,联络数据库将数据保存在不同的表中,而不是将全部数据放在一个大仓库内,这样就添加了速度并提高了灵活性。
3、MySQL所运用的SQL言语是用于拜访数据库的最常用标准化言语。MySQL软件采用了双授权政策,分为社区版和商业版,因为其体积小、速度快、整体具有成本低,尤其是开放源码这一特征,一般中小型网站的开发都挑选MySQL作为网站数据库。

未经允许不得转载:IT技术网站 » mysql数据库基础知识(学了mysql数据库能干嘛)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载