sql学习笔记

文章目录

    • 学习笔记(针对MYSQL)
      • SQL数据库操作
      • SQL语句基本类型
      • SQL约束
      • SQL单表查询操作
      • SQL多表操作:
      • SQL返回结果操作:
      • SQL聚合函数

学习笔记(针对MYSQL)

!!! SQL对大小写不敏感

SQL数据库操作

类型 含义 语法
create database 创建数据库 CREATE DATABASE database_name
create table 创建一张表 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, … )
insert into…values 向表中插入一条信息 INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)
delete from 从表中删除一条信息 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
update…set…where 在where的位置,更新内容为set的值 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
drop table 删除表 DROP TABLE 表名称
truncate 清空表中内容 TRUNCATE TABLE 表名称
alter table…add 向表中添加某个属性 ALTER TABLE table_name ADD column_name datatype
alter table…drop 删除某个属性 ALTER TABLE table_name DROP COLUMN column_name

SQL语句基本类型

类型 含义
char(n) 存放固定长度的字符串,用户指定长度为n。如果没有使用n个长度则会在末尾添加空格。
varchar(n) 可变长度的字符串,用户指定最大长度n。
int 整数类型
smallint 小整数类型
numeric(p,d) 定点数,精度由用户指定。这个数有p位数字(包括一个符号位)d位在小数点右边。
real ,double precision 浮点数和双精度浮点数。
float(n) 精度至少位n位的浮点数

SQL约束

类型 含义 用法
primary key 主键 primary key(字段名)
foreign key references 外键 foreign key(字段名) references 外键表
not null 不为空 字段属性 not null
unique 唯一标识 unique(字段名)
check 限制列中的值的范围 check(字段值限制)
DEFAULT 向列中插入默认值 DEFAULT 默认值

SQL单表查询操作

类型 含义 语法
select 要查找表所含有的属性 *代表全部 SELECT 列名称 FROM 表名称||SELECT * FROM 表名称
from 要操作的表
where 判断条件(可使用操作符) SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
and 在where后使用:将判断条件连接起来
or 在where中使用:判断条件多选一
not 在where中使用:not表示判断条件相反
like 在where中使用:搜索列中的指定模式与通配符一起使用,可使用正则表达式 SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
in 在where中使用:规定多个值 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,…)
between 在where中使用between…and…表示一个数在两个数值之间取值 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
not between between的反义词,在两个数之外取值
union/union all 将两个SQL语句做并运算,并且自动去重,添加all表示不去重 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
intersect/intersect all 将两个SQL语句做交运算,并自动去重,添加all表示不去重
except/except all 将两个SQL语句做差运算,并且自动去重,添加all表示不去重
is null 在where中使用is null表示这个值是空值
is not null 在where中使用is not null表示这个值不是空值

SQL多表操作:

类型 含义 语法
A,B 在from后面通过逗号连接多张表,表示将这些表进行笛卡尔积运算
left join 左外连接,以左边为基准进行连接,右边没有的用NULL代替 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
right join 右外连接,以右边为基准进行连接,左边没有的用NULL代替 SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
full join 全然外连接,将两表完全合并,没有的用NULL代替 SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
join/inner join 内连接,只连接两表皆有,其他删除 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
corss join 交叉连接,结果为两表的笛卡尔积
A join B using© 将A和B通过c属性自然连接

SQL返回结果操作:

类型 含义 语法
order_by 根据指定的列对结果集进行排序(默认升序)
limit 限制查询结果条数 SELECT column_name(s) FROM table_name LIMIT number
desc 在排序后使用,表示采用降序
asc 在排序后使用,表示采用升序
distinct 去重 SELECT DISTINCT 列名称 FROM 表名称
all 不去重

SQL聚合函数

类型 含义 语法
avg 平均值 SELECT AVG(column_name) FROM table_name
min,max 最小,大值 SELECT MIN(column_name) FROM table_name
first,last 第一,最后一个个记录的值 SELECT FIRST(column_name) FROM table_name
ucase,lcase 字段的值转换为大写,小写 SELECT UCASE(column_name) FROM table_name
mid 文本字段中提取字符 SELECT MID(column_name,start[,length]) FROM table_name
len 文本字段中值的长度 SELECT LEN(column_name) FROM table_name
round 数值字段舍入为指定的小数位数 SELECT ROUND(column_name,decimals) FROM table_name
now 当前的日期和时间 SELECT NOW() FROM table_name
foemat 字段格式化 SELECT FORMAT(column_name,format) FROM table_name
sum 总和
count 计数 SELECT COUNT(column_name) FROM table_name
group by 将在group by上取值相同的信息分在一个组 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
having 对group by产生的分组进行筛选,可以使用聚和函数 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value

olumn_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value |

你可能感兴趣的:(学习笔记,mysql,sql)