MYSQL学习笔记2

本篇文章延MYSQL学习笔记1继续记录MYSQL的相关知识。

1.between关键字

用来获取两个值之间的数据,可以是日期,数字,或者是文本。

SELECT id FROM student WHERE id BETWEEN 901 and 905;//获取id为901到905之间的数据,包括边界值
SELECT id FROM student WHERE id NOT BETWEEN 901 and 905;//获取id为901到905之外的数据,不包括边界值

2 .Alias别名

为列名或者表名设定一个方便阅读的名字

SELECT id AS st_id FROM student;
SELECT st.id AS st_id FROM student as st;

3 .JOIN关键字

如果需要同时查询多个表并将数据返回到一个结果集中,用WHERE关键字能实现,但用JOIN关键字更方便。

3.1 INNER JOIN 内联,左右表都匹配才返回该行数据。

SELECT * FROM student [INNER] JOIN score ON student.id = score.id;

LEFT JOIN 左表所有数据都会返回到结果集中,如果遇到左右表不匹配的,右表数据用null进行配对.

SELECT * FROM student LEFT JOIN score ON student.id = score.id;

3.3 RIGHT JOIN 右表的所有数据都要返回到结果集中,如果左右表有不匹配的,左表用null进行匹配。

SELECT * FROM student RIGHT JOIN score ON student.id = score.id;

3.4 FULL JOIN 只要其中一个表中存在匹配就返回行。(只有在5.1以上才能使用全联接功能)
SELECT * FROM student FULL JOIN score ON student.id = score.id;
4.UNION关键字
联合,用于合并多个select语句的结果集。

(SELECT name FROM student)
UNION [ALL]

(SELECT grade FROM score);

a)返回的结果集只有name一列,score中的grade数据被合并到了name列中。
b)两次查询的列数必须一样。
c)如果不加ALL会自动去掉重复的内容
d)ORDER BY 与LIMIT 必须要联合使用才生效,如果不使用它们可以不加括号。
5.NOT NULL约束
NOT NULL约束该字段不能接受null值。

CREATE TABLE student (id int NOT NULL);

6.NUIQUE约束

UNIQUE约束,用来表示这个字段的数据的唯一性。

CREATE TABLE student (id int(10),name varchar(20),UNIQUE(id)); //在建表时使用UNIQUE约束
ALTER TABLE student ADD UNIQUE(id); //追加UNIQUE约束,如果id在表中已经有重复值,则添加失败。
ALTER TABLE student DROP index id;  //删除UNIQUE约束

7.PRIMARY KEY 主键

用于约束唯一标示数据库表中的每条记录,每个表只能有一个主键,且值不能为null。

CREATE TABLE student (id int(10),name varchar(20),PRIMARY KEY (id)); //在建表时创建主键
ALTER TABLE student ADD PRIMARY KEY(id) ;
ALTER TABLE student DROP PRIMARY KEY; //删除主键

8.FOREIGN KEY 外键

用来指向另一个表中的PRIMARY KEY。外键用来预防破坏表之间的连接的动作,也可以防止非法数据的插入因为外键是他指向的那个表的值之一。

CREATE TABLE score (id int(10),grade int(10),FOREIGN KEY (id) REFERENCES student (id)); 
ALTER TABLE score ADD FOREIGN KEY (id) REFERENCES student (id);
ALTER TABLE score DROP FOREIGN KEY score_ibfk_1; //最后外键约束名通过 show create table score;能查看到。

9.CHECK关键字

设定列的值的范围。

CREATE TABLE student (id int(10),name varchar(20),CHECK(id>=0)); //建表时设定

ALTER TABLE student ADD CHECK(id>=0); 

ALTER TABLE score ADD CONSTRAINT 约束名 CHECK(id>=0 and grade>=60); //多列限定

ALTER TABLE student DROP CHECK 约束名;  

 

10.DEFAULT默认值

MYSQL会给列自动添加一个null的默认值,如果自己追加默认值则会覆盖掉之前设定的默认值,如果将默认值去掉过后,将会得到的不是null默认值,而是没有默认值,就是说插入数据的时候必须插入这一列的数据,即使是null也行,但是不插入数据就不行。

CREATE TABLE student (id int(10),name varchar(20) DEFAULT 'abc'); //在建表时添加默认值

ALTER TABLE student ALTER name SET DEFAULT 'abc'; //追加默认值

ALTER TABLE student ALTER name DROP DEFAULT; //删除默认值

 

11.VIEW视图

a)暴露部分数据给外部。
b)视图主要用于读取数据,因为插入数据要受到原来的表的限定。
c)视图实质上并不是一张表,尽管看起来一模一样,但是数据实质上市存在原来的表中的。
d)简化我们某些较为复杂的业务逻辑。

创建视图(修改视图和创建一样):

CREATE VIEW 视图名 AS (查询语句);

删除视图

DROP VIEW 视图名;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值