MySQL关键字!
MySQL关键字!
IGHT JOIN
关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
DISTINCT
用于返回唯一不同的值。SELECT DISTINCT 列名称 FROM 表名称
DELETE
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM tablename 删除表中所有行
TOP
SELECT TOP 2 * FROMPersons 选取头两条记录。
SELECT TOP 50 PERCENT * FROM Persons 选取 50% 的记录。
LIKE
SELECT * FROMPersons WHERE City LIKE 'N%'
+ 通配符
+ % 替代一个或多个字符
+ _ 仅替代一个字符
+ [charlist] 字符列中的任何单一字符
+ [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符
LIMIT
· MySQL的方言
· SELECT * FROM operation WHERE type ='SQLStats' AND name = 'SlowLog' ORDER BY create_time LIMIT 1000, 10;
· 数据库也并不知道第1000000条记录从什么地方开始,即使有索引也需要从头计算一次。在前端数据浏览翻页,或者大数据分批导出等场景下,是可以将上一页的最大值当成参数作为查询条件的。SQL 重新设计如下:
· SELECT * FROM operation WHERE type ='SQLStats' AND name = 'SlowLog' AND create_time > '2017-03-16 14:00:00'ORDER BY create_time limit 10;
SQL查询中in和exists的区别分析
· select * from A where id in (select id fromB);
· select * from A where exists (select 1 fromB where A.id=B.id);
· in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in。
UNION
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。行不重复
UNION ALL
列出所有的值。允许行重复
SELECT INTO
· 从一个表中选取数据,然后把数据插入另一个表中。
· 常用于创建表的备份复件或者用于对记录进行存档。
· 制作 “Persons” 表的备份复件:
SELECT * INTO Persons_backup FROM Persons
· IN 子句可用于向另一个数据库中拷贝表:
SELECT * INTO Persons IN “Backup.mdb” FROM Persons
UNIQUE
每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束,但是可由多个字段组成主键。
ALTER TABLE Persons ADD UNIQUE (Id_P)
foreign
英 [ˈfɒrən]
美 [ˈfɔːrən]
adj.外国的; 涉外的; 外交的; 非典型的; 陌生的
references
英 [ˈrefrənsɪz]
美 [ˈrefrənsɪz]
n.说到(或写到)的事; 提到; 谈及; 涉及; 参考; 查询; 查阅; (帮助或意见的) 征求,征询;
v.查阅; 参考; 给(书等)附参考资料
FOREIGN KEY
外键
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo intNOT NULL,
Id_P int,
PRIMARY KEY(Id_O),
FOREIGN KEY(Id_P) REFERENCESPersons(Id_P)
);
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P);
CHECK
用于限制列中的值的范围。
CREATE TABLE Persons
(
Id_P int NOT NULL,
City varchar(255),
CHECK (Id_P>0)
)
DEFAULT
用于向列中插入默认值。
CREATE TABLE Persons
(
Id_P int NOT NULL,
City varchar(255) DEFAULT 'Sandnes'
)
视图
· CREATE VIEW <视图名> AS <SELECT语句>
· 存储过程
mysql> delimiter $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
mysql> CREATE PROCEDURE delete_matches(INp_playerno INTEGER)
-> BEGIN
-> DELETEFROM MATCHES
-> WHERE playerno = p_playerno;
-> END$$
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter; #将语句的结束符号恢复为分号
· 查询和” 01 “号的同学学习的课程完全相同的其他同学的信息
先找相同的课程,在判断数量是否相同
· desc降序 asc升序 where可以和having一起使用,having的作用域是分组
· sum(case when sc.score>=60 then 1 else 0 end)/count(*) as 及格率,
· 创建数据库时设置默认编码
注意是utf8 而不是utf-8
登录:
mysql 【-h主机名 -P端口号 】-u用户名 -p密码
查看当前库的所有表
show tables;
查看其它库的所有表
show tables from 库名;
查看表结构
desc 表名;
查看服务器的版本
select version();
注释
单行注释:#注释文字
单行注释:– 注释文字
逻辑运算符:
· and(&&):两个条件如果同时成立,结果为true,否则为false
· or(||):两个条件只要有一个成立,结果为true,否则为false
· not(!):如果条件成立,则not后为false,否则为true
注意
· 字符型和日期型的常量值必须用单引号引起来,数值型不需要
· 尽量使用MySQL原生的关键字(and or not <> not)
查询表达式
select 100/1234;
起别名
· as
· 空格
+
· 作用:做加法运算
· select 数值+数值; 直接运算
· select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
· select null+值;结果都为null
concat函数
功能:拼接字符
select concat(字符1,字符2,字符3,...);
ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值
select ifnull(commission_pct,0) from employees;
isnull函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0
如果大家有其他的方法,或者想要知道哪方面的办公技巧,下方评论哦~
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论