MySQL补充
1、mysql限制显示条目数:Limit, offset
图片网址:https://sqlbolt.com/lesson/filtering_sorting_query_results

实例:
SELECT * FROM movies order by id limit 1 offset 2 ;
SELECT * FROM movies order by id limit 2,1 ;
上面两个语句的效果一样,区别:
如果省略offset关键字,那么limit后面的2个参数中,第一个参数起到offset的作用,偏移,第二个参数限制查询显示的条目数。
2、字符串匹配时,最好使用Like。
like模糊匹配,不区分大小写,比较通用。
等于号(=),精准匹配,区分大小写。
区别:如果能保证需要匹配的字符串、大小写等格式完全无误,那么Like和 = 的效果一样,但如果不确定大小写之类的,使用like比较保险。
Like 模糊匹配,不区分大小写
= 精准匹配,区分大小写,如果能保证字符串匹配时完全无误,like 和 =都可以,但如果不确定大小写之类的,使用Like比较保险。
索引
优点:可以大大提高MySQL的检索、查询速度。
缺点:降低更新表的速度,如对表进行Insert、Update和Delete。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
索引类型:
单列索引:即一个索引只包含单个列,一个表可以有多个单列索引。
组合索引:即一个索引包含多个列。
实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
普通索引
创建索引的方式
1、create index indexName on mytable(username(length))
2、修改表结构:alter table tablename add Index indexName(columnName)
3、创建表时指定索引:
Create table mytable(
Id int not null,
Username varchar(16) not null,
Index [indexname] (username(length)) 注释:indexname用中括号,说明创建索引时可以命名,也可以不命名
);
唯一索引
创建方式:
1、Create Unique Index indexName on mytable(username(length))
2、修改表结构:alter table tablename Add Unique Index indexName(columnName)
3、创建表时指定索引:
Create table mytable(
Id int not null,
Username varchar(16) not null,
Unique Index [indexname] (username(length)) 注释:indexname用中括号,说明创建索引时可以命名,也可以不命名
);
说明:唯一索引与普通索引的创建方式相同,只是唯一索引需要在普通索引的基础上加上关键字Unique
b.如果想要为唯一索引命名,Constraint 索引名 Unique (添加索引的列)
alter table persons add constraint uc_personId unique (id, lastname)
这是为多列添加索引
删除索引
1、drop Index indexname on mytable;
2、Alter table tablename drop Index indexname;
显示数据表中相关索引信息:show Index from tablename;
使用Alter命令添加和删除主键
1、添加主键
需要确保添加主键的列不能为空。
Alter table tablename Add Primary key (field_name);
2、删除主键
Alter table tablename Drop Primary key;
使用Alter命令添加全文索引
Alter table tablename Add fulltext indexname(field_name);
该语句指定了索引为Fulltext,用于全文索引。
MySQL临时表
临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。
如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。
使用show tables命令不会显示临时表。
创建临时表
CREATE TEMPORARY TABLE SalesSummary (
product_name VARCHAR(50) NOT NULL,
total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00,
avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00,
total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
删除临时表
默认情况下,当你断开与数据库的连接后,临时表就会自动被销毁。也可以在当前MySQL会话使用drop table命令来手动删除临时表。
Drop table salessummary;
Mysql复制表
MySQL序列
Auto_Increment自增
问题:如何获取最后插入表中的自增列的值
重置序列
如果删除数据表中的记录,需要重新排列。
方式:先删除自增的列,再重新添加auto_increment和主键primary key
mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
-> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, 这里的first是指添加到第一列吗
-> ADD PRIMARY KEY (id);
设置序列的开始值
一般情况下序列开始值为1, auto_increment=100
格式:
Alter table tablename Auto_increment=100;
Mysql重复数据
主键和索引
Insert ignore into
Replace into
过滤重复数据:distinct, group by
删除重复数据2种方式:
1、mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;
注意:这里不是创建临时表,前面没有temporary字段
2、当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
mysql> ALTER IGNORE TABLE person_tbl
-> ADD PRIMARY KEY (last_name, first_name);
Alter ignore table中的ignore是什么
菜鸟教程,SQL,不是MYSQL
http://www.runoob.com/sql/sql-foreignkey.html
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
Mysql中定义主键,必须在表中字段都定义完成后,另外说明主键
晚上:练习外键、主键、UNIQUE
这三者之间的关系 http://www.runoob.com/sql/sql-constraints.html
Default:
创建表时设置default,不需要加set关键字, default getdate()
修改表时设置default,需要添加set关键字
Set default ‘100’
删除default:alter table persons alter city drop default
Check:
对一列进行check约束:check(id>0)
对多列进行check约束:check(id>0 and city=’beijing’)
主键、外键、unique、check、default中可以使用constraint关键字,但在mysql中删除时,不会使用drop constraint这样的语句
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
总结:UNIQUE可以为空,而PRIMARY key不可以为空。
删除主键:drop primary key,后面不加任何东西
删除外键:如果外键有命名,则drop primary key 外键名
创建、更新和删除视图 view
优化/存储过程/授权grant
外键:
只要看到一个外键,就总是能看到与之相关的参照完整性约束。
外键的值必须在主键表中存在对应项,这个规则称为完整性约束。
添加权限
MySQL补充的更多相关文章
- python进阶10 MySQL补充 编码、别名、视图、数据库修改
python进阶10 MySQL补充 编码.别名.视图.数据库修改 一.编码问题 #MySQL级别编码 #修改位置: /etc/mysql/mysql.conf.d/mysqld.cnf def ...
- mysql补充(1)校对集utf8_unicode_ci与utf8_general_ci
创建数据库并设置编码utf-8 多语言(补充1 2) create database mydb default character set utf8 collate utf8_general_ci; ...
- 48、mysql补充
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- 12、mysql补充
本篇导航: 视图 触发器 事务 存储过程 函数 流程控制 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可 ...
- mysql补充(2)常用sql语句
补充:MySQL数据库 详解 常用的Mysql数据库操作语句大全 1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后 ...
- mysql补充(4)数据完整性
数据完整性(Data Integrity)是指数据的精确性(Accuracy) 和可靠性(Reliability).(补充mysql数据完整性和约束) 它是应防止数据库中存在不符合语义规定的数据和防止 ...
- python操作MySQL与MySQL补充
目录 python操作MySQL 基本使用 SQL注入问题 二次确认 视图 触发器 事务 存储过程 函数 流程控制 索引 练习 python操作MySQL python中支持操作MySQL的模块很多, ...
- Mysql补充部分:SQL逻辑查询语句执行顺序
一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...
- <数据库>MySQL补充( 查询)
show create table 表名 \G;(查看创建的属性) alter table 表名 auto_increment=xx;(修改自增起始值) set session auto_increm ...
随机推荐
- nowcoder 合并回文子串
链接:https://www.nowcoder.com/acm/contest/6/C来源:牛客网题目输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变.如"abc&q ...
- BZOJ 3622 已经没有什么好怕的了
扯淡 看到题目想到二项式反演 然后忘了给求阶乘的时候取模,调了一晚上 真令人窒息 思路 二项式反演 首先二项式反演还有另一种形式(不会证) 设\(G_i\)为有至少i个的方案数量,\(F_i\)为恰好 ...
- vs添加webservice
VS2010中添加WebService注意的几个地方 添加web引用和添加服务引用有什么区别? 2.4.1 基础知识——添加服务引用与Web引用的区别 C#之VS2010开发Web Service V ...
- Git 提交的正确姿势:Commit message 编写指南
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit message( ...
- SAP固定资产业务场景及方案
SAP固定资产业务场景及方案 http://mp.weixin.qq.com/s/hYlaNHJMQBTZpyFAmP2h3A 对于FICO应用资深专家或顾问,须业务场景及需求成竹在胸:对于非财务顾问 ...
- 51nod 1351 吃点心(贪心)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1351 题意: 思路: 要么先选low值大的,要么先选high值大的,分两 ...
- 聚类算法——KMEANS算法
聚类概念 无监督问题:我们手里没有标签 聚类:相似的东西分到一组 难点:如何评估,如何调参 基本概念 要得到簇的个数,需要指定K值 质心:均值,即向量各维取平均即可 距离的度量:常用欧几里得距离和余弦 ...
- mail命令
mail命令是命令行的电子邮件发送和接收工具.操作的界面不像elm或pine那么容易使用,但功能非常完整. 语法 mail(选项)(参数) 选项 -b<地址>:指定密件副本的收信人地址: ...
- 项目Alpha冲刺--2/10
项目Alpha冲刺--2/10 1.团队信息 团队名称:基于云的胜利冲锋队 成员信息 队员学号 队员姓名 个人博客地址 备注 221500201 孙文慈 https://www.cnblogs.com ...
- tarjan 缩点(模板)
描述: 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 注:允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次. 思路: ...