—高级软件人才实作培训专家!北京传智播客教育韩忠康—高级软件人才实作培训专家!北京传智播客教育目标如何使用MySQL数据库如何设计数据库—高级软件人才实作培训专家!北京传智播客教育什么是数据库?—高级软件人才实作培训专家!北京传智播客教育?常用的数据库:—高级软件人才实作培训专家!北京传智播客教育关系型数据库实体结构+实体联系—高级软件人才实作培训专家!北京传智播客教育关系型数据(RDBMS)的常用术语数据库表行列记录字段SQL—高级软件人才实作培训专家!北京传智播客教育架构C/SCLIENT/SERVER,客户端/服务器—高级软件人才实作培训专家!北京传智播客教育服务器作为Windows服务管理,服务(services.msc)NetstartMySQLNetstopMySQL直接运行mysqld服务器程序—高级软件人才实作培训专家!北京传智播客教育通过MySQL客户端,操作MySQLMysql(mysql.exe)–hlocalhost–P3306–uroot–pExitquit\q步骤:1,连接,认证。2,客户端发送操作指令到服务器端3,服务器端处理请求指令4,服务器端将处理结果返回给浏览器5,客户端显示得到的结果—高级软件人才实作培训专家!北京传智播客教育结构化查询语言SQL=DDL,DML(DQL+DML),DCL—高级软件人才实作培训专家!北京传智播客教育之数据库操作语言创建数据库Createdatabase[ifnotexists]数据库名[数据库选项]数据库名:可以是任意字符(目录可以创建成功),但特殊的字符需要使用反引号包裹。标识符的大小写区别于操作系统的大小写特征。Ifnotexists表示在数据库不存在时创建。数据库选项中,可以设定数据库字符集(charactersetutf8)和校对集(collateutf8_general_ci)。—高级软件人才实作培训专家!北京传智播客教育之数据库操作语言查询已经存在的数据库:Showdatabases[like‘pattern’]Likepattern指的是显示符合哪些命名规则的。不存在指的是所有的数据库。查询创建数据库的语句:Showcreatedatabasedb_name;—高级软件人才实作培训专家!北京传智播客教育之数据库操作语言删除数据库Dropdatabase[ifexists]db_name;Ifexists表示数据库存在才删除。当删除一个数据库时,同时删除该数据库相关的目录及其目录内容。—高级软件人才实作培训专家!北京传智播客教育之数据库操作语言更新数据库选项信息alterDatabasedb_name更新的表选项(表选项与定义时是一致的)—高级软件人才实作培训专家!北京传智播客教育之表操作创建表:Createtable[ifnotexists]tbl_name(列定义)[表选项]Createtable[ifnotexists]tbl_namelikeold_tbl_name;Createtable[ifnotexists]tbl_nameselect语句;每当创建一个表,会在数据目录创建对应的文件保存表信息。—高级软件人才实作培训专家!北京传智播客教育之表操作列定义:列名类型[是否为空][Default默认值][是否为自动增长][是否为主索引或唯一索引][comment注释][引用定义]类型指的是当前列所保存数据的类型。(简单的int整型,varchar字符串类型,需要指定最大长度)每个列定义使用逗号分隔。—高级软件人才实作培训专家!北京传智播客教育之表操作表选项,常用的表选项表引擎:engine|type=引擎表字符集与校对集charsetset=字符集collate=校对集注释comment=‘注释’—高级软件人才实作培训专家!北京传智播客教育之表操作查询表:查询数据库中存在的数据表Showtables[fromdb_name][like‘pattern’];如果没有数据库名,则采用当前数据库,如果没有like则获得所有表。查询当前表的定义语句:Showcreatetabletbl_name;查看当前表的列结构:Desc|describetbl_name;(showcolumnsfromtbl_name);—高级软件人才实作培训专家!北京传智播客教育之表操作删除表Droptable[ifexists]tbl_name;注意,可以同时删除多个表名,表名之间使用逗号分割。—高级软件人才实作培训专家!北京传智播客教育之表操作更新表重命名,renametabletbl_nametonew_tbl_name;可以同时针对多个表进行重命名,甚至可以跨数据库。更新表结构,altertable。可以提供对表选项和列定义的修改。—高级软件人才实作培训专家!北京传智播客教育之表操作更新表结构——表选项管理与新建表格一致对表选项重新设置。—高级软件人才实作培训专家!北京传智播客教育之表操作更新表结构——列定义管理增加列:Altertabletbl_nameaddcolumn_definition。可以同时增加多个列,使用括号括起来多个列的定义。删除列:altertabletbl_namedropcolumn_name;修改已有列定义:altertabletbl_namechangeold_columnnew_column_definition;或者Altertabletbl_namemodifycolumn_definition。其中change可以重命名列—高级软件人才实作培训专家!北京传智播客教育增加数据:Insertintotbl_name(字段列表)values(值列表);查询数据:Select字段列表fromtbl_name检索条件;删除数据:Deletefromtbl_name删除条件;更新数据:Updatetbl_nameset字段=值列表更新条件—高级软件人才实作培训专家!北京传智播客教育字符集&校对集字符集:是一套字符与字符编码的集合。字符,用于显示的抽象符号。编码,计算机都是二进制存储,因此需要将显示符号转换成二进制数才能存储,每个字符所转换成的二进制数,就是字符编码。常见的字符集&编码:Ascii字符集,GB2312字符集,gbk字符集,latin1字符集,unicode字符集等。—高级软件人才实作培训专家!北京传智播客教育字符集Showcharacterset;可以获得MySQL支持的所有字符集。MySQL可以使用多种字符集保存数据。MySQL,可以针对字段,表,数据库,服务器进行字符集的设置,还可以设定连接字符集(客户端与服务器端交互时)—高级软件人才实作培训专家!北京传智播客教育服务器字符集数据字符集确定:—高级软件人才实作培训专家!北京传智播客教育连接字符集连接字符集由以下三个部分组成:—高级软件人才实作培训专家!北京传智播客教育校对规则指的是,当前字符集内,字符之间的比较关系。—高级软件人才实作培训专家!北京传智播客教育列类型—高级软件人才实作培训专家!北京传智播客教育数值型-整数类型类型字节最小值(有符号/无符号)最大值(有符号/无符号)TINYINT1-128/0127/255SMALLINT2-32768/032767/65535MEDIUMINT3-8388608/08388607/16777215INT/INTEGE4-2147483648/02147483647/4294967295BIGINT8-9223372036854775808/09223372036854775807/18446744073709551615可使用unsigned控制是否有正负可以使用zerofill来进行前导零填充也存在布尔bool类型,但是就是tinyint(1)的别名—高级软件人才实作培训专家!北京传智播客教育数值型-小数类型类型存储空间(字节)最小值(理论)最大值(理论)FLOAT4-3.402823466E+383.402823466E+38DOUBLE8-1.7976931348623157E+3081.7976931348623157E+308DECIMAL变长,大致是每9个数字,采用4个字节存储。整数和分数分开计算M,最大是65D,最大是30默认是10,2-(65个9)(+65个9)可以利用M,D控制数值范围;可以无符号;可以zerofill;可以使用科学计数法—高级软件人才实作培训专家!北京传智播客教育:SS'1000-01-0100:00:00'到'9999-12-3123:59:59'80000-00-0000:00:00TIMESTAMPYYYY-MM-DDHH:MM:SS是‘1970-01-0100:00:00’到2038-01-1903:14:0740000-00-0000:00:00DATEYYYY-MM-DD'1000-01-01'到'9999-12-3130000-00-00TIMEHH:MM:SS-838:59:59'到'838:59:59'300:00:00YEARYYYY1901到215510000—高级软件人才实作培训专家!北京传智播客教育(M),M字符数varchar65535,但需要1-2个保存信息,同时由于记录的限制,因此最大为65532编码不同字符数不同:Gbk=32767Utf8=21845tinyText,text,mediumText,longtextL+n。L为最大长度2^8+1,2^16+2,2^24+3,2^32+4定义时,通常不用指定长度,可以自己计算。enum1、2。枚举选项量(65535)内部存储是整型表示。字段值只能是某一个Set1、2、3、4、8。元素数量:64Binary,varbinary,blobBinary(char),varbinary(varchar),blob(text)做类比二进制数据(字节而非字符)—高级软件人才实作培训专家!北京传智播客教育列类型-如何选择参考原因:—高级软件人才实作培训专家!北京传智播客教育定义列属性列属性,列约束—高级软件人才实作培训专家!北京传智播客教育Null,表示没有值。与任何数据不同。表示什么都没有。Null|notnull可以规定当前列,是否可以为null。Null