今天第四天 学习之路

今天周一,吃过早饭后开始学习。首先开始牛客网的sql练习题。中等的开始练习。加油!!!

各种连接的说明 左 右 内 全 就跟交集并集那种差不多

创建表时的代码语句

CREATE TABLE actor (
    actor_id SMALLINT ( 5 ) NOT NULL COMMENT '主键id',
    first_name VARCHAR ( 45 ) NOT NULL COMMENT '名字',
    last_name VARCHAR ( 45 ) NOT NULL COMMENT '姓氏',
    last_update date NOT NULL COMMENT '日期',
PRIMARY KEY ( actor_id ) 
)

批量插入数据 

# mysql中常用的三种插入数据的语句: 
# insert into表示插入数据,数据库会检查主键,如果出现重复会报错; 
# replace into表示插入替换数据,需求表中有PrimaryKey,
#             或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样; 
# insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");

创建表 

  1. 常规创建
    create table if not exists 目标表
  2. 复制表格
    create 目标表 like 来源表
  3. 将table1的部分拿来创建table2
    create table if not exists actor_name
    (
    first_name varchar(45) not null,
    last_name varchar(45) not null
    )
    select first_name,last_name
    from actor  

自己先不看创建表的语句,优先关注语法的查询。

有意思的一道题,查找字符串中逗号出现的次数。

select id,length(string)-length(replace(string,",","")) from strings;

字符串的函数 ,right,left   可以返回字符串中某位置的字符 ,左就是从左边开始,右就是从右边开始。

使用方法为 left(列名,数字),表示从第几个开始。

聚合函数group_concat(X,Y),其中X是要连接的字段,Y是连接时用的符号,可省略,默认为逗号。
此函数必须与GROUP BY配合使用。此题以dept_no作为分组,将每个分组中不同的emp_no用逗号连接起来(即可省略Y)。
答案:
SELECT dept_no,group_concat(emp_no) employees
FROM dept_emp GROUP BY dept_no

Sql 语句中 IN 和 EXISTS 的区别及应用_jcpp9527的博客-CSDN博客_exists语句

注意where子句常见错误之一:
where子句中不能使用聚合函数,聚合函数可以在select,having,order by之后出现。
where指定分组之前数据行的条件,having子句用来指定分组之后条件。

开始->from子句->where子句->group by子句->having子句->select子句->最终结果

MySQL DATE_FORMAT() 函数 | 菜鸟教程 (runoob.com)

中等难度的题目做完了,感觉偏重于窗口函数以及嵌套的查询。

round(数值,数字) 是数字保留几位小数的函数。

floor 函数的应用 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值