精典mysql入门教程生活中的常识:记账.账:就是数据/信息,记账--就是储存数据/信息生活中,账一般记在哪儿呢?比如廉本上,门上,墙上.日历上.问上10/12,老孙头借豆种50斤无论记在哪儿:记录的都是信息,变化的只是信息的载体.随着现代社会数据的急剧增多,我们用更高效的记录信息的方式.来一个班级学生档案姓名,年龄,家乡60个学生,就需要60个纸片,而且这60个纸片,上面字有重复的.姓名/年龄/家乡信息有冗余,想个办法更让信息更有条理.现在这一个班级里,有档案表/成绩表/违纪表/就业登记表,这些表,都是用来管理公益1期班的信息用的.因此,这些表,放在一个档案袋里——档案袋是数据库公益1期有档案袋(库1),公益2期有档案袋(库2)-----交给王大婶子来管理王大婶管理着许多库,我们想要数据时,找王大婶.姓名:张三姓名:李四年龄:22年龄:24家乡:怀柔家乡:密云姓名年龄家乡张三22怀柔李四24密云好处:再多一个学生的话,只需要添加一行数据,姓名/年龄/家乡不用重写了.班级要考试,考试成绩,也要记录起来姓名科目成绩张三语文68李四思想品德23王大婶子-数据库服务器一台服务器下有多个库,一个库下有1到多张表,表有多行多列的数据.作为WEB开发程序员,和表的操作相对多.数据库服务器是不是mysql呢?答:对于数据库存储数据来说,国际上有sql标准.如:列类型,sql语法等是有ISO标准的.很多软件开发商,遵守sql标准,来开发一套软件,用来储存和管理数据.这套软件,就可以称为数据库管理系统.就好比说,看网页可以用firefox,IE,chrome,管理数据呢,可以用mysql,oracle,IBMDB2,sqlite,postgresql这些软件都能够用来管理数据.数据库大体上要遵循Sql标准,但未必100%遵循.答:不是的,各厂商的产品可能对sql标准的执行有微小差异.比如mysql就没有全连接folljoih没有sqlserver中的topN这种用法就好像,html有w3c标准来约束,但各浏览器也有解析不兼容的地方,但是少数.为什么要先用mysql来学习?答:1:mysql和linuxphp,apache,配合紧密,LAMP架构.2:mysql开源,免费.请同学们有时间也可以关注一下postgresql答:postgresql也是一个开源数据库,而且sql标准执行方而,比mysql要严格•Mysql--卖给-sun--oracle,版权开源方而前途未卜.安装Mysql,装哪一个版本?答:对于软件,尤其是开源软件,不要追求最新的版本.往往最新的版本,意味着bug多,新用户往往成了”小白鼠”开源软件的版本,一般会有beta版,stable版.我们尽量选用稳定版.目前,比较稳定的2个版本,mysql5.1,mysql5.5连接数据库:以命令行连接为例:注意:如果在命令提示下,出现如下提示:\anpMnysql5.l\binnysql•nysql-不是内部或外部命令•也不是可运行的程序或批处理文件。则说明:没有配置环境变量,导致系统找不到mysql.exe.解决:1:配置环境变量,指定mysql\bin目录2:每次进入到mysql\bin目录,再运行mysql3:如何连接服务器服务器地址(可用IP,域名):端口(3306)用户名密码Mysql-hlocalhost-uUserName-pPassWd-h如果不写,则默认连localhost澄清一个概念连接成功后,:命令行黑窗口和mysql服务器是什么关系?答:客户端client--〉服务端server的关系.就好像你的浏览器与…163网站的服务器的关系一样.还有没有其他mysql客户端?:§1:;^*,navcat,mysqlfront,phpMyAdmin,SQLyogEnt入门最基本语句当连上服务器后,我们首先而对的是?答:是库,库有1个或多个,因此我们要想对表/行做操作的话,得先选库.查看一下所有的库,怎么办?MysqlShowdatabases;如果看到下而的图标Type#help;^cyvWforhelp.1nysql则说明连接服务器成功了.选库语句:Use库名pvsqlusetest;databasechanged创建一个数据库:createdatabase数据库名[charset字符集][rii;sqlcreatedatabasegylcharsetutf8;[Juerv0K#1rowaffected0.14sec删除一个数据库:dropdatabase数据库名;iysqldropdatabasegyl;丨ueryOK,0rowsaffected0-61sec把数据库改改名?Mysql中,表/歹!J可以改名,database不能改名.phpMyAdmin似乎有这功能?他是建新库,把所有表复制到新库,再删旧库完成的.当选了库之后,我们而对的是表查看库下而的所有表:showtables;先给大家提供一个简单的建表语句,供练习用createtablestu(snumint,snamevarchar(10))enginemyisamcharsetutf8;IIIengine是指表引擎,和性能特点相关,此处先照抄.删除表:droptablestu;rnysqltt给表改个名mysqlrenametablestutonev/stu;Query0K„0rowsaffected0-19secnysqlshowtables;STables_injylSSnewstu1rowinset0.00sec清空表数据:truncate表名nysqltruncatenewstu;QueryOK,0rowsaffectedC0.16secnysqlselect*fronnewstu;Emptyset0.02secTruncate和delete是有区别的,修改表名:在于truncate相当于删表再重建一张同样结构的表,操作后得到一张全新表.而delete是从删除所有的层面来操作的.Trucate相当于把旧的学籍表扔了重画一张,Delete相当于用橡皮把学籍表的数据库擦掉.如果决定全清空的下,truncate速度更快一些.查看表结构答:desctableName;//查看表结构Idtitle12:解决字符集问题:默认建表一般用utf^,而我们在windows下窗口是GBK的,因此,需要声明字符集.Setnamesgbk;发现的1小问题语句打错以后应该退出本语句,再继续打新语句.也可以打\c,退出木语句.如何破解数据库的密码:1:通过任务管理器或者服务管理,关掉mysqld(服务进程)2:通过命令行+特殊参数开启mysqldMysqld—skip-grant-tables3:此时,mysqld服务进程己经打开,并且,不需要权限检查.4:mysql-uroot无密码登陆服务器.5:修改权限表A:usemysql;BrupdateusersetPassword=password'll111’)whereUser=Voof;C:flushprivileges;ExtraDefaultKeyFieldnvsqldescphp3;LLLLLLLLLLuuuuUNNNNNt--------------iJTypeh------NullSvai%char10•charl!varchar20Sint11Sintll♦•VESVESVESVESVESK------nanegenderconsalaryfb2:插入部分列\baidu!'sinaSnysqlselect^fforphp3;namegenderCODsalaryfbuangwuzhengqi红拂NULL女baidusina大唐科技5875590030NULL30010t---------------iJTypeh------NullSvai%char10•charl!varchar20Sint11Sintll♦•VESVESVESVESVESK-----nanegenderconsalaryfb2:插入部分列\baidu!'sinaSnysqlselect^fforphp3;namegenderCODsalaryfbuangwuzhengqi红拂NULL女baidusina大唐科技5875590030NULL30010t---------------iJTypeh-----NullSvai%char10•charl!varchar20Sint11Sintll♦•VESVESVESVESVESK-----nanegenderconsalaryfb2:插入部分列\baidu!'sinaSnysqlgenderCODsalaryfbuangwuzhengqi红拂NULL女baidusina大唐科技5875590030NULL300106:通过任务管理器,或服务管理,关掉mysqld服务进程.7:再次通过服务管理,打开mysql服务.即可用修改后的新密码登陆.增删改查基本语法学习增:insertInsert3问:1:插入哪张表?2:插入哪几列?3:这几列分别插入什么值?InsertintoTableName(列1,列2•…列n)Values(值1,值2,….值n)值与列,按顺序,---对应特殊:insert语句允不允许不写列名答:允许.如果没有声明列明,则默认插入所有列.因此,值应该与全部列,按顺序一一对应.例:建一张工资登记表n«;sqlcreatetablephp3—nanevarchar10„—genderchai%l„—conva»%cha»%20^-salaryint,-fbint-charsetutf8;QueryOK,0rowsaffected0.25sect---------------iJTypeh------NullSvai%char10•charl!varchar20Sint11Sintll♦•VESVESVESVESVESK-----nanegenderconsalaryfb2:插入部分列\baidu!'sinaSnysqlselect^fforphp3;namegenderCODsalaryfbuangwuzhengqi红拂NULL女baidusina大唐科技5875590030NULL300103:插入所有列Piysqlsetnamesgbk;QueryOK,0rowsaffected0.00secnysqlinsertintophp3-namegender^.con,.salary^fb-values-,zhengqi,.,J^,.#sinai,5900,300〉;QueryOK,1rowaffected0.06secPiysqlselect赞fromphp3;Sname!gender!comIsalary!fbwangwuSNULLzhengqi丨男5875:NULL5900:300rowsinset0.02sec注:文中的setnamesgbk;是为了告诉服务器,客户端用的GBK编码,防止乱码4:插入所有的列的简单写法.nvsqlinsertintophp3一namej.con^salary一values-Cwangwdidi^.SS?。;QueryOK^1rowaffected0.08secnysqlselect备fronphp3;11-•11'V■令-\\name■genderScon■salarySfb!|iuangvm!NULL:baidu!5875:NULLS1rowinset0.05sect---------------iJTypeh------NullSvai%char10•charl!varchar20Sint11Sintll♦•VESVESVESV