您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 韩忠康第二版mysql视频教程笔记含第一天到第五天
第一天简介2013年4月15日星期一10:17数据库系统DataBaseSystem=数据库管理系统(DBMS,DataBaseManagementSystem)+数据库(DataBase)+管理员DBS=DBMS+DB定义:对大量信息进行管理的高效解决方案,按照数据结构来组织、存储和管理数据的库关系型数据库系统建立在关系模型上的数据库系统。mysql先被sun公司所购,sun有被orcal公司所购!关系模型:当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据中时,应该如何处理该实体结构。1,数据结构可以规定,同类数据,结构一致。就是一个二维的表格。2,数据之间的关系可以设置。实体之间的联系。Nosql(Notonlysql):非关系型数据库系统如:mongoDB,MemBase对象型数据库(orm)关系型数据库的典型概念:数据库databse:数据的仓库。表table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式。行&列:行用于记录数据,列用于规定数据格式。记录:行内的数据字段:数据的某个列。SQL:数据库管理系统,用来管理数据的语言。结构化查询语言(SQL,StructuredQueryLanguage)。MySQL数据库(管理+数据)+谁能向数据库系统发出如何管理的命令。MySQL是基于C/S架构的。客户端/服务器Client/SERVER安装2013年4月15日星期一08:57下载最新的相应的mysql版本。安装+配置。选择自定义安装的组件信息:服务器软件目录:数据目录:点击install安装即可:配置:机器类型是否支持事务功能:innodb表空间:连接数量:字符集设定:配置windows管理相关:配置安全选项:最后执行配置即可:配置后,会启动服务。提示,如果出现配置失败,很大的可能性由于存在Mysql服务。不能安装服务成功。典型的可以将已有的卸载,再重新安装即可。使用2013年4月15日星期一mysql.exe(客户端程序)mysqld.exe(服务器程序)11:44mysql的执行目录管理MySQL服务器端程序1,通过windows提供的服务管理完成打开服务:命令行形式管理windows的Mysql服务:Netstart服务名Netstop服务名2,直接使用mysqld来运行服务图例2013年4月15日星期一12:03客户端/服务端交互流程已使用MicrosoftOneNote2010创建一个用于存放所有笔记和信息的位置库操作2013年4月15日星期一10:16TIP:语句要求使用语句结束符;来结束。创建数据库:Createdatabasedb_name[数据库选项];标识符(数据库名)命名规则:大小写取决于当前操作系统。(认为是区分的)见名知意。推荐使用下划线方式。标识符的字符:使用任意字符,数字,符号,甚至是中文。但是一些特殊的组合,例如纯数字组合,特殊符号,包括mysql是内部关键字应该使用标识符限定符来包裹。限定符:反引号(``)。中文可以:但是要求客户端编码在mysql的数据目录,形成一个目录,目录名是数据库名。如果是特殊字符,则使用编码的形式保存目录内,存在一个文件,用于保存数据库的选项信息。Db.opt数据查询查看当前存在的数据库:Showdatabases;注意,并不是只有用户可以创建数据库,mysql内部维护自己数据库。查看数据的创建语句:Showcreatedatabasedb_name;数据库删除:Dropdatabasedb_name;修改数据库信息Alterdatabasedb_name[修改指令]指令:数据库属性的修改。修改名字:简单的可以直接修改目录名(不通用)将数据库内容全部导出,新建一个数据库,将内容导入,删除旧数据库。创建一个新数据库,将旧数据库内的表,都移动(重命名)到新数据库内,删除旧数据库。表操作2013年4月15日星期一10:17确定表的所属数据库数据库是表的容器,表,必须属于某个数据库。可以通过.语法指明数据表所属的数据库库.表database.table如果任何的标识符,出现的特殊字符,需要使用反引号包裹。不同的标识符,分别包裹:进行表操作时,都会指定当前的默认数据库:Usedb_name;只是设定了默认数据库,不会影响操作其他数据库注意:选择了默认的数据库,只会影响默认行为。可以操作任意的数据库。表名前缀为了区分相同逻辑表名的不同应用,给逻辑表名,增加前缀,形成真实表名。TIP:可以使用\G作为语句结束符。查看表结构(描述表结构):Describetbl_name;简写是desctbl_name;数据库对应的目录,显然,数据库内容对应的就应该是目录的内容,文件。Frm内部保存的是表结构删除表:droptable[ifexists]tbl_name;表不存在,不能删除,会报告错误。适用于database:dropdatabaseifexistsdb_name;修改表:修改表名Renametableold_tbl_nametonew_tbl_name;支持同时修改多个表。支持,跨数据库重命名。可以利用跨数据库重命名表,可以为数据库重命名。创建一个新的数据库,旧数据库内的表,都rename到新的数据库内。删除旧的数据库。修改列定义修改表结构,上面的是子命令,上级是,altertabletbl_name[add|drop|change|modify]增加一个新列Add新列的定义删除一个列Drop列名修改一个列的定义Modify列定义重命名一个列Changeold_column新列定义修改表选项Altertabletbl_name新的表选项。数据操作CrudCreate,read(retrieve),update,delete2013年4月15日星期一10:17创建数据(插入数据)获得数据(查询数据)删除数据修改数据获得数据Select字段列表from表名查询条件。字段列表,可以使用*代替,表示所有的字段。查询条件可以省略,表示所有的记录都获得。相当于where1;有条件的:删除数据Deletefrom表名条件。删除需要在逻辑上严格给条件,否则容易造成数据误操作。导致损失。语法上可以没有where可以:如果需要删除所有数据,使用where1;修改数据Update表名set字段=新值,…条件。SQL2013年4月15日星期一14:04结构化查询语言,StructuredQueryLanguage分类:针对的操作对象不同,分成不同的语言:1,数据操作(管理)语言。DML查询,获得数据。DQL管理,增加,删除,修改数据。DML2,数据定义语言(对保存数据的格式进行定义)DDL3,数据库控制语言(针对数据库软件服务进行操作)DCL字符集2013年4月15日星期一17:14字符的集合构成部分:字符的集合,展示字符的编码,保存和处理Mysql支持的常见字符集:通过命令:Showcharacterset;可以看到支持了好多!!字符集决定的是字段的数据,是何种形式保存的如果通过客户端操作服务器,那么客户端与服务器之间进行数据通信,要保证编码一致。可以将互相发送的数据,转换成目标可以接收的编码。通过mysql的配置:Character_set_client客户端发送数据编码Character_set_results客户端接收数据的编码通过指令showvariableslike'character_set_%';设置变量:Set变量名=值Setcharacter_set_client=gbk;告知服务器,客户端发送的数据是gbk编码执行没有返回数据的语句没有问题了。如果需要从服务器返回数据,还需要设置服务器发送给客户端的编码Setcharacter_set_results=gbk;服务器在发送数据时,才能转成客户端认识的编码统一的操作可以用setnamesgbk可以完成。(简单项目通用的做法)其实还有一个有影响:连接层编码。Setcharacter_set_connection=gbk;Setnames可以设置上面的三个。典型的情况,setnames即可。如果情况复杂,需要分开设置。转换的过程Client-connection-[服务器内部编码]-result图例2013年4月15日星期一14:06作业2013年4月15日星期一16:06使用一个rename语句,交换2个表的名字?Createtabletbl1(Tbl1_idint);Createtabletbl2(Tbl2_idint);Renametabletbl1totbl3,tbl2totbl1,tbl3totbl2;交换两个变量的值(php)设计几个表:学生:教室:教师:已使用MicrosoftOneNote2010创建一个用于存放所有笔记和信息的位置第二天整型类型字节最小值(有符号/无符号)最大值(有符号/无符号)TINYINT1-128/0127/255SMALLINT2-32768/032767/65535MEDIUMINT3-8388608/08388607/16777215INT/INTEGE4-2147483648/02147483647/4294967295BIGINT8-9223372036854775808/09223372036854775807/18446744073709551615是否有符号,可在定义时,使用unsigned标识,没有符号,不写就认为有符号。定义显示宽度通过规定数据的显示宽度,达到统一显示的目的类型(M)M表示显示的最小宽度是多少。需要使用前导零填充达到目的。称之为zerofill注意:1,不影响数的范围2,宽度大的不影响,不会截取小数2013年4月16日星期二10:58浮点:小数位数可以变化。float单精度默认精度位数为6为左右double双精度默认为16左右支持,控制数值的范围。Type(M,D)M表示所有的数值位数(不包括小数点,和符号)D,表示允许的小数位数。5,2-999.99999.998,3-99999.99999999.999浮点数支持科学计数法1.234*10^31.234E3定点数:decimal(M,D)M总位数D小数位数。(范围存在)M默认为10,D默认为0;小数也支持zerofill支持无符号unsigned日期时间年月日时分秒Datetime范围是:时间戳Timestamp存储时,整型,但是表示时,日期时间。0-21多亿1970.1.10:0:02038-01-1903:14:07UTC检索列时,+0可以检索时间戳年月日Date支持任意分隔符的日期:但是如果出现歧异,但是不建议使用特殊的分隔符,会导致逻辑不清晰。支持2为年份:70-691970-206970-9919xx0-6920xx年不建议使用。支持0值。表示当前是没有规定:2013-04-0表示4月整个月。(逻辑想法)Time类型表示意义:1,一天中的时间2,表示时间间隔,在表示间隔时,可以使用天来表示。格式:DHH:MM:SSD天Year此时日期的范围,就不是1000-9999而是1901-2155一个字节表示如果做一个php项目,通常,保存时间都是时间戳,是unix时间戳,直接以整型的形式保存在数据库内,不是mysql提供timestamp类型。字符串类型2013年4月16日星期二14:24Char(M)固定长度Varchar(M)可变长度M表示允许的字符串长度。M在varchar中的表示,是允许的最大长度。char内M表示严格限定的长度M表示的是字符数,而不是字节数。但是,总的长度的使用是按照字节计算的。Char(5)Varchar(5)''5个字符1一个字节varchar需要一个字节保存字符串总长度'abc'54'abcdf'56'abcdefg'注意,字段的最大长度,除了类型本身限制之外,记录的总长度也有限制真实的varchar的长度:记录存在总长度65535限制。archar特点,当类型数据超过255个字符时,采用2个字节表示长度。
本文标题:韩忠康第二版mysql视频教程笔记含第一天到第五天
链接地址:https://www.777doc.com/doc-5589660 .html