12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-12-25 09:55:35
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
1.MYSQL的安装以及测试1.1什么是数据库,有什么作用,以及有哪些特点1.1.1Database,DB,是一个数据的仓库;1.1.2用于保存、管理数据1.1.3特点:1.1.3.1一致性、完整性1.1.3.2降低冗余
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
1.MYSQL的安装以及测试1.1什么是数据库,有什么作用,以及有哪些特点1.1.1Database,DB,是一个数据的仓库;1.1.2用于保存、管理数据1.1.3特点:1.1.3.1一致性、完整性1.1.3.2降低冗余(重复)1.1.3.3应用的共享,以及有组织1.1.4数据仓库:偏向于数据分析,是数据挖掘的一种1.2数据库的分类1.2.1关系型数据库(SQL),用“表”来存储1.2.1.1MYSQL1.2.1.2Oracle1.2.1.3SQLServer1.2.1.4SQLite1.2.1.5DB21.2.2非关系型数据库(NoSQL)1.2.2.1MongoDB1.2.2.2Redis1.3DBMS1.3.1databasemanagementsystem1.4mysql-5.5.40-win32.msi的安装1.4.1Next->customsetup->install->Next->configurationenabled->Detail->DeveloperMachine->MultifunctionalDatabase->Path->connectionnumber(DSS/OLAP20)->enabledtcp/ipport=3306,enablestrictmode->mannualselecteddefaultcharacterset/collation(utf-8)->installaswindowsservice->modifysecuritysettings->enabledrootaccessfromremotemachines->Execute1.4.2环境变量的配置1.4.2.1找到系统高级设置的环境变量PATH,添加MYSQL5.5\bin;(绝对路径)1.4.3测试1.4.3.1计算机->管理->服务和应用程序->查看MYSQL(或者在命令窗口输入service.msc)1.4.3.2cmd->以管理员身份运行->netstopmysql->netstartmysql->mysql-uroot-p***1.4.4软件的卸载1.4.4.1控制面板->卸载软件1.4.4.2将安装文件夹删除1.4.4.3C:->programdata->MYSQL文件删除(如果找不到programData,组织->文件夹和搜索->查看->显示隐藏文件、文件夹)1.4.4.4regedit->HKEY_local_machine->system->service->MySQL删除1.4.4.5测试:showdatabases:1.4.4.6查看版本selectversion():1.5SQLyog管理工具1.3.1可手动操作、管理MYSQL数据库的软件工具1.3.2MYSQL|localhostroot***3306连接1.3.3UserManager->编辑用户1.3.4用户名:yunjian注册码:81f43d3dd20872b61.6sql常用代码:DESCtabledemo;--查看表结构;CREATETABLEtabledemo2(stu_uidVARCHAR(255)NOTNULLCOMMENT'学生ID',stu_nameVARCHAR(255)NOTNULLCOMMENT'学生名称',stu_BirthdayDATEDEFAULTNULLCOMMENT'学生生日',PRIMARYKEY(stu_uid))ENGINE=INNODBDEFAULTCHARSET=utf8ROW_Format=COMPACTCOMMENT='学生类';--新建一个tabledemo2的表;必须先build至少一个column;DESCtabledemo2;ALTERTABLEtabledemorenameTOtableNew;--重命名一个表;TRUNCATEtableNew;--清空表数据,保留表结构;DROPTABLEtabledemo2;--删除一个表;INSERTINTOtabledemo(stu_id,stu_name,stu_age,stu_favorite)VALUES('3','lisi',123,'playgames');SELECT*FROMtabledemo;--查看表中详细信息;ALTERtabletabledemoADD(stu_loveVARCHAR(255)NULLCOMMENT'学生配偶');AlterTABLEtabledemoMODIFYstu_loveVARCHAR(512)NULL;--修改列定义;ALTERTABLEtabledemoCHANGEstu_lovestu_hobbyVARCHAR(512)NULL;--修改列名;ALTERTABLEtabledemoDROPstu_hobby;--删除列;INSERTINTOtabledemo(stu_id,stu_name,stu_age,stu_favorite)VALUES('4','jenney',22,'apple');INSERTINTO`tabledemo`VALUES('5','jie',23,'samung');INSERTINTOtabledemo(stu_name)(SELECTstu_snameFROMstudentwherestu_id=4);UPDATEtabledemoSETstu_name='郭靖'wherestu_id='2';DELETEfromtabledemowherestu_name='lisi';--删除where条件的行SELECTstu_name,stu_idfromtabledemo;--多列查询;SELECTDISTINCTstu_idfromtabledemo;--行排重,重复名称只显示一条;SELECTstu_id,stu_namefromtabledemoORDERBYstu_age,stu_idDESC;--多列排序;SELECT*fromtabledemoLIMIT2,3;--分页查询;SELECT*fromtabledemoWHEREstu_idBETWEEN'2'and'3';--WHERE条件查询;SELECT*FROMtabledemoWHEREstu_idin(1,2,3);--wherein语句的查询;==========================================进阶===========================================showDATABASES;usetest1;SELECT*FROMtabledemo;SELECT*FROMtabledemoWHEREstu_nameLIKE'%e';--%表示任意字符出现任意次;SELECTstu_favoriteFROMtabledemoWHEREstu_nameLIKE'%i_';--_表示匹配任意单个字符;SELECTs.stu_name姓名FROMtabledemoassWHEREs.stu_id='2';--as给表或字段设置别名,as可以缺省;SELECTCONCAT(stu_id,stu_name)FROMtabledemo;--用CONCAT将stu_id和stu_name合并到一起;SELECTSUM(stu_age)FROMtabledemo;--求tableDemo表中stu_age的和;SELECTCOUNT(stu_age)FROMtabledemoWHEREstu_id=2;--COUNT(expr)用于对stu_age进行计数;SELECTAVG(stu_age)FROMtabledemo;--取平均值,最大值,最小值;ALTERtabletabledemoADD(stu_commentVARCHAR(255)NOTNULL);SELECTIFNULL(stu_age,0)FROMtabledemo;CREATEtabletabletoday(tabletoday_idINTnotnullPRIMARYKEYauto_increment,tabletoday_nameVARCHAR(15)UNIQUENOTNULL,tabletoday_teacherVARCHAR(15)NOTNULLDEFAULT'dabai')ENGINE=INNODBDEFAULTCHARSET=UTF8ROW_FORMAT=COMPACTCOMMENT='跟天';DROPTABLEtabletoday1;SELECT*FROMtableDemo;SELECTstu_idFROMtabledemoGROUPBYstu_id;--groupby分组,其中相同的取第一个匹配的,其余的不管;SELECTstu_id,COUNT(stu_name)FROMtabledemowherestu_age>20GROUPBYstu_id;--通过stu_id分组,并且查询std_id和count;SELECTstu_class班级ID,COUNT(stu_class)班级人数FROMtabledemoGROUPBYstu_classHAVINGCOUNT(stu_class)>2;--分组的情况下,使用having对人数的判断条件,where此时不奏效;SELECTstu_id,stu_name,stu_age,stu_classFROMtabledemoUNIONallSELECTtabletoday_id,tabletoday_name,tabletoday_teacher,tabletoday_classFROMtabletoday;--union代表联合两个表并去重,加上all后,保留所有结果SELECT*fromtabledemo,tabletoday;//隐式的交叉连接,得到的是笛卡尔积SELECT*fromtabledemocrossJOINtabletodaywherestu_class=tabletoday_class;--用班级号相等这个条件将两个表联系起来,避免重复的数据SELECT*FROMtabledemot1INNERJOINtabletodayt2ont1.stu_class=t2.tabletoday_class;SELECT*FROMtabledemot1LEFTOUTERJOINtabletodayt2ont1.stu_class=t2.tabletoday_class;SELECT*FROMtabledemot1RIGHTOUTERJOINtabletodayt2ont1.stu_class=t2.tabletoday_class;SELECT*FROMtabledemot1LEFTOUTERJOINtabletodayt2ont1.stu_class=t2.tabletoday_classUnionSELECT*FROMtabledemot1RIGHTOUTERJOINtabletodayt2ont1.stu_class=t2.tabletoday_class;-----------------------------------------------------------------------------------------SELECT*fromtablenew;SELECT*fromtableold;--创建视图--CREATEVIEWtable_viewASSELECTid,table_name,table_other,table_id,COUNT(*)asCountNumFROMtablenewnGROUPBYtable_id;--调用视图--SELECTtable_idFROMtable_viewWHERECountNum>1;--查看引擎--showengines;--查看MYSQL当前默认的引擎--showvariableslike'%storage_engine%';--查看某个表当前用的引擎--showCREATETABLEtablenew;--事务的四大属性:ACID(Atomicity,Consistency,IsolationandDurability)----MyISAM不支持事务,InnoDB支持事务;--设置提交状态SETAUTOCOMMIT=FALSE;ORSETautocommit=0;AUTOCOMMIT=TRUE;--关闭提交状态--显示执行--startTRANSACTIONBEGIN--提交一个事务COMMITDLL(自动提交)--回滚ROLLBACK用户回话正常结束异常终止--设置和查看事物级别SELECT@@tx_isolation;--查看当前回话隔离级别SELECT@@global.tx_isolation;--查看系统当前隔离级别--事物隔离级别名字:READUNCOMMITTED读未提交,READCOMMITTED读已提交,REPEATABLEREAD可重复读,SERIALIZABLE可串行化--脏读(A事务读到B事务尚未提交的修改(update,delete和insert))->不可重复读(同一事务两次读到了不同的数据(select))--->幻读()由于其他事务的插入或删除操作,倒置两次读取不一样SETtransctionISOLATIONLEVEL事务隔离级别名字下一次事务隔离级别SETSESSIONTRANSACTIONISOLATIONLEVEL设置当前回话隔离级别SETGLOBALTRANSACTIONISOLATIONLEVEL设置系统当前隔离级别--------------------------------------------------------------------------------SELECT*fromtablenew;SELECT*fromtableold;--查询一班女生的所有信息SELECTs.*FROM(SELECT*FROMtablenew,tableoldWHEREold_classid=table_id)sWHEREs.table_other='江苏'ANDs.table_id=2;--查询表里面成绩最高分的同学信息--SELECT*FROMtablenewWHEREtable_score=(SELECTMAX(table_score)FROMtablenew);--查询出成绩高于平均分的成绩的同学信息SELECT*fromtablenewWHEREtable_score>(SELECTAVG(table_score)FROMtablenew);--查询班级为一班的男生同学的所有信息SELECTs.*FROM(SELECT*FROMtablenew,tableoldWHEREtablenew.table_id=tableold.old_classid)sWHEREs.table_id=1;--创建视图CREATEVIEWtable_view_oneASSELECT*FROMtablenew,tableoldWHEREtablenew.table_id=tableold.old_classid;--使用视图SELECTtable_other,COUNT(table_other)FROMtable_view_oneGROUPBYtable_otherHAVINGCOUNT(*)>1;--创建一个班级分组后的视图CREATEVIEWtable_view_twoASSELECT*FROMtablenew,tableoldWHEREtablenew.table_id=tableold.old_classidGROUPBYtable_id;--查询一个班级人数大于1的班级有哪些SELECTtable_idFROMtable_view_twoWHERE(SELECTCOUNT(table_id)FROMtable_view_two)>1;SELECT*FROMtablenew;SELECT*FROMtableold;--修改表中的值UPDATEtablenewSETtable_score=88WHEREtable_id=7;--修改表中的值UPDATEtablenewSETtable_score=table_score+30WHEREid=2;UPDATEtablenewSETtable_score=table_score+10WHEREid=1;--开启事务SETautocommit=false;//关闭自动提交setautocommit=true;//开启自动提交SELECTtable_scorefromtablenewWHEREtable_score>80;UPDATEtablenewSETtable_score=table_score+10WHEREtable_score<60;STARTTRANSACTION;--开启事务,或者BEGIN;COMMIT;--提交ALTERTABLEtablenewDROPtable_other;INSERTINTOtablenewVALUES('kk','ll');ROLLBACK;--回滚========================================高阶=============================================importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.Properties;/***JDBCdemo**/publicclassJDBCDemo{publicstaticvoidmain(String[]args)throwsException{//注册驱动//DriverManager.registerDriver(newcom.mysql.jdbc.Driver());//加载驱动的方式Class.forName("com.mysql.jdbc.Driver");Propertiesinfo=newProperties();info.setProperty("user","root");info.setProperty("password","gdadmin");//建立连接Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/tablenew",info);//Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/tablenew","root","gdadmin");//Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/tablenew?user=root&password=gdadmin");//获得执行sql语句的对象Statementstmt=conn.createStatement();//执行sql,获得结果集Stringsql="selectstu_id,stu_namefromtablenew";//执行了sql,并且得到了结果集ResultSetrs=stmt.executeQuery(sql);//处理结果集while(rs.next()){System.out.println(rs.getObject(1)+"\t");System.out.println(rs.getObject("table_score")+"\t");}//关闭资源rs.close();//结果集stmt.close();//小货车conn.close();//桥梁}}=========================================================================================第一部分:测试类importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.Scanner;publicclassJDBCTest{publicstaticvoidmain(String[]args)throwsException{Scannersc=newScanner(System.in);System.out.println("请输入登录用户名");Stringname=sc.nextLine();System.out.println("请输入登录密码");Stringpassword=sc.nextLine();Statementst=DButil.getstsm();Stringsql="SELECTtable_scorefromtablenewWHEREtable_score>80;";ResultSetrs=st.executeQuery(sql);if(rs.next()){System.out.println("尊敬的vip,欢迎您的加入!!");}else{System.out.println("游客禁入!!!");}}}第二部分:方法类importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;/***DButil.java**/publicclassDButil{//封装一个静态方法,用来启动连接sql数据库publicstaticStatementgetstsm()throwsException{Class.forName("com.mysql.jdbc.Driver");//加载驱动//获取连接Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test1","root","gdadmin");//返回连接结果表达式returnconn.createStatement();}}
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19