SQL--表

DML :增删改表中数据

语法:

添加数据:

     insert into 表名(列1,列2,。。。,列n)values(数据1,数据2,。。。,数据n);

删除数据:

     DELETE FROM student WHERE id=2;如果不加条件则删除整个表的数据

                                                               不推荐使用有多少条就会执行多少条操作

 

     TRUNCATE TABLE student;--删除表再创建一个一样的空表

修改数据:

       UPDATE 表名 SET id=4,NAME='雪'  WHERE age=17;

 

DQL:查询表中的记录

        select *from 表名;查询表

 

语法:

select

           字段列表

SELECT address FROM student2; 查询结果集

 

SELECT DISTINCT address FROM student2;  去除重复结果集

 

求和

 

SELECT NAME,math,english,IFNULL(math,0)+IFNULL(english,0)FROM student2;    如果为null替换为0

 

SELECT NAME,math,english,IFNULL(math,0)+IFNULL(english,0)AS 总分 FROM student2;        起别名总分as可以省略

 

 

SELECT * FROM student2 WHERE age>20 AND age<50;

SELECT * FROM student2 WHERE age BETWEEN 20 AND 50;

查询范围

SELECT * FROM student2 WHERE age=20 OR age=50 OR age=45;
SELECT * FROM student2 WHERE age IN (20,50,45);  

NULL 需要用is  或者 is not 来判断,不能使用其他符号

 

 

 SELECT * FROM student2 WHERE NAME LIKE'马%';  查询姓马的人

SELECT * FROM student2 WHERE NAME LIKE'_化%';查询第二个字有化的人

 

 

排列方式

         SELECT *FROM student2 ORDER BY math ASC;升序排列

         SELECT *FROM student2 ORDER BY math DESC; 降序排列

聚合函数:

 

 

SELECT AVG(math) AS '数学' FROM student2;  计算平均值

分组查询

 SELECT sex,AVG(math) '数学' FROM student2 GROUP BY sex;

 

 

SELECT sex,AVG(math) '数学' FROM student2 WHERE math>80 GROUP BY sex;

 

 where再分组之前限定,having 再分组之后进行限定

where后不可以跟聚合函数的判断,having可以跟聚合函数的判断。

 分页查询:

 

 

SELECT * FROM student2 LIMIT 0,3;
SELECT * FROM student2 LIMIT 3,3;
SELECT * FROM student2 LIMIT 6,3;

 

 

 

约束:

 

 CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL
);

 

ALTER TABLE stu MODIFY NAME VARCHAR(20);删除非空约束


ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL; 创建表后添加非空约束

 

ALTER TABLE stu2 DROP INDEX phone_number;删除唯一约束,不能用modify。

主键约束,非空且唯一

ALTER TABLE stu2 DROP PRIMARY KEY;主键删除

自动增长(一般和主键一起):

 

 

 alter table stu modify id int; 删自动增长

 alter table stu modify id int auto_increment;添加自动增长

 

 外键约束;

 

 

 

 删除外键:

alter table emplyee drop foreign_key emp_dept_fk;

 

创建表后,添加外键

alter table employee add constraint emp_dept_fk foreign key (dep_id) references department(id);

 

级联操作:

无级联时外键操作:

 

 

添加外键时设置级联更新

 

 级联删除,先删除外键再级联删除:

 

posted @ 2021-01-18 23:20  159566  阅读(184)  评论(0编辑  收藏  举报