目录
一.DDL(对表的操作)
-- 插入100万数据.
DELIMITER $$
– 写函数之前必须要写,标志
CREATE FUNCTION mock_data ()
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 1000000;
DECLARE i INT DEFAULT 0;
WHILE i<num DO
INSERT INTO app_user
(name
,eamil
,phone
,gender
)VALUES(CONCAT(‘用户’,i),‘19224305@qq.com’,‘123456789’,FLOOR(RAND()*2));
SET i=i+1;
END WHILE;
RETURN i;
END;
SELECT mock_data()
创建一个表:
create table if not exists teacher1
(id
Int(4) not null auto_increment comment ‘编号’, 列名+类型和约束+默认填充+注释name
varchar(30) not null default '匿名’comment ‘姓名’,pwd
varCHAR(20) NOT NULL DEFAULT '123456’COMMENT ‘密码’,sex
varCHAR(2) NOT NULL DEFAULT '女’COMMENT ‘性别’,address
varCHAR(100) DEFAULT null COMMENT ‘家庭住址’,
primary key(id
)
)engine=innodb default charset=utf8
对表进行操作关键词:ALTER TABLE
改变表名:
alter table teacher1 rename as teacher
增加表的字段:
alter table teacher add age int(11)
字段改变:
/change 和 modify区别:change字段重命名,modify改变字段类型和约束/
ALTER TABLE teacher CHANGE age age1 INT(1)
ALTER TABLE teacher MODIFY age1 VARCHAR(11)
删除表中字段:
ALTER TABLE teacher DROP age1
删表:
DROP TABLE students
二.DML(操作数据)
1.增
INSERT INTO 表名
(字段1
,字段2
,字段3
.....) VALUES('123456'),('123456789').....
2.改
UPDATE 表名
SET 字段
=' x ',字段
='y',... WHERE[条件](表名= )
3.删 delect和truncate
DELETE FROM 表名
WHERE NAME=
TRUNCATE TABLE 表名
相同点:
都可以删除表的内容,但并不会删除表结构
不同点:
TRUNCATE 重新设置自增列,计数器归零
TRUNCATE 不会影响事务
三.DQL (查)
1.查询表内所有信息
SELECT * FROM grade
查询所需字段信息并重命名表头
SELECT name
AS 名字 ,name
AS 名字 FROM grade
修改数据后再展示
SELECT name
+1 AS 修改后 FROM grade
查询信息后添加备注
SELECT CONCAT('所需添加的信息',name
)name
AS 名字 FROM grade
2.去重复
SELECT DISTINCT name
FROM grade
3.模糊查询
WHERE+
IS NULL/IS NOT NULL 是否为空
a BETWEEN b and c a在b和c之间
a like b 若a与b匹配,则结果为真
a in(b,c,d) a在b,c,d之间
4.连表查询
(1)INNER JOIN
SELECT s.name,g.name,g.id //查询表的字段 FROM student s //令表名为代号 INNER JOIN grade g WHERE s.name='石头' //条件,可加可不加
(2)LEFT JOIN
SELECT g.name,g.id,s.name FROM student AS s LEFT JOIN grade AS g //会从左表中返回全部的值 ON s.name='石头' //不能省略
(3) RIGTH JOIN
SELECT g.name,g.id,s.name FROM student AS s RIGHT JOIN grade AS g //只会返回符合条件的值 ON s.name
='石头'
5.排序
ORDER BY 字段
DESC 降序
ORDER BY 字段
ASC 升序
6.LIMIT 分页
查询语句+
limit 起始下标,结束下标
7.聚合函数
将一列数据看做查找对象,进行操作。
count 统计元素
8.子查询和嵌套查询
SELECT StudentNo,StudentName FROM student WHERE StudentNo IN(
SELECT StudentNo FROM result WHERE StudentResult>80 AND SbujectNo =(
SELECT StudentNo FROM subject WHERE SubjectName='高等数学'
)
)有里到外,层层执行 复杂程度高