什么是数据库? 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 什么是数据库管理系统? 数据库管理系统(DataBaseManagementSystem,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。 常见的数据库管理系统MYSQL:开源免费的数据库,小型的数据库。已经被Oracle收购了。MySQL6。x版本也开始收费。Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。DB2:IBM公司的数据库产品,收费的。常应用在银行系统中。SQLServer:MicroSoft公司收费的中型的数据库。C、。net等语言常使用SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。SQLite:嵌入式的小型数据库,应用在手机端。Java相关的数据库:MYSQL,Oracle 这里使用MySQL数据库。MySQL中可以有多个数据库,数据库是真正存储数据的地方。 数据库与数据库管理系统的关系 一、连接MySQL 格式:mysqlh主机地址u用户名p用户密码 1。连接到本机上的MYSQL 首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysqlurootp,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的。这里密码输入即可进入MySQL:G:cdG:mysqllogbin进入目录mysqlbinG:mysqllogbinmysqlurootp键入命令mysqlurootpEnterpassword:输入密码即可WelcometotheMySQLmonitor。Corg。 2。连接到远程主机上的MYSQL 假设远程主机的IP为:110。110。110。110,用户名为root,密码为123456。则键入以下命令:mysqlh110。110。110。110urootp123456,这里不做演示了。 二、修改密码 格式:mysqladminu用户名p旧密码password新密码 1。给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令:mysqladminurootpasswordab12;注:因为开始时root没有密码,所以p旧密码一项就可以省略了。 2。再将root的密码改为20220317。mysqladminurootpab12password20220317; 三、创建数据库createdatabase数据库名;如createdatabasestudentDB; 四、删除数据库dropdatabase数据库名;如dropdatabasestudentDB; 五、选择数据库usestudentDB; 六、数据类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(integer、smallint、decimal和numeric),以及近似数值数据类型(float、real和doubleprecision)。1。数值类型 2。日期和时间类型 3。字符串类型 注意:char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,比如CHAR(30)就可以存储30个字符。 CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。 BINARY和VARBINARY类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。 七、创建数据表createtableIFNOTEXISTSrunoobtbl(runoobidINTunsignedautoincrement,unsigned表示无符号数,即值大于等于0runoobtitleVARCHAR(100)NOTNULL,runoobauthorVARCHAR(40)NOTNULL,submissiondateDATE,PRIMARYKEY(runoobid)完整性约束); 完整性约束包括:notnull、autoincrement、primarykey、foreignkey(外码)referrences参照表(主码)、unique、check()等; 八、删除MySQL数据表droptable表名;如九、插入数据insertinto表名(field1,field2,。。。fieldN)values(value1,value2,。。。valueN); 十、查询数据select〔alldistinct〕目标列1别名〔,目标列2别名。。。。。〕from表名1视图名1〔,表名2视图名2。。。〕as别名〔where条件表达式〕〔groupby列名〕〔having条件表达式〕〔orderby列名〔descasc〕〕;查询语句的一般格式;如:selectallname姓名,sno学号fromstudentwheresex男 1。WHERE子句 我们知道从MySQL表中使用select语句来查询数据。如需有条件地从表中选取数据,可将where子句添加到select语句中,相当于做选择操作。where子句也可以运用于SQL的delete或者update命令。selectfield1,field2,。。。fieldNfromtablename1,tablename2。。。〔wherecondition1〔andor〕condition2。。。。。如:selectfromstudentwheresdept计算机系andsex男andsage20;又如deletefromstudentwheresno23131423;再如updatestudentsetsname张三wheresno23403432; 2。like子句 我们知道在MySQL中使用SQLselect命令来读取数据,同时我们可以在SELECT语句中使用where子句来获取指定的记录。where子句中可以使用等操作符来设定条件,当时有时候我们需要一些模糊的条件查询,例如,查找学生表中学生姓名姓刘的所有学生,这时就需要用SQLlike子句中使用百分号字符来表示任意长度的字符串,字符代表任意单个字符,通过这两个字符可以达到模糊查询的效果。selectfromstudentwheresnamelike刘andsnolike2000;上述语句查询学生表中姓名为刘X开头且学号为2000开头的学生信息; 3。orderby子句排序 我们知道从MySQL表中使用SQLSELECT语句来读取数据。 如果我们需要对读取的数据进行排序,我们就可以使用MySQL的orderby子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。selectfield1,field2,。。。fieldNfromtablename1,tablename2。。。orderbyfield1〔ASCDESC〕,〔field2。。。〕〔ASCDESC〕;如:查询学生并按年龄降序排序,注意系统默认是asc排序 4。groupby子句分组 groupby语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用count,sum,avg等函数。例如:selectclass班级,count()人数 5。join和leftjoin多表查询 我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用MySQL的join在两个或多个表中查询数据。你可以在select,update和delete语句中使用Mysql的join来联合多表查询。leftjoin与join有所不同。MySQLleftjoin会读取左边数据表的全部数据,即便右边表无对应数据selects。sno,s。sname,c。cno,s。scorefromstudents,coursecwheres。snos。join方式相当于等值连接selecta。tutorialid,a。tutorialauthor,b。tutorialcountfromtutorialstblaleftjointcounttblbona。tutorialauthorb。左连接方式,即保留左边悬浮元组十一、更新数据 如果我们需要修改或更新MySQL中的数据,我们可以使用SQLupdate命令来操作。update表名setfield1newvalue1,field2newvalue2。。。〔where子句〕;例如:updatestudentsetsname张三wheresno23403432;十二、删除数据 你可以使用SQL的deletefrom命令来删除MySQL数据表中的记录。deleteFROM表名〔where条件子句〕;例如;deletefromstudentwheresname张三;