mysql数据库
文章平均质量分 63
主要是自己的一些学习、使用总结,主要参考自廖雪峰老师的主页内容,不做任何商业用途,仅作学习笔记使用
leslie0727
时不时学习一下......博客有任何遗漏和错误欢迎私信、评论指正。
展开
-
17、文本函数
sql 的文本函数就是对字符串操作的函数,常用如下返回字符串长度2. locate(substr,str)---------->位置从1开始返回子串substr在str中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;返回子串substr在str中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;返回substr子串在str中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;将两个或多个字符串连接起来,形成一个单一的字符串。原创 2023-01-10 11:55:35 · 168 阅读 · 0 评论 -
16、条件函数
在实际应用中,如果确定where 条件的值一定存在,使用者可以使用前者,否则要用后者。在程序中调用sql语句时,如果返回结果是null,是非常容易引发一些意外情况,因此希望在sql中做一些处理,如果查询结果是null ,就转为特定的值,就要用到Mysql中 ifnull 函数。但使用ifnull 语句,如果where 条件中name 值是不存在的,那么仍将返回null。查询students中的name,和gender,如果是M改为男,F改为女。60以下不及格,60到90良好,90以上优秀。原创 2023-01-10 11:53:07 · 160 阅读 · 0 评论 -
15、删除数据
如果WHERE条件没有匹配到任何记录,DELETE语句不会报错,也不会有任何记录被删除。还有一个操作就是:清除表中所有数据,表还在只是没数据了。删除test这个库,删了就没了。如果存在test这个库,就删。删除这个表,删了就没了。原创 2023-01-10 11:46:25 · 180 阅读 · 0 评论 -
14、修改数据
这时,整个表的所有记录都会被更新。所以,在执行UPDATE语句时要非常小心,最好先用SELECT语句来测试WHERE条件是否筛选出了期望的记录集,然后再用UPDATE更新。如果WHERE条件没有匹配到任何记录,UPDATE语句不会报错,也不会有任何记录被更新。在UPDATE语句中,更新字段时可以使用表达式。原创 2023-01-10 11:42:30 · 88 阅读 · 0 评论 -
13、插入数据
【代码】13、插入数据。原创 2023-01-10 11:36:00 · 85 阅读 · 0 评论 -
12、连接查询
连接查询是另一种类型的多表查询。连接查询对多个表进行JOIN运算,简单地说,就是先确定一个主表作为结果集,然后,把其他表的行有选择性地“连接”在主表结果集上。原创 2023-01-10 11:24:44 · 59 阅读 · 0 评论 -
11、多表查询
你可能还注意到了,上述查询的结果集有两列id和两列name,两列id是因为其中一列是students表的id,而另一列是classes表的id,但是在结果集中,不好区分。,使用笛卡尔查询时要非常小心,由于结果集是目标表的行数乘积,对两个各自有100行记录的表进行笛卡尔查询将返回1万条记录,对两个各自有1万行记录的表进行笛卡尔查询将返回1亿条记录。原创 2023-01-10 11:16:47 · 48 阅读 · 0 评论 -
10、聚合函数、分组查询
执行这个查询,COUNT()的结果不再是一个,而是3个,这是因为,GROUP BY子句指定了按class_id分组,因此,执行该SELECT语句时,会把class_id相同的列先分组,再分别计算,因此,得到了3行结果。事实上这里会报错,因为分组查询之后已经有一个结果集,不能用WHERE,需要用HAVING。我们要查出每个班级的平均分,并且平均分大于85的班级是哪些?给某个数向上取整,即1.1为2, 2.9为3。给某个数向下取整,即2.2为2, 2.9为2。计算某一列的平均值,该列必须为数值类型。原创 2023-01-09 16:30:16 · 368 阅读 · 0 评论 -
09、分页查询
把所有学生按照成绩从高到低进行排序,把结果集分页,每页3条记录。要获取第1页的记录,可以使用LIMIT 3 OFFSET 0。通俗解释一下,LIMIT 3 OFFSET 0,表示从第0个数据开始取,然后取3个,结果集的索引是从0开始,这个注意下。OFFSET是可选的,如果只写LIMIT 15,那么相当于LIMIT 15 OFFSET 0。如果原本记录集一共就10条记录,但我们把OFFSET设置为20,查询结果会是一个空的结果集。使用LIMIT OFFSET 分页时,随着N越来越大,查询效率也会越来越低。原创 2023-01-09 16:21:33 · 131 阅读 · 0 评论 -
08、查询排序
如果score列有相同的数据,要进一步排序,可以继续添加列名。我们使用SELECT查询时,查询结果集通常是按照id排序的,也就是根据主键排序。这也是大部分数据库的做法。如果我们要根据其他条件排序怎么办?可以加上ORDER BY子句。原创 2023-01-09 16:15:51 · 41 阅读 · 0 评论 -
07、条件查询
第三种条件是NOT ,表示“不符合该条件”的记录。其中,WHERE关键字后面的score >= 80就是条件。要组合三个或者更多的条件,就需要用小括号()表示如何进行条件运算。SELECT语句可以通过WHERE条件来设定查询条件,查询结果是满足查询条件的记录。%表示任意字符,例如'ab%'将匹配'ab','abc','abcd'例如,要指定条件“分数在80分或以上的学生”,写成WHERE条件就是。,因此,NOT查询不是很常用。使用 is 判断是否为null。使用>=判断大于或相等。使用LIKE判断相似。原创 2023-01-09 16:13:10 · 93 阅读 · 0 评论 -
06、基本查询、投影查询
如果我们只希望返回某些列的数据,而不是所有列的数据,我们可以用SELECT 列1, 列2, 列3 FROM ...,让结果集仅包含指定列。这种操作称为投影查询。结果如下,查询出students表的所有数据,查询的结果是一个二维表。如果将查询出来的结果,每一列起个别名,可以这样。结果如下,将返回每条数据的id和name。原创 2023-01-09 16:03:11 · 501 阅读 · 0 评论 -
05、mysql测试用表
假设我现在有一张表students,id为主键,这是里面的所有数据。然后本地切换到命令行 mysql -u root -p。一路回车直至前缀为mysql>,执行下述语句。现在我们开始新建测试用表。还有一张classes。原创 2023-01-09 16:01:02 · 548 阅读 · 0 评论 -
04、主键、外键、索引
这里的意思是说,当我们在数据库中查询时,如果有相应的索引可用,数据库系统就会自动使用索引来提高查询效率,如果没有索引,查询也能正常执行,只是速度会变慢。反过来,如果记录的列存在大量相同的值,例如gender列,大约一半的记录值是M,另一半是F,因此,对该列创建索引就没有意义。索引的优点是提高了查询效率,缺点是在插入、更新和删除记录时,需要同时修改索引,因此,索引越多,插入、更新和删除记录的速度就越慢。在设计关系数据表的时候,看上去唯一的列,例如身份证号、邮箱地址等,因为他们具有业务含义,因此不宜作为主键。原创 2023-01-09 15:56:15 · 450 阅读 · 1 评论 -
03、关系模型
一个整型字段如果为NULL不表示它的值为0,同样的,一个字符串型字段为NULL也不表示它的值为空串''。反过来,如果我们先在学生表中定位了一行记录,例如ID=1的小明,要确定他的班级,只需要根据他的“班级ID”对应的值201找到班级表中ID=201的记录,即二年级一班。表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段。这样,一个班级总是对应一个教师,班级表和教师表就是“一对一”关系。表的每一行称为记录(Record),记录是一个逻辑意义上的数据。和Excel表有所不同的是,原创 2023-01-09 15:51:49 · 52 阅读 · 0 评论 -
02、安装运行mysql
输入exit退出MySQL命令行。注意,MySQL服务器仍在后台运行。初始登录的时候没有密码,在登录mysql之后,可以设定密码。我们自己学习的话由于没有服务器,可以本地运行。windows、mac选择相应的版本。管理员身份打开cmd到bin目录下。把这个bin目录加入到环境变量。修改密码为123,使用命令。原创 2023-01-09 12:55:48 · 58 阅读 · 0 评论 -
01、关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。什么是SQL?SQL(Structured Query Language)是结构化查询语言的缩写,用来访问和操作数据库系统。原创 2023-01-09 12:48:31 · 269 阅读 · 0 评论 -
mysql常见问题总结(1)
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找人的话,则与在表中搜索所有的行相比,索引有助于更快地获取信息。简而言之,数据库索引是排好序的数据结构,mysql数据库使用B+树来实现的。例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。原创 2022-12-26 15:07:48 · 211 阅读 · 0 评论