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

心得

今天学习‘mysql ,感觉还可以!

标签

评论

this is is footer