9-23 钟申义 日志
9-23 钟申义 日志
使用MySQL数据库
show databases; 查看数据库名
use 数据库名; 进入数据库
show tables; 查看数据表
desc 表名; 查看表结构
quit; 退出连接
SQL
DDL(定义数据)
create:创建
实例
create database lfsql charset=utf8;
#创建新的数据库,设置数据库的字符编码
create table lfstudent(...);
#创建保存数据的表
drop:删除
实例
drop database if exists lfsql;
#丢弃数据库,如果数据库存在
alter:修改数据库
DML(操作数据)
insert:插入数据
实例
insert into lfstudent values(...);
#向数据表中插入数据
update:更新数据
实例
update lfstudent set sex='...',score='...' where id=1;
#修改数据表
delete:删除数据
实例
delete from lfstudent where id='1';
#删除数据
DQL(查询数据)
select:查询数据
实例
select * from lfstudent;
#查询数据表
DCL(控制用户权限)
grant:授权
revoke:收回权限
列类型
数值型(引号可加可不加)
整型
tinyint:微整型,占1个字节,范围 -128~127
smallint:小整型,占2个字节,范围-32768~32767
int:整型,占4个字节,范围-2147483648~2147483647
bigint:大整型,占8个字节
浮点型
float:单精度浮点型,占4个字节,最多3.4E38,比INT范围大的多,可能产生计算误差
double:双精度浮点型,占8个字节,范围比BIGINT大的多,可能产生计算误差
decimal(M,D):定点小数,不会产生计算误差,M代表总的有效位数,D代表小数点后的有效位数
布尔型
bool:布尔型,只有两个值TRUE/1、FALSE/0,TRUE和FALSE不能加引号,最终存储的值是1和0,会变成TINYINT来存储。常用于存储只有两个状态的值
日期时间型(必须加引号)
date
日期型 2019-12-25
time
时间型 14:32:50
datetime
日期时间型 2019-12-25 14:32:50
字符串类型(必须加引号)
varchar(M)
变长字符串,不会产生空间浪费,操作速度相对慢,M最大值是65535,常用于存储姓名、文章标题、文章的内容…
char(M)
定长字符串,可能产生空间浪费,操作速度相对快,M最大值是255,常用于存储手机号码、身份号码等固定长度的数据
text(M)
大型变长字符串,M最多是2G
列约束
主键约束
primary key auto_increment
唯一约束
unique
非空约束
not null
检查约束
check
默认值约束
default
外键约束
foreign key(列) references 表(主键列)
查询数据
简单查询
查询特定的列
select eid,ename from lfemp;
查询所有的列
select * from lfemp;
合并相同的项
select distinct sex from lfemp;
注意:使用关键字distinct消除查询到的数据中的相同的项
查询时执行计算
select ename,salary*12 from lfemp;
条件查询
select * from lfemp where salary >=5000;
模糊条件查询
select * from lfemp where ename like '%e_';
提示
%表示有0~n个字符
_表示1个字符
分页查询
select * from lfemp limit m,n;
m:表示从数据的第m条开始查询(页码)
n:表示从m条数据开始往后查询的n条数据(页码数据量)
提示
页码=(当前页数-1)*页码数据量
如果只有1个参数,表示查询的数目
聚合查询/分组查询
聚合函数
获取数量
select count(*) from lfemp;
求总和
select sum(salary) from lfemp;
.求平均数
select avg(salary) from lfemp where sex=1;
求最大、最小值
select max(salary) as 最高工资,min(salary) as 最低工资 from lfemp where sex=0;
获取当前数据中的年份数值
select year(birthday) from emp;
获取当前数据中的月份数值
select month(birthday) from emp;
分组查询
group by
近期评论