建表:

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语句的更多相关文章

  1. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  2. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  3. 50个常用SQL语句

    50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表  S#学号,主键 Course(C#,Cname,T#) 课程表          C#课程号,主键 SC(S#, ...

  4. oracle sqlplus及常用sql语句

    常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...

  5. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  6. 常用SQL语句(增删查改、合并统计、模糊搜索)

    转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html 常用SQL语句 首行当然是最基本的增删查改啦,其中最重要的是查. ...

  7. oracle 常用sql语句

    oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...

  8. Sqlite常用sql语句

    sqlite常用sql语句 --返回UTC时间 select CURRENT_TIMESTAMP; --返回本地时间 select datetime(CURRENT_TIMESTAMP,'localt ...

  9. 常用SQL语句集合

    一.数据定义 1.创建新数据库:CREATE DATABASE database_name2.创建新表:CREATE TABLE table_name (column_name datatype,co ...

  10. 常用sql语句整理:mysql

    ## 常用sql语句整理:mysql1. 增- 增加一张表```CREATE TABLE `table_name`(  ...  )ENGINE=InnoDB DEFAULT CHARSET=utf8 ...

随机推荐

  1. Arduino String.h库函数详解

    此库中包含 1 charAT() 2 compareTo() 3 concat() 4 endsWith() 5 equals() 6 equalslgnoreCase() 7 getBytes() ...

  2. 优雅高效的MyBatis-Plus工具快速入门使用

    目前正在维护的公司的一个项目是一个ssm架构的java项目,dao层的接口有大量数据库查询的方法,一个条件变化就要对应一个方法,再加上一些通用的curd方法,对应一张表的dao层方法有时候多达近20个 ...

  3. 7.Redis常用命令:ZSet

    Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联, ...

  4. AJAX载入外部JS文件到页面并让其执行的方法(附源码)

    一. 向HTML页面中动态添加JS文件(从外部载入)并让其执行的两种方法 1.只适用于IE浏览器的简单方法: 先在文档中放置一张JS"空床"并添加ID:<script id= ...

  5. webx request注入单例增强实现

    由于在spring中request对象的scope限制导致了request对象无法直接注入到单例bean中,所以webx对其进行了增强实现,达到单例注入的目的. 实现原理大致如下: 1 启动时注册全局 ...

  6. 自动生成数学题型三 (框架Struts2)题型如 a+b=c(a、b、c都为分数)

    1. 约分分数 1.1 保留质数 /** * 将数值放入到fraction数组中 * @param fen 简要放的 int类型数值 */ public void fenshu(int fen) { ...

  7. 使用JS控制伪元素的几种方法

    一. 缘由: 本文源于在OSC社区中,有人提问如何用jq获取伪元素.我第一想法是强大的CSS Query应该可以获取伪元素吧. 然而事实上,CSS Query并不能.即我们不能通过$(":b ...

  8. JS中的几种函数

    函数可以说是js中最具特色的地方,在这里我将分享一下有关函数的相关知识: 包装函数:        (function foo(){...})作为函数表达式意味着foo只能在...所代表的位置中被访问 ...

  9. 【代码学习】GD库中简单的验证码

    大体思路: 代码部分: <?php //1.创建画布 $img = imagecreatetruecolor(100,30); //2.设置颜色 值越小,颜色越深 $color1 = image ...

  10. GTK简单了解记录

    GTK+http://zh.wikipedia.org/wiki/GTK%2B#.E5.9B.BE.E5.BD.A2.E6.97.A0.E5.85.B3.E4.BB.A3.E7.A0.81 GTK+最 ...