老城网站建设,注册网站不需要手机验证的,做网站什么意思,公司做的局域网网站怎么登陆在操作数据库中的表时#xff0c;需要先使用该数据库#xff1a;
use database;新增
创建表
先用 use 指定一个数据库,然后使用 create 新增一个表 比如建立一个学生表
mysql use goods;
mysql create table student(- name varchar(4),- age int,- …在操作数据库中的表时需要先使用该数据库
use database;新增
创建表
先用 use 指定一个数据库,然后使用 create 新增一个表 比如建立一个学生表
mysql use goods;
mysql create table student(- name varchar(4),- age int,- grade decimal(3,1)- );通过desc 表名来查看表结构 其中的 name、age、grade 就是列MySQL中的列就是我们平时所说的行Field、Type 等就是行其中 Null 中的Yes 表示该列可以为空如果是 NO 则不可为空Default 表示该列的默认值
表中各行所表示的含义如下 插入记录
创建好表之后,使用 insert into 表名 values(列名 列名...) 来插入记录:
mysql insert into student values(张三,20,98.5);这里我们把所有列名都插入了,我们也可以指定插入部分列名,只需在表名后面加上要插入的列名就 ok 了:
mysql insert into student(name,grade) values(李四,90);插入后查看表 可以看到 age 那里是 NULL,它表示这条记录的这一列为空
我们现在是一条一条地插入,其实也可以一次插入多条记录:
mysql insert into student values(王五,25,80),(赵六,24,85);一次插入10个数据比一次插入一个数据,分10次完成的效率高 因为每条 sql 都会涉及到下面的交互过程: 如果分 10 条 sql 进行,那意味着在这个过程中,就会有10次网络交互 数据库服务器收到请求之后,也要进行 10 次对应的处理,比如检查语法、数据校验、把你要插入的数据的位置在硬盘上进行定位… 如果只用 1 次完成,虽然单次消耗的时间会更长,但是网络开销、服务器检查的开销都是一份的,这个做法会更高效一些
查询
查询方式
可以通过 select * from 表名 查询到表中所有数据,比如上面就是通过这条语句来查看数据的 也可以使用select 列名,列名 from 表名来查看指定列的信息
注意:在公司的生产环境服务器上,不要随便敲select* !!!因为数据量很大的话,这个操作会产生大量的硬盘IO和网络IO,可能把硬盘或网卡的带宽给吃满了 而一旦带宽吃满,此时服务器就无法正常响应其他客户端的请求(在其他客户端的视野中,就会认为MySQL服务器是挂了)
除了上面两种查询方式,我们还可以使用表达式查询 就是在查询过程中,指定表达式,把查询出来的每一行,都代入到表达式中进行运算
比如下面的grade-10就是一个表达式 进行表达式查询时,并没有修改硬盘中存储的数据,只是在查询结果的基础上进行运算,得到一份临时表,也就是说 select 进行的任何操作都不会修改数据本体 此时查询出来的临时表,为了保证数据的正确性,每个列的类型不再受限于原始表 比如给所有学生的成绩加10 虽然 grade 限定位数为 3 ,但是为了使数据不会出错,所以临时表不会限制位数
查询操作结束后,临时表中的数据就会消散了 到这里我们介绍了三种查询方式 ①查询所有数据 ②查询指定列数据 ③表达式查询 还有四种查询方式 ④查询时带上别名
select 表达式 as 别名 from 表名;比如现在有一个学生成绩表有语文、数学、英语三个科目我想查询某个学生成绩的总和可以这样 查询结果的列就只有 sum而不是 chinesemathenglish这样可以使查询结果更简洁 ⑤查询时进行去重
select distinct 列名 from 表名根据查询出的列名进行去重把列的值相同的记录合并为一个 比如现在有如下的表 现在只查询一个列那如果同时查询多个列并进行去重呢 从上图我们可以得出查询多个列时只有两个记录多个列的值都相同才算是重复 ⑥查询时进行排序
select 列名 from 表名 order by 列名 注意前面用desc 表名来查看表结构而这里是将desc放在后面排降序
order by 也可以指定多个列进行排序指定多个列时带有优先级前面的列优先级高后面的低。优先级高的列的值相同时才会去比较优先级低的列 举个例子 ⑦条件查询 就是查询时指定筛选条件只有满足条件的数据才会保留作为结果集如果不满足那么这个数据会被跳过
比较运算符
运算符说明, , , 大于大于等于小于小于等于等于等于!, 不等于BETWEEN a0 AND a1范围匹配[a0, a1]如果 a0 value a1返回 TRUE(1)IN(option…)如果是 option 中的任意一个返回 TRUE(1)IS NULL是NULLIS NOT NULL不是NULLLIKE模糊匹配。% 表示任意多个包括 0 个任意字符_ 表示任意一个字符
我们重点来讲两个“等于” 对于 NULL NULL 它的结果是 false 而如果是 NULL NULL结果则为 true
NULL表示某个单元格没填对于 它认为等号左右的 NULL 指的不是同一个单元格没有可比性所以二者不相等而对于 它只看内容既然二者都没有内容那就都一样
要使用条件查询需要搭配关键字where
逻辑运算符
运算符说明AND多个条件必须都为 TRUE(1)结果才是 TRUE(1)OR任意一个条件为 TRUE(1), 结果为 TRUE(1)NOT条件为 TRUE(1)结果为 FALSE(0)
注意
WHERE条件可以使用表达式但不能使用别名AND的优先级高于OR在同时使用时需要使用小括号()包裹优先执行的部分