wordpress官方网站,用服务器做网站需要购买域名吗,找做网站的公司好,浏览器网页版入口MySQl 中对数据表的增删改查#xff08;基础#xff09; 新增演示插入一条数据插入多条数据 查询全列查询部分列查询查询关于列名的表达式查询时用别名查询去重后的结果查询排序后的结果条件查询比较运算符和逻辑运算符 分页查询 修改删除 黑白图是在命令行里的#xff0c;彩… MySQl 中对数据表的增删改查基础 新增演示插入一条数据插入多条数据 查询全列查询部分列查询查询关于列名的表达式查询时用别名查询去重后的结果查询排序后的结果条件查询比较运算符和逻辑运算符 分页查询 修改删除 黑白图是在命令行里的彩色图是在 navicat 数据库客户端工具里截屏的。
该数据库口音不敏感、大小写不敏感
下面的增删改查均对下面的 数据表进行操作。 注意[ ] 用中括号里括起来的是可省略部分
新增 新增一条数据
语句 insert into 表名 (列名[, 列名 …]) values(值[, 值]);
表名后的列名写多少个那么后面的值就需要有多少个当写了表中的所有列名时可以省略所有的列名。
一次性插入多条数据
语句 insert into 表名 (列名[, 列名 …]) values(值[, 值]) , (值[, 值]), (值[, 值])…;
插入几条数据那么就写多少个括号 演示
插入一条数据 插入全部列 插入表之前的数据 插入一条全部列的数据 如果表名后面没有写列名则代表也是全列插入一条数据。 插入部分列
这里只插入了 id, name, chinese 列的值 所以数学成绩和英语成绩就被 置为了 NULL置为了NULL的原因是表每个属性都会有个默认值当没有给赋值的情况下就会将默认值填进去。 插入多条数据
如果表名后面没有写特定的列名时就代表是全列插入插入多条数据只是在原来一条数据的后面接着写。 查询
全列查询
语法select * from 表名;
星号代表通配符代表是全部列。 不过值得注意的是这种查询极其危险因为一般在实际工作中时数据的级别会非常大那么一次查询全部的数据会直接占满 资源。
部分列查询
语法select 列名[, 列名…] from 表名
想查询那个列那么就写几个列名。 语句当中写的列名的顺序也是表的左右顺序。 //这种查询也蛮危险的没有限制的查询都挺危险的值得注意
查询关于列名的表达式
也可以查询关于列名的表达式语法与查询部分列是一样的只不过可以查询。
比如查询所有成绩之和也就是语文、数学、英语成绩相加。 只要是合法的运算都是可以查询的。
不过这样查询出来会发现列名有点长且不好一眼看出来我们可以给原本的列名换个名字
查询时用别名
语法select 列名 [as] 别名 [, 列名 [as] 别名…] from 表名
也就是在对应的列名后 加上as 再加上设置的别名。
比如刚才的总成绩我们可以这样写
这里的 as 也可以省略并且别名的引号在没有空格时也是可以省略的。
当别名里出现空格的时候就必须用单引号引起来否则就会报错。 查询去重后的结果
语法 select distinct 列名[, 列名…] from 表名
只是在select后面加了一个 distinct 关键字。
只有当查询时写的所有列名的值都相等时才会判定为是重复的数据查询时就不会被显示了。
现在的数据表的数据如下 数学成绩当中有两个 98 所以去重后只会显示一个 98.
当我们加上 id 这个列再查询后此时就不会被认定为重复的数据 查询排序后的结果
语法select 列名[, 列名…] from 表名 order by 列名 [asc | desc] [, 列名 [asc | desc]…]
在之前的查询语句后加了个 order by, asc代表升序(ascend)desc代表降序(descend)也可以不写默认是 asc。
例如查询个数学成绩降序 值得注意的是NULL比任何值都要小 也可以先按数学成绩排序再按英语成绩排序只需要接着再后面写即可。 此时在数学成绩相同时就再按英语成绩降序排序。 在order by 后面的列名也可以使用别名比如将总分 按降序排列 条件查询
在刚才的所有查询中都没有任何的限制一查就是整张表的数据这在实际工作中是十分危险的所以我们需要了解条件查询。
在了解条件查询前需要先了解 SQL中的比较运算符和逻辑运算符。
比较运算符和逻辑运算符
比较运算符
比较运算符说明, , , 大于等于、大于、小于等于、小于与java、cpp中的用法一样判断相等对于NULL不适用判断相等对于NULL适用!, 判断不相等IS NULL是否为空IS NOT NULL是否不为空BETWEEN st AND ed判断是否在 [st, ed]区间内IN(option, …)判断是否是 option 当中的一个LIKE模糊匹配 %代表匹配零个或多个字符_(下划线)代表仅匹配一个字符
逻辑运算符
逻辑运算符说明AND并且有假则假全真则真OR或者有真则真全假则假NOT条件为真则结果为假反之相反
其中 AND 的优先级高于 OR如果实在不确定优先级可以统统使用小括号来强制优先。 是无法判断 NULL的无论 判断NULL是否等于何值时都会返回NULL 当不含有NULL时相等则返回1代表true不相等则返回0代表 false。 当需要判断 NULL时需要使用 符号 条件查询语法
select 列名[, 列名…] from 表名 where 限制条件[, 限制条件][order by…]
where 需要写在表名后 及 order by 的前面如果写了排序。 示例
查询数学成绩高于70分的同学及数学成绩 查询语文成绩比数学成绩高的同学 查询数学成绩为 98 的同学的所有成绩 查询语文成绩在70分到80分之间的 同学 查询语文成绩是 70、75、80的同学 6. 查询名字的第一个字是孙的同学及其成绩
查询名字只有两个字的且姓孙的同学的成绩 注意事项条件当中不能写别名
比如如果我们想查询总分大于200 分的同学那么是不能使用别名的。
这是因为执行关键字的顺序不同
比如我想查询语文成绩大于 70的同学并且升序排列 在这句语句中关键字执行的顺序如图所示
首先利用from 关键字找到目标数据表利用where关键字筛选数据行执行select关键字找到对应数据列最后执行order by 排序
所以这也就是为什么 order by 后面可以使用别名但是 where后面不行因为order by的执行在 select 的后面所以认识别名。
分页查询
分页查询有三种语法 select 列名[, 列名…] from 表名 [… …]limit n从下标 0 开始 查询 n 条数据 select 列名[, 列名…] from 表名 [… …]limit s, n(从下标 s 开始 查询 n 条数据) select 列名[, 列名…] from 表名 [… …]limit n offset s(从下标 s 开始 查询 n 条数据)
这里的[… …]代表 可以加 where 或者 order by 等前面的关键字都是可以组合的。 查询语文成绩前三名的同学 查询数学成绩 5 ~ 10名的成绩 修改 语法 update 表名 set 修改的赋值语句, […] [where…][order by…] [limit…] 示例
修改前 将张飞同学的数学成绩修改成50 将语文成绩倒数前三的同学的语文成绩 加上10分 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分 删除
语法delete from 表名 [where…] [order by…] [limit…]
删除操作一般不会用到也比较危险 示例
将总分最后一名的同学开除 完