Mysql基本语句

目录

          一.DDL(对表的操作)

二.DML(操作数据)

1.增

2.改

3.删 delect和truncate

三.DQL (查)

1.查询表内所有信息

2.去重复

3.模糊查询

4.连表查询

5.排序

6.LIMIT 分页

7.聚合函数

8.子查询和嵌套查询


一.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 nameAS 名字 ,nameAS 名字 FROM grade

修改数据后再展示

SELECT name+1 AS 修改后 FROM grade

查询信息后添加备注

SELECT CONCAT('所需添加的信息',namenameAS 名字 FROM grade

2.去重复

SELECT DISTINCT nameFROM 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='高等数学'

)

)有里到外,层层执行 复杂程度高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值