我总结的常用sql语句
建表:
|
Set sql_mode=’strict_trans_tables’; 存储引擎启用严格模式,非法数据值被拒绝 |
|
Create table t3(id int(4) primary key auto_increment,sname char(4)); 设置id自动增长 |
|
Create table t3(id int(4) primary key auto_increment,sname char(4))auto_increment=100; id从100开始自动增长 |
|
Alter table t3 auto_increment=200; 修改已存在的表,id从200开始 |
|
Set @@auto_increment_increment = 5; 所有自动增长的每次增长5 |
|
Delete from t3; 删除t3表中的内容,id自增会延续之前的数字继续增长 |
|
Truncate t3; 截断表,此时id自增长从1开始 |
|
Create table t3(id int(4) primary key auto_increment,gender char(4) default’匿名’); 性别默认匿名 |
|
Create table t3(id int(4) primary key auto_increment comment ‘t3表的主键’,,gender char(4) default’匿名’ comment ‘性别’) comment=‘用户表’; 表列类型注释 |
|
1、create able 表名(…)engine = myisam 2、create able 表名(…)engine = innodb 为表设置引擎,两种方式 |
|
Create database db character set gbk collate gbk_chinese_ci; 改变字符集类型为gbk,且校验规则为… |
|
Set names gbk; 设置当前客户端的字符集 |
|
Create table 表名(…)charset = utf8; 创建时设置字符集 |
修改数据表:
|
Alter table 旧表名 rename as 新表名; 修改表名 |
|
Alter table 表名 add 字段名 列类型【属性】; 增加字段 |
|
Alter table 表名 modify 字段名 列类型【属性】; 修改字段 |
|
Alter table 表名 change 旧字段名 新字段名 列类型【属性】 修改字段名和内容 |
|
Alter table 表名 drop 字段名; 删除字段 |
|
Alter table 表名 add constraint 主键名 primary key(字段名); 添加主键 |
|
Alter table 表名 add constraint 外键名 foreign key(多的一方字段名) 表名(一的一方的主键字段名); 添加外键 |
|
Alter table 表名drop primary key; 删除主键 |
删除表:
|
Drop table[if exists] 表名; 删除表 |
Truncate命令:
|
用于完全清空表数据,但表结构、索引、约束等不变。 Truncate [table] table_name |
与delete命令的异同:
|
相同:都能删除数据、不删除表结构、但truncate速度更快 不同:使用truncate table 重新设置auto_increment计数器 使用truncate table不会对事务有影响 |
事务的ACID原则:
|
原子性、一致性、隔离性、持久性 |
DQL语言:数据查询语句
Distinct关键字
|
去掉select查询返回的结果中重复的记录,只返回一条 语法:select distinct 字段名1,字段名2…from 表名 |
|
Select version(); 查询版本号 |
|
Select @@auto_increment_increment; 查询步长 |
转义符:
|
Select * from student were studentname like ‘%:%%’ escape ‘:’;将冒号当做转义符,使用escape |
内连接查询:可省略inner关键字
|
Select 字段1,字段2,… from table_1 inner join table_2 on table_1.字段x=table_2.字段y |
左外连接:left join
|
Select 字段1,字段2,… from table_1 left[outer] join table_2 on table_1.字段x=table_2.字段y |
Mysql的limit:
|
Select * from ‘表名’ limit 5; 返回前5条记录 |
|
Select * from ‘表名’ limit 5,10; 返回从第6条记录起的10条记录 |
Group by的用法:常与having结合使用
|
Select count(r.studentNo) ‘总条数’,max(r.studentresult) ‘最高分’, min(r.studentresult) ‘最低分’,avg(r.studentresult) ‘平均分’,r.subjectNo from result r group by r.subjectNo having avg(r.studentresult)>=60; 按照不同的课程分组,分别算出其平均分、最高分和最低分,对于低于60分平均分的不予显示 |
|
注意:只有作为分组条件出现的列,以及聚合函数计算结果可以放在select后面 |
索引:
|
主键索引:create table ‘表名’(‘gradeid’ int(11) auto_increment primary key,或primary key(‘gradeid’)) |
|
唯一索引:create table ‘grade’(‘gradeid’ int(11) auto_increment primary key,’gradename’ varchar(32) not null unique 或unique key ‘gradeid’(‘gradeid’)) 注:Unique key 后面的为给索引取的名字,括号里的是列名 |
|
常规索引(index):create table ‘result’(…index/key ‘ind’(‘studentNo’,’subjectNo’)) 创建时添加 Alter table ‘result’ add index ‘ind’ (‘studentNo’,’subjectNo’); 创建后追加 |
|
例:create table test( A int primary key,B char(5) unique,C int,D int, Key ‘index_cd’ (‘c’,’d’), 或 Index ‘index_c’(‘c’) #primary key(‘a’) #unique key ‘index_b’ (‘b’) )注:联合索引前后要求:哪个条件筛选后留下的数据量最少哪个在前 |
|
全文索引:create table ‘student’(…fulltext(‘studentName’)engine=myisam); Alter table employee add fulltext(‘first_name’) 注:用于快速定位特定数据,还能用于myisam类型的数据表、只能用于char、varchar、text数据列类型、适合大型数据集 |
|
Select * from test where match(‘studentNmae’) against(‘key’); 查询test表,使用全文索引对studenname进行索引,针对key这个关键字检索 |
删除索引:
|
Drop index 索引名 on 表名 Alter table 表名 drop index 索引名 Alter table 表名 drop primary key |
查看索引:
|
Show index(或keys) from 表名 |
备份:
|
Msqldump客户端:在bin目录下找,进入后输入: Mysqldump -h 主机名 -u 用户名 -p [options] 数据库名 [table 1 table2 table3] >path/filename.sql 例如:备份bdqn数据库:cmd进入dos窗口,输入: mysqldump -u root -p bdqn bdqn category users > d:/sqlbk.sql |
Mysqldump常用选项:
|
Mysqldump -help 查看基本参数 |
|
--add-drop-table 导出sql脚本会加上drop table if exists语句,默认是打开的,可以用 --skip-add-drop-table取消 例:Mysqldump -uroot -pbdqn –-skip-add-drop-table bdqn category users >d:sqlbk.sql |
|
--add-locks 会在insert语句中捆绑一个lock table和unlock table语句 好处:防止记录被再次导入时,其他用户对表进行的操作,默认是打开的 |
|
-t或--no-create-info 纯数据备份,没有创建表格语句 例:Mysqldump -uroot -pbdqn –-no-create-info bdqn category users >d:sqlbk.sql |
|
-c或--complete-insert 在每个inseert语句的列上加上字段名,在数据库导入另一个数据库时有用 例:Mysqldump -uroot -pbdqn –c bdqn category users >d:sqlbk.sql |
|
-d或—no-data 只转存表结构,不存数据 |
|
--where ’where-condition’或-w’ where-condition’ 只转储给定的where条件选择的记录 例:Mysqldump -uroot -pbdqn –-where ‘studentNo=1’ bdqn student>d:sqlbk.sql |
恢复数据库:
|
方法一:用source方法 source /path/db_name.sql 注:/path/是一个绝对路径,并且必须是mysql运行用户有权限读取的文件,source在mysql命令行里执行 例:mysql -uroot -pbdqn; Use test; source d:sqlbk.sql |
|
方法二:用mysql客户端 mysql-u root -p dbname< /path/db_name.sql; 例:mysql -uroot -pbdqn test <d:sqlbk.sql |
我总结的常用sql语句的更多相关文章
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- 50个常用SQL语句
50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表 S#学号,主键 Course(C#,Cname,T#) 课程表 C#课程号,主键 SC(S#, ...
- oracle sqlplus及常用sql语句
常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- 常用SQL语句(增删查改、合并统计、模糊搜索)
转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html 常用SQL语句 首行当然是最基本的增删查改啦,其中最重要的是查. ...
- oracle 常用sql语句
oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...
- Sqlite常用sql语句
sqlite常用sql语句 --返回UTC时间 select CURRENT_TIMESTAMP; --返回本地时间 select datetime(CURRENT_TIMESTAMP,'localt ...
- 常用SQL语句集合
一.数据定义 1.创建新数据库:CREATE DATABASE database_name2.创建新表:CREATE TABLE table_name (column_name datatype,co ...
- 常用sql语句整理:mysql
## 常用sql语句整理:mysql1. 增- 增加一张表```CREATE TABLE `table_name`( ... )ENGINE=InnoDB DEFAULT CHARSET=utf8 ...
随机推荐
- 浩哥解析MyBatis源码(五)——DataSource数据源模块之非池型数据源
1 回顾 上一篇中我解说了数据源接口DataSource与数据源工厂接口DataSourceFactory,这二者是MyBatis数据源模块的基础,包括本文中的非池型非池型数据源(UnpooledDa ...
- 最小函数值 洛谷P2085
题目描述: 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个( ...
- 实现一个竖直的显示表头的表格(vue版本)
今天遇到一个问题,实现这样一个竖直的显示表头的表格,如下图.默认显示两列. vue实现代码如下: tableComponent.vue: <template> <table ...
- 人生第一次hash
人生的第一次hash交给了模板题. 讲道理,还没有别人快排要快,就比暴力快那么一点... 难道我写的hash就那么菜么? 我想了想,光是处理字符串就O(n*len).. 这是hash的正确写法吗?我都 ...
- 【模板】Tarjan求强连通分量
有人说这篇博客不是很友好,所以我加了点解释,感觉是不是友好多了? dfn[u]表示节点u在dfs时被访问的次序. low[u]表示节点u能够追溯到的最远的祖先的dfn. ins[u]表示节点u是否在栈 ...
- socket编程之 select、poll、kqueue、epoll
原生API select int select(int numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct tim ...
- 利用伪元素和css3实现鼠标移入下划线向两边展开效果
一.思路: 将伪元素:before和:after定位到元素底部中间,设置宽度从0变成100%达到目的. 二.实现: 1.首先定义一个块状元素(行内元素没有宽高)并修改样式为一个背景色为浅灰色的矩形,设 ...
- GitHub上非常受开发者欢迎的iOS开源项目(二)
"每一次的改变总意味着新的开始."这句话用在iOS上可谓是再合适不过的了.GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x ...
- Linux-配置vim开发环境
vim是一个类似于vi的著名的功能强大.高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性.vim是纯粹的自由软件. 为了满足使用者的要求,将vim界面配置为自己想要的界面类型也变得流行起来. ...
- JDK源码之PriorityQueue源码剖析
除特别注明外,本站所有文章均为原创,转载请注明地址 一.优先队列的应用 优先队列在程序开发中屡见不鲜,比如操作系统在进行进程调度时一种可行的算法是使用优先队列,当一个新的进程被fork()出来后,首先 ...