数据库学习笔记

本文深入解析SQL中的数据类型如double、char、varchar等,详述DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)的关键语法与应用场景,包括创建、查询、更新和删除数据的详细步骤。

SQL常用数据类型

  • double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,最大值为999.99;
  • char:固定长度字符串类型;char(10) 'abc      ’    //空格补全
  • varchar:可变长度字符串类型;varchar(10) ‘abc’  //没有空格
  • blob:二进制类型;
  • date:日期类型,格式为:yyyy-MM-dd;
  • time:时间类型,格式为:hh:mm:ss ;
  • datetime:日期时间类型 yyyy-MM-dd hh:mm:ss;

DDL(数据定义语言)

  • 查看全部数据库 show databases;
  • 创建数据库CREATE database 库名;
  • 打开数据库use 数据库名;
  • 删除数据库 drop database 名;
  • 创建表 CREATE TABLE 表名( 列名1 列的类型 [约束],列名2 列的类型 [约束],....列名N 列的类型 约束); //最后一行没有逗号
  • 查看表DESC 表名;
  • 添加一列ALTER TABLE 表名 ADD 列名 数据类型;
  • 删除表 drop table 名;
  • 修改表字段类型ALTER TABLE 表名 MODIFY 列名 数据类型;
  • 删除一列ALTER TABLE 表名 DROP 字段名;
  • 查看表创建细节show create table 表名;
  • 修改编码方式alter table 表名 character set gbk;
  • 修改列名alter table 表名 change 原始列 新列名(数据类型);
  • 修改表名rename table aaa to bbb;

大小写不区分


DML(数据操作语言)

插入操作
  • 查询表全部数据 SELECT * FROM 表名;(\G切换形式)
  • 插入数据 INSERT INTO 表名(列名,列名2)VALUE(列值,列值2);
  • 批量插入为INSERT INTO 表名(列名,列名2) VALUES(),();
更新操作
  • 更新表内数据UPDATE 表名 SET 列名1=列值1,列名2=列值2...WHERE列名=值 eg:UPDATE student SET age=age+1 where name ='xx';
删除操作
  • 删除表中数据 DELETE FROM 表名 where 列名=值; //表结构还在,可以找回
  • TRUNCATE TABLE 表名;// 删除全部 无法找回,执行速度比delete快

DQL(数据查询语言)

查询操作
  • SELECT * FROM 表 (where and‘’ or ‘’not‘’between‘’in…)
字符控制
  • 去重 SELECT DISTINCT name FROM 表;
  • 将结果进行运算,并生成新的列SELECT *字段1+字段2 FROM 表名;因为null和任何相加都是null,所以这里可以使用isnull(xx,0)也就是SELECT *字段1+IFNULL(字段2,0) FROM表名;
  • 对运算结果起名SELECT *字段1+字段2 AS 起的名 FROM 表名;
排序
  • ORDER BY 列名 放在末尾,排序方式;
  • ORDER BY 列名 DESC降序 默认/ASC升序
聚合函数
  • COUNT() 统计记录书数 select count(*)from student;//非空
  • SUM()某列和
  • AVG()平均值
  • MIN()最小值
  • MAX()最大值
分组查询
  • GROUP BY 分组 SELECT gender FROM employee GROUP BY gender;
  • GROUP_CONCAT()分组 并查看分组内容 SELECT gender ,GROUP_CONCAT('name') FROM employee GROUP BY gender; //注意逗号
  • GROUP BY + HAVING 分组 筛选

划重点

在这里插入图片描述 *默认的int(11)意思是 不满11用0补齐 例:00000000099
而varchar(25)是 最大限制25


*在mysql中,字符串类型和日期类型都要用单引号括起来

*GROUP BY 单独使用意义不大,只列出第一个符合要求的,使用分组时,SELECT后面的字段一般都跟在GROUP BY 后


*where和having区别

  • where分组前过滤,having分组后过滤
  • having后面可以使用统计函数,where不可以

*书写顺序
SELECT—>FROM—>WHERE—>GROUP BY—>HAVING—>ORDER BY—>LIMIT
*执行顺序—>FROM—>WHERE—>GROUP BY—>HAVING—>SELECT—>ORDER BY—>LIMIT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值