前言
本文是关于MySQL数据库的第二弹。
临时表不受原表数据类型的约束!!
SQL语法不区分大小写。
一、列的使用
(一)列的增加
1、全列插入
insert into 表名 values (数据,数据);
也可以同时插入多条数据:
insert into 表名 values (数据,数据),(数据,数据);
2、指定列插入
insert into 表名(列名,列名,...) values (数据,数据,...);
(二)列的查询(重点!!)
1、全列查询
select *from 表名;
2、指定列查询
select 列名,列名 from 表名;
3、表达式查询
表达式查询是进行列与列之间的运算,呈现出来的数据是以临时表的形式出现。
select 列名,列名+10 from 表名;
也可以:
select 列名1,列名2*列名1 from 表名;
4、指定别名查询
select 列名,列名 as 别名 from 表名;
5、去重查询
distinct争对指定列进行去重。
当distinct指定多个列时,要求这些列的值都相同才视作重复。
select distinct 列名 from 表名;
6、查询结果排序
select 列名,列名 from 表名 order by 列名; -- 默认升序
注意事项:
- null在排序时,视为最小值。
- 排序时可以使用别名。
- 对于MySQL,如果一个SQL没有指定order by 列名,此时的查询结果集的数据顺序是不可预期的。
- 可以指定多个列排序,多个列之间用逗号分隔。先按第一列排序,若第一列相同则按第二列排序...以此类推。
-
默认排序是升序排序,使用asc也表示升序排序。
select 列名,列名 from 表名 order by 列名 asc;
-
使用desc表示降序排序(desc -> descend)。
select 列名,列名 from 表名 order by 列名 desc;
7、条件查询
比较运算符
> 大于符号 >= 大于等于符号 < 小于符号 <= 小于等于符号 = 比较相等符号,不可以比较空( null = null 结果还是null =》false <=> 比较等于,可以比较空( null <=> null 结果是true <> 不等于符号 != 不等于符号 between a0 and a1 范围 [a0,a1 ] in(option,....) 如果是option当中任意一个,返回true is null 是否为空 is not null 是否不为空 like 模糊匹配and | 和 |
or | 或者 |
not | 非 |
- where条件可以使用表达式,但不能使用别名
- and优先级高于or
select 列名,列名 as 别名 from 表名 where 条件;
(1) in(option,....)
select 列名,列名 as 别名 from 表名 where 列名 in(数据,数据,...);
(2) like 模糊匹配
- 使用 % 代表任意0个或多个字符。
- 使用 _ 表示任意一个字符。
select 列名,列名 as 别名 from 表名 where 列名 like '邹%';
select 列名,列名 as 别名 from 表名 where 列名 like '邹__';
8、分页查询
limit 声明从哪一条开始查询(从0开始计数),从哪一条查询结束。
select *from 表名 limit m,n;
select *from 表名 limit n offset m;
(三)列的修改
update 表名 set 列名 = 值 where 条件;
update 表名 set 列名 = 值 order by 条件;
update 表名 set 列名 = 值 limit 条件;
(四)列的删除
delete from 表名 where 条件;
二、约束条件
(一)null
可以为空
(二)not null
不可以为空
(三)unique
列的值唯一
插入/修改数据时,会先查询数据是否已经存在。
存在 -> 插入/修改失败;不存在 -> 插入/修改成功 。
(四)primary key
主键(唯一且不为空)
MySQL中,一个表只能有一个主键。
create table 表名(列名 varchar(20) unique,列名 int primary key);
关于主键,MySQL给我们提供了自增主键。
自增主键(auto_increment):MySQL给每个表维护了一个全局变量,每次分配一个主键全局变量就自增,下次分配接着上次的继续分。以最大的数据为标准。
即使某一次主键自增失败,该全局变量也会发生增加。
create table 表名(列名 varchar(20) unique,列名 int primary key auto_increment);
(五)foreign key
外键,用于关联其他表的主键或唯一键
foreign key (列名) references 主表(列名);
(六)default
默认值
create table 表名 (列名 int default 数值);
(七)check
保证列中的值符合指定的条件,但MySQL5中不会报错,忽略效果。了解即可
三、表的设计
表的设计有一对一,一对多,多对多三种形式。
一对一的表,例如银行里面的个人信息是只争对某一个人的。
一对多的表,例如银行的柜姐要对多人服务。
多对多的表,例如高考是一个人要写多张卷子,不同的卷子需要被不同的人作答。
结语
数据库的学习先暂时就到这里啦,大家下次再见!
这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐,谢谢!!!