SQL
memoryqiu
这个作者很懒,什么都没留下…
展开
-
[MySQL习题] 连续出现的数字 Consecutive Numbers
Write a SQL query to find all numbers that appear at least three times consecutively.+----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | ...原创 2018-01-22 17:59:34 · 501 阅读 · 0 评论 -
[MySQL] IFNULL( )
原创链接:http://blog.csdn.net/u013031565/article/details/52080962IFNULL(expr1,expr2)用法 假如expr1不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。 mysql>...转载 2018-03-21 10:26:33 · 295 阅读 · 0 评论 -
[Hive] 建表create table和加载数据load data
1. 执行查询时显示表头信息Hive> set hive.cli.print.header=true;2. 在命令行中显示当前所在的数据库Hive> set hive.cli.print.current.db=true;3. 建表Hive> create table test_1(id int, name string, pid int, pric...原创 2018-05-18 11:39:14 · 2998 阅读 · 0 评论 -
[MySQL] 导入数据load data infile用法整理
有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间。 LOAD DATA INFILE 语句以很高的速度从一个文本文件中读取行到一个表中。文件名必须是一个文字字符串。1 命令load data local infile的设置应当在/etc/...原创 2018-05-18 16:37:33 · 4852 阅读 · 0 评论 -
[Hive] drop database删除数据库
DROP DATABASE IF EXISTS test;删除一个数据库,默认情况下,hive不允许删除含有表的数据库,要先将数据库中的表清空才能drop,否则会报错hive> drop database users;FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTas...原创 2018-05-15 17:07:44 · 5954 阅读 · 1 评论 -
[Hive] 脚本的执行方式
hive脚本的执行方式大致有三种: # 1. hive控制台执行; hive> select * from t1;# 2. hive -e "SQL"执行; hive -e "select * from student where sex = '男'" > /tmp/output.txt# 3. hive -f SQL文件执行;hive -f test.sql...原创 2018-05-15 17:08:56 · 1469 阅读 · 0 评论 -
[MySQL] full join的实现
MySQL full join的实现 因为MySQL不支持FULL JOIN,下面是替代方法 left join + union(可去除重复数据)+ right joinselect * from A left join B on A.id = B.id (where 条件)unionselect * from B left join A on A.id = B.id (wher...原创 2018-05-15 20:03:59 · 253 阅读 · 0 评论 -
[MySQL索引] 添加&删除&查看索引
在表中创建索引,以便更加快速高效地查询数据用户无法看到索引,它们只能被用来加速搜索/查询更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。添加索引&删除索引&查看索引alter table table_name add index index_name(user...原创 2018-05-15 20:13:10 · 131 阅读 · 0 评论 -
[MySQL索引] 索引优化注意事项
设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率。设计MySql索引的时候有一下几点注意:1 创建索引对于查询占主要的应用来说,索引显得尤为重要。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下降。 但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索...原创 2018-05-15 20:16:38 · 226 阅读 · 0 评论 -
[MySQL] 三大范式
第一范式:确保每列的原子性如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.例如:顾客表(姓名、编号、地址、……)其中”地址”列还可以细分为国家、省、市、区等。第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关.如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键,则满足第二范式.例如:订单表(订单编号...原创 2018-05-15 20:21:53 · 464 阅读 · 0 评论 -
[SQL] 建表、查看表信息
建表(1) 创建表create table targer_table as select * from source_table;复制表结构+表数据create table targer_table as select * from source_table where 1=2;只会创建相同的表结构,不会复制表数据。create table tableA like tableB;(创...原创 2018-05-15 20:29:17 · 9856 阅读 · 0 评论 -
[MySQL] 数据类型
MySQL 数据类型 在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。Text 类型: 数据类型 描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。 VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串...原创 2018-05-26 11:05:19 · 174 阅读 · 0 评论 -
[MySQL] PRIMARY KEY 主键
SQL PRIMARY KEY 约束PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。SQL PRIMARY KEY Constraint on CREATE TABLE下面的 SQL 在 “Persons” 表创建时在 “Id_P” 列创建 PRIMARY KEY...原创 2018-05-26 11:15:08 · 8383 阅读 · 0 评论 -
[SQL]删除表、插入数据
删除表Hive>truncate table t1; -- 删除表数据,保留结构Hive>drop table t2; -- 删除表数据和表结构插入数据Hive> insert into table t1 select id,age,name from tmp1;hive> insert overwrite table t2 select ...原创 2018-05-15 21:52:34 · 249 阅读 · 0 评论 -
[SQL] 修改表
1. 增加一列ALTER TABLE table_name ADD column_name datatype ALTER TABLE Persons ADD Birthday date;2. 增加分区列ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (dt=${l_pay_date}) #分区字段使用括号ALTER TAB...原创 2018-05-15 22:01:03 · 177 阅读 · 0 评论 -
[SQL] 日期函数--今天昨天
mysql今天和昨天日期及格式化-- 今天日期+时间select now() ; --返回2018-04-25 17:33:21-- 今天日期select curdate(); --返回2018-04-25-- 今天日期格式化select date_format(curdate(),'%Y-%m-%d'); --返回2018-04-25-- 昨天日期selec...原创 2018-05-16 09:58:33 · 20555 阅读 · 1 评论 -
[MySQL] 查看正在执行的sql语句 show processlist
processlist命令的输出结果显示了有哪些线程在运行可以帮助识别出有问题的查询语句,两种方式使用这个命令。 1. 进入mysql/bin目录下输入mysql admin processlist; 2. 启动mysql,输入show processlist; 如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户...转载 2018-05-16 12:04:40 · 9165 阅读 · 0 评论 -
[MySQL习题] 得分排名 Rank Scores
Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ranking. Note that after a tie, the next ranking number should be the next consecutive integer value. ...原创 2018-01-22 11:37:36 · 484 阅读 · 0 评论 -
[MySQL习题] 交换相邻id的座位 Exchange Seats
Mary is a teacher in a middle school and she has a table seat storing students’ names and their corresponding seat ids.The column id is continuous increment. Mary wants to change seats for the adja...原创 2018-01-20 12:30:43 · 957 阅读 · 0 评论 -
[SQL Server习题] 每组ID薪水前N名
解题思路(1)row_number() over (partition by col_1 order by col_2 desc)按照col_1分组,其中按col_2 降序排列,并生成一个新的字段rowNum; (2)选择rowNum (3)order by id, salary desc,按照id升序,salary降序排列。实现代码#创建表create table St原创 2018-01-25 12:27:15 · 192 阅读 · 0 评论 -
[MySQL习题] 温度上升 Rising Temperature
Given a Weather table, write a SQL query to find all dates’ Ids with higher temperature compared to its previous (yesterday’s) dates.+---------+------------+------------------+| Id(INT) | Date(DA原创 2018-01-21 16:38:55 · 430 阅读 · 0 评论 -
[MySQL习题] 超过5个学生的课程 Classes More Than 5 Students
There is a table courses with columns: student and classPlease list out all classes which have more than or equal to 5 students.For example, the table:+---------+------------+| student | clas原创 2018-01-21 16:58:32 · 495 阅读 · 0 评论 -
[MySQL习题] 删除重复邮箱 Delete Duplicate Emails
Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.+----+------------------+| Id | Email |+----+-----原创 2018-01-21 17:34:49 · 219 阅读 · 0 评论 -
[MySQL习题] 交换男女的薪水Swap Salary
Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update query and no intermediate原创 2018-01-19 22:38:28 · 254 阅读 · 0 评论 -
[MySQL习题] 比经理薪水高的员工 Employees Earning More Than Their Managers
The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id.+----+-------+--------+-----------+| Id | Name | Salary |原创 2018-01-20 13:51:26 · 294 阅读 · 0 评论 -
[MySQL习题] 没有下单的用户 Customers Who Never Order(集合A B的差集)
Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything.Table: Customers.+----+-------+| Id | Name原创 2018-01-20 14:08:54 · 510 阅读 · 0 评论 -
[MySQL习题] 第二高薪水 Second Highest Salary
Write a SQL query to get the second highest salary from the Employee table.+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+For exam原创 2018-01-21 17:49:08 · 305 阅读 · 0 评论 -
[MySQL习题] 每门课程的平均成绩(转置)
有student表,有课程subject和分数score两列,要求转置生成语文chinese,数学math,英语english三列的表。 subject score chinese 78 chinese 85 math 97 english 88 math 72要求输出如下格式 chinese原创 2018-01-23 00:24:38 · 9339 阅读 · 2 评论 -
[MySQL习题] 部门最高薪水 Department Highest Salary
The Employee table holds all employees. Every employee has an Id, a salary, and there is also a column for the department Id.+----+-------+--------+--------------+| Id | Name | Salary | Departme原创 2018-01-22 18:57:35 · 270 阅读 · 0 评论 -
[MySQL习题] 部门最高薪水 Department Top Three Salaries
The Employee table holds all employees. Every employee has an Id, and there is also a column for the department Id.+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+--原创 2018-01-24 21:57:09 · 366 阅读 · 0 评论 -
[MySQL习题] 人流量较大的体育场 Human Traffic of Stadium
X city built a new stadium, each day many people visit it and the stats are saved as these columns: id, date, peoplePlease write a query to display the records which have 3 or more consecutive rows原创 2018-01-25 13:41:59 · 386 阅读 · 0 评论 -
[MySQL习题] Trips and Users
The Trips table holds all taxi trips. Each trip has a unique Id, while Client_Id and Driver_Id are both foreign keys to the Users_Id at the Users table. Status is an ENUM type of (‘completed’, ‘cancel原创 2018-01-25 21:51:29 · 299 阅读 · 0 评论 -
[MySQL习题] 每天学习不同课程的用户量
students表如下,有用户编号uerid,日期dt,课程编号kcid。 uerid dt kcid 123 10-1 1 123 10-1 1 124 10-1 1 124 10-1 2 124 10-2 3 125 10-1 2 125 10-2 2原创 2018-01-23 00:35:29 · 246 阅读 · 0 评论 -
[MySQL习题] 每组ID薪水前N名
取表中每组id的TOP 2 salary#创建表create table Student(id int,salary float,name varchar(255));insert into Student values(1,25,'qiu'),(1,75,'xian'),(2,38,'yin'),(2,26,'xue'),(2,58,'zhang'),(3,56,'yin原创 2018-01-25 11:56:58 · 193 阅读 · 0 评论 -
[MySQL] 选择编号为奇数和评价不无聊的电影 Not Boring Movies
X city opened a new cinema, many people would like to go to this cinema. The cinema also gives out a poster indicating the movies’ ratings and descriptions. Please write a SQL query to output movies原创 2018-01-19 23:05:20 · 319 阅读 · 0 评论 -
[MySQL习题] 查询重复邮箱 Duplicate Emails
Write a SQL query to find all duplicate emails in a table named Person.+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+For e原创 2018-01-20 12:57:14 · 267 阅读 · 0 评论 -
[MySQL习题] 合并两个表格 Combine Two Tables
Table: Person+-------------+---------+| Column Name | Type |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonI原创 2018-01-20 13:09:37 · 1373 阅读 · 0 评论 -
浅谈数据库三大模式:外模式、概念模式和内模式
本文转载自: https://blog.csdn.net/qq_15950325/article/details/526549241、外模式对应数据库的升级、外模式包括(子模式 用户模式) 用来描述用户看到或者使用那部分的数据的逻辑结构,用户根据外模式用户数据操作语句或者程序去操作数据库中的数据,外模式的主要特点用来描述组成用户视图各个记录的组成、相互联系、数据的完整性和安全性、数据项...转载 2018-05-16 13:57:37 · 60248 阅读 · 3 评论