MySQL基础
数据类型
数据类型非常的多,这里就只列出我们常用的一些类型吧:
1、数值类型:(INT 整形 DECIMAL 非整形(浮点型))
2、字符串:
VARCHAR(45) 变长的字符串 最多保存45个字(字:不区分中英文)
CHAR(45) 定长的字符串 (固定容量45)
VARCHAR是有上线的,超过后TEXT
3、二进制类
BLOB (Binary Large OBject)
4、时间和日期
DATE 年月日:(2021-04-01)
TIME 时分秒:(12:12:12)
DATETIME 年月日+时分秒
TIMESTAMP 时间戳
SQL语句:
SQL语句对大小写不敏感,所以大写和小写代表的是一样的,所以建库建表的时候,要注意不要重名。
在MySQL中,–代表注释
注意建库的时候,需要选择utf8mb4,里面包含了中文字符
另外在书写SQL语句的时候,一些条件是可以省略,根据情况决定是否省略。
对数据库操作
--显示
show databases;
--创建
create databases xxx;
--使用(变成默认库)
use xxx;
--删除
drop databases xxx;
对表的操作
--查看
show 表;
--创建
--可以使用comment增加字段说明
create table 表名(
字段1 类型1,
字段2 类型2,
...
);
--删除
drop table 表名;
对MySQL表的增删改查
CRUD:
CRUD即: 增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)的首字母缩写
新增(Create)
单行数据+全列插入
举例:在student表中,插入两个个记录:id,名字,成绩
INSERT INTO student
VALUES (1,'张三',78);
INSERT INTO student
VALUES (2,'李四',46);
多行数据+指定列插入
举例:插入两个记录,id,名字,成绩
INSERT INTO student (id,name,ret) VALUES
(3,'王五',44),
(4,'王企',99);
查询(Retrieve)
指定列查询
在表中查出id,name;
SELECT id,name FROM student;
全列查询
SELECT * FROM student;
查询字段为表达式
表达式不包含字段的时候
select id,name,10 from student;
表达式包含一个字段
select id,name,ret+10 from student;
表达式包含多个字段
select id,name,chinese+math from student;
别名
为查询结果指定别名:
select id,name,chinese + math +english 总分 from student;
去重: DISTINCT
对关键字去重:
例如:
select DISTINCT math from student;
排序 ORDER BY
1、没有order by的查询,顺序是未定义的
2、null数据排序,视为比任何值都小,升序在最上面,降序在最下面,
3、ASC为升序,DESC为降序,默认升序,
4、多个字段排序,排序优先级随书写顺序
条件查询:WHERE
比较运算符:
逻辑运算符:
注意:AND 的优先级 高于 OR 同时使用的时候,注意优先级,可以使用小括号包裹。
select id,name from student WHERE 条件;
分页:LIMIT
从0开始,筛选n条结果:
select id,name from student where 条件 order by LIMIT n;
从s开始,筛选n条结果:
select id,name from student where 条件 order by LIMIT s , n;
从s开始,筛选n条结果:
select id,name from student where 条件 order by LIMIT s OFFSET n;
修改(Update)
举例:将id=1的同学,ret改为100;
update student set ret =100 where id = 1;
将所有人成绩加10
update student set ret =ret+10 ;
删除(Delete)
举例:
delete from student where name = '张三';