SQL知识点

笔记

1.group_concat(X,Y)
其中X是要连接的字段,Y是连接时用的符号,可省略,默认为逗号。此函数必须与 GROUP BY 配合使用。

2.substr(X,Y,Z) 或 substr(X,Y)
其中X是要截取的字符串。Y是字符串的起始位置(第一个字符起始位置为1),Z是要截取字符串的长度。

3.UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
更新多列用逗号连接不能用AND 连接

4.ALTER table titles_test rename to titles_2017
改表名
ALTER table titles_test rename column id to id_2017
改列名
ALTER table titles_test add column id1 int
增加列
ALTER table titles_test drop column id
删除列
SQL修改列名,增加列,删除列语句的写法

5.REPLACE INTO titles_test VALUES()UPDATE titles_test SET emp_no = REPLACE(emp_no,10001,10005) WHERE id = 5
替换指定位置的值

6.DELETE FROM 表名 WHERE ..
删除指定值

7.ALTER TABLE 表名 ADD 新列名 类型 not null default '0000-00-00 00:00:00'
给表增加新列
8.

CREATE VIEW actor_name_view (fist_name_v, last_name_v) AS
SELECT first_name, last_name FROM actor

创建视图,新列名为fist_name_v和last_name_v
9.

insert or ignore into actor
values(3,'ED','CHASE','2006-02-15 12:34:33')

插入数据,如果存在则忽略
10.datetime('now','localtime')
获得系统当前时间

11.SQL语句执行顺序

(1)from 
(3)join 
(2)on 
(4)where 
(5)group by (开始使用select中的别名,后面的语句中都可以使用)
(6)avg,sum.... 
(7)having 
(8)select 
(9)distinct 
(10)order by 
(11)limit

12.date_format(date,format)
%k表示显示的是24小时制中的小时
转换日期格式,一般用于按年月分组聚合

cast():转换格式
在这里插入图片描述
在这里插入图片描述
date_sub()函数(subdate函数用法一致)
在这里插入图片描述

例:

SELECT login_time,DATE_FORMAT(login_time,'%Y-%m-%d'),CAST(login_time as date)
FROM login_log

在这里插入图片描述
13.COUNT() 函数遇到NULL返回的是NULL而不是略过,因此可以用IFNULL来返回0值
14.分组聚合返回的列只能为分组的那一列和聚合函数的那一列,不能再添加其他的列在这里插入图片描述
15.同一条SQL语句中,若要用新建列排序,最好用order by 列数而不是用别名在这里插入图片描述
16.使用NOT IN+子查询的时候,SELECT 后面必须返回单个结果,除非使用括号WHERE (a,b) IN SELECT a,b FROM table

参考
查找排除最大、最小salary之后的当前(to_date = ‘9999-01-01’ )员工的平均工资avg_salary。
17.distinct必须在字段的最前面,且后面有几个字段就必须所有字段都相同才会删除重复行。
sql distinct某个字段

建表

CREATE TABLE score(
学号 VARCHAR(255) NOT NULL ,
课程号 VARCHAR(255) NOT NULL ,
成绩 FLOAT(3) NOT NULL,
PRIMARY KEY(学号,课程号));

(1)必须在类型后面加长度,否则会报错。
(2)需要创建联合主键时,必须在最后一行写,而不能在每一行后面加PRIMARY KEY
2.

-- 这里的教师姓名是空值(null)
insert into teacher(教师号,教师姓名) 
values('0003' , null);

-- 这里的教师姓名是空字符串('')
insert into teacher(教师号,教师姓名) 
values('0004' , '');

空值和空字符串不一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值