MySQL数据库基础部分MySQL数据库常用数据库•SQLServer、Oracle•MySQL、DB2•SyBaseMySQL数据库的安装和配置•数据库和数据库实例使用命令行窗口连接MySQL数据库实例•mysql–u用户名–p密码数据库服务器、数据库和表的关系MySQLDBDB表表表Client所谓数据库服务器,是指在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。数据库服务器、数据库和表的关系如图所示:数据在数据库中的存储方式id=1name=“lisi”age=23User对象idnameage1lisi232wang24User表id=2name=“wang”age=24行(row)列(column)整个表可以看作为一个类表的一行称之为一条记录类的实例表中一列代表具体类实例的数据User对象创建数据库CREATEDATABASE[IFNOTEXISTS]db_name[create_specification[,create_specification]...]create_specification:[DEFAULT]CHARACTERSETcharset_name[DEFAULT]COLLATEcollation_nameCHARACTERSET:指定数据库采用的字符集COLLATE:指定数据库字符集的比较方式(校对规则)练习:•创建一个名称为mydb1的数据库。•创建一个使用utf-8字符集的mydb2数据库。•创建一个使用utf-8字符集,并带校对规则的mydb3数据库。思考如何知道MySQL支持的编码和校对规则?mysqlshowcharacterset;查看、删除数据库显示数据库语句:SHOWDATABASES只是显示数据库的名字显示数据库创建语句:SHOWCREATEDATABASEdb_name数据库删除语句:DROPDATABASE[IFEXISTS]db_name练习:•查看当前数据库服务器中的所有数据库•查看前面创建的mydb2数据库的定义信息•删除前面创建的mydb3数据库修改数据库ALTERDATABASE[IFNOTEXISTS]db_name[alter_specification[,alter_specification]...]alter_specification:[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_name练习查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312;创建表(基本语句)CREATETABLEtable_name(field1datatype,field2datatype,field3datatype)charactersetcharsetnamecollatecollatename;field:指定列名datatype:指定列类型注意:创建表时,要根据需保存的数据创建相应的列,并根据数据的类型定义相应的列类型。例:user对象idintnamestringpasswordstringbirthdaydateIdNamePasswordbirthdayintvarchar(10)varchar(10)date注意:创建表前,要先使用usedb语句使用库。MySQL常用数据类型VARCHAR、BLOB和TEXT类是变长类型。每个类型的存储需求取决于列值的实际长度。分类数据类型说明数值类型BIT(M)bitbit(8)TINYINT[UNSIGNED][ZEROFILL]byteBOOL,BOOLEANbooleanSMALLINT[UNSIGNED][ZEROFILL]shortINT[UNSIGNED][ZEROFILL]intBIGINT[UNSIGNED][ZEROFILL]longFLOAT[(M,D)][UNSIGNED][ZEROFILL]floatDOUBLE[(M,D)][UNSIGNED][ZEROFILL]double位类型。M指定位数,默认值1,范围1-64带符号的范围是-128到127。无符号0到255。使用0或1表示真或假2的16次方2的32次方2的64次方M指定显示长度,d指定小数位数表示比float精度更大的小数文本、二进制类型CHAR(size)char(20)max—255abcVARCHAR(size)varchar(20)65535abcdeStringBLOBLONGBLOB大的二进制数据TEXT(clob)LONGTEXT(longclob)大文本数据固定长度字符串可变长度字符串二进制数据大文本时间日期DATE/DATETIME/TimeStamp日期类型(YYYY-MM-DD)(YYYY-MM-DDHH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间查看表查看表结构•showcreatetable表名显示表的创建结构•desc表名;以表格方式显示字段•showcolumnsfrom表名;•describe表名;面试题int(3)和int的区别?createtablet(tint(3)zerofill);如何快速构建相同表结构?createtablestulikeusers;创建表练习创建一个员工表字段属性Id整形name字符型gender字符型或bit型birthday日期型entry_date日期型job字符型salary小数型resume大文本型修改表使用ALTERTABLE语句追加,修改,或删除列的语法.ALTERTABLEtableADD(columndatatype[DEFAULTexpr][,columndatatype]...);ALTERTABLEtableMODIFY(columndatatype[DEFAULTexpr][,columndatatype]...);ALTERTABLEtableDROP(column);修改表的名称:Renametable表名to新表名修改表的字符集:altertablestudentcharactersetutf8;修改表练习•在上面员工表的基础上增加一个image列。altertableemployeeaddcolumnimageblob;•修改job列,使其长度为60。•删除sex列。•表名改为users。•列名name修改为username数据库语句DataDefinitionStatementsDataManipulationStatementsDataControlStatementsMySQLUtilityStatementsMySQLTransactionalandLockingStatementsDatabaseAdministrationStatements数据操作语句Insert语句(增加数据)Update语句(更新数据)Delete语句(删除数据)Select语句(查找数据)C:createR:readU:updateD:deleteInsert语句INSERTINTOtable[(column[,column...])]VALUES(value[,value...]);使用INSERT语句向表中插入数据。插入的数据应与字段的数据类型相同数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。在values中列出的数据位置必须与被加入的列的排列位置相对应。字符和日期型数据应包含在单引号中。插入空值,不指定或insertintotablevalue(null)//“”Insert语句练习练习:使用insert语句向表中插入三个员工的信息。字段名字段类型id整形name字符串型sex字符或整数类型birthday日期型salary浮点型resume大文本型注意:字符和日期要包含在单引号中。mysql中文乱码mysql有六处使用了字符集,分别为:client、connection、database、results、server、system。•client是客户端使用的字符集。•connection是连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型就按照服务器端默认的字符集设置。•database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。•results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。•server是服务器安装时指定的默认字符集设定。•system是数据库系统使用的字符集设定。查看和修改数据库字符集•showvariableslike'character%';•setcharacter_set_results=gbk;•setcharacter_set_client=gbk;Update语句UPDATEtbl_nameSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_definition]使用update语句修改表中数据。UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。Update语句练习练习:在上面创建的employee表中修改表中的纪录。要求将所有员工薪水修改为5000元。将姓名为’zhangsan’的员工薪水修改为3000元。将姓名为’lisi’的员工薪水修改为4000元,sex改为female。将xiaohong的薪水在原有基础上增加1000元。Delete语句deletefromtbl_name[WHEREwhere_definition]使用delete语句删除表中数据。如果不使用where子句,将删除表中所有数据。Delete语句不能删除某一列的值(可使用update)使用delete语句仅删除记录,不删除表本身。如要删除表,使用droptable语句。删除表中数据也可使用TRUNCATETABLE语句,它和delete有所不同,原理是先删除表再创建新表。Delete语句练习删除表中name为’zhangsan’的记录。删除表中所有记录。使用truncate删除表中记录。truncatetableemployee;备份、恢复数据库表数据ALTERDATABASE[IFNOTEXISTS]db_name[alter_specification[,alter_specification]...]alter_specification:[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_name备份数据库表中的数据mysqldump-u用户名-p数据库名文件名.sql恢复数据库source文件名.sql练习查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312;备份mydb2库中的数据,并恢复Select语句(1)SELECT[DISTINCT]*|{column1,column2.column3..}FROMtable;Select指定查询哪些列的数据。column指定列名。*号代表查询所有列。From指定查询哪张表。DISTINCT可选,指显示结果时,是否剔除重复数据基本select语句Select语句(1)练习:查询表中所有学生的信息。查询表中所有学生的姓名和对应的英语成绩。过滤表中英语成绩的重复数据。Select语句(2)SELECT*|{column1|expression,column2|expre
共134篇文档
格式: ppt
大小: 1.5 MB
时间: 2020-03-19
本文标题:MySQL
链接地址:https://www.777doc.com/doc-4462788 .html