## 常用sql语句整理:mysql

1. 增

- 增加一张表
```
CREATE TABLE `table_name`(
  ...
  )ENGINE=InnoDB DEFAULT CHARSET=utf8;
```

- 增加记录
```
INSERT INTO `your_table_name`(`column_name`)
VALUES
('your_value_one'),
('your_value_two');
```

- 增加字段
```
ALTER TABLE `your_table_name`
ADD `your_column_name` ...
AFTER `column_name`;
```

- 增加索引
  + 主键
  ```
  ALTER TABLE `your_table_name`
  ADD PRIMARY KEY your_index_name(your_column_name);
  ```
  + 唯一索引
  ```
  ALTER TABLE `your_table_name`
  ADD UNIQUE your_index_name(your_column_name);
  ```
  + 普通索引
  ```
  ALTER TABLE `your_table_name`
  ADD INDEX your_index_name(your_column_name);
  ```
  + 全文索引
  ```
  ALTER TABLE `your_table_name`
  ADD FULLTEXT your_index_name(your_column_name);
  ```

2. 删

- 逐行删除
```
DELETE FORM `table_name`
WHERE ...;
```

- 清空整张表
```
TRUNCATE TABLE `your_table_name`;
```

- 删除表
```
DROP TABLE `your_table_name`;
```

- 删除字段
```
ALTER TABLE `your_table_name`
DROP `column_name`;
```

- 删除索引
```
ALTER TABLE `your_table_name`
DROP INDEX your_index_name(your_column_name);
```

3. 改

- 变更数据
```
UPDATE `table_name`
SET column_name=your_value
WHERE ...;
```

- 变更字段
```
ALTER TABLE `your_table_name`
CHANGE `your_column_name` `your_column_name` ...(变更);
```

- 变更字段值为另一张表的某个值
```
UPDATE `your_table_name`
AS a
JOIN `your_anther_table_name`
AS b
SET a.column = b.anther_column
WHERE a.id = b.a_id...;
```

4. 查

- 普通查询
```
SELECT `column_name_one`, `column_name_two`
FROM `table_name`;
```

- 关联查询
```
SELECT *
FROM `your_table_name`
AS a
JOIN `your_anther_table_name`
AS b
WHERE a.column_name = b.column_name...;
```

- 合计函数条件查询:WHERE 关键字无法与合计函数一起使用
```
SELECT aggregate_function(column_name)
FROM your_table_name
GROUP BY column_name
HAVING aggregate_function(column_name)...;
```

- 同一个实例下跨库查询
```
SELECT *
FROM database_name.your_table_name
AS a
JOIN another_database_name.your_another_table_name
AS b
WHERE a.column_name = b.column_name...;
```

5. 复制一张表结构
```
CREATE TABLE `your_table_name`
LIKE `destination_table_name`;
```

6. 完全复制一张表:表结构+全部数据
```
CREATE TABLE `your_table_name`
LIKE `destination_table_name`;

INSERT INTO `your_table_name`
SELECT *
FROM `destination_table_name`;
```

---

### 附录:mysql常用命令
- 登陆: mysql -h host -u username -p
- 列出数据库:SHOW DATABESES;
- 列出表:SHOW TABLES;
- 列出表结构:DESC table_name
- 使用一个数据库:USE database_name;
- 导入:source 'file';
- 导出:mysqldump -h 127.0.0.1 -u root -p "database_name" "table_name" --where="condition" > file_name.sql;
- 查看慢日志:mysqldumpslow -s [c:按记录次数排序/t:时间/l:锁定时间/r:返回的记录数] -t [n:前n条数据] -g "正则" /path
- 新增用户: insert into `user`(`Host`, `User`, `authentication_string`) value('localhost', 'username', password('pwd'))

### mysql 5.7 新增用户

```
// 插入新用户
insert into mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject
value('localhost', 'username', password('password'), '', '', '');

// 数据库授权
grant all privileges on dbname.name.* to username@localhost identified by 'password';

// 刷新权限信息
FLUSH PRIVILEGES;
```

常用sql语句整理:mysql的更多相关文章

  1. 常用sql语句整理[MySql]

    查看执行计划 explain update test100 set contractSn=99 where contractSn=45; insert ... on duplicate key使用 i ...

  2. Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复

    一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...

  3. MySQL用户管理、常用sql语句、MySQL数据库备份恢复

    1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...

  4. MSSQL注入常用SQL语句整理

    很多情况下使用工具对mssql注入并不完善,所以我们就需要手工注入,一下是本人收集的一些mssql的sql语句. 手工MSSQL注入常用SQL语句 and exists (select * from ...

  5. EBS系统管理常用SQL语句整理汇总(参考网上资料&其他人博客)

    --1查找系统用户基本信息 SELECT user_id, user_name, description, employeE_id, person_party_id FROM fnd_user; -- ...

  6. 常用sql语句整理[SQL Server]

    1. 存储过程 CREATE PROCEDURE [dbo].[bbs_move_createtopic] @fid smallint, @iconid smallint, @curtid INT O ...

  7. 常用sql语句(mysql测试)

    DB数据库,DatabaseDBMS数据库管理系统,DatabaMemanagmentSystemSQL结构化查询语言,structure Query Language 开启服务net start m ...

  8. 常用sql语句整理

    1.开/关 外键约束 -- 关 SET FOREIGN_KEY_CHECKS = 0; -- 开 SET FOREIGN_KEY_CHECKS = 1; 2.查看表的容量大小 use informat ...

  9. mysql copy表或表数据常用的语句整理汇总

    mysql copy表或表数据常用的语句整理汇总. 假如我们有以下这样一个表: id username password ----------------------------------- 1 a ...

随机推荐

  1. 安装spark单机环境

    (假定已经装好的hadoop,不管你装没装好,反正我是装好了) 1 下载spark安装包 http://spark.apache.org/downloads.html 下载spark-1.6.1-bi ...

  2. KandQ:单例模式的七种写法及其相关问题解析

    设计模式中的单例模式可以有7种写法,这7种写法有各自的优点和缺点: 代码示例(java)及其分析如下: 一.懒汉式 public class Singleton { private static Si ...

  3. spring项目读取配置文件

    Spring项目在运用中读取配置文件有两种方式: 通过项目的配置文件读取 在spring-context.xml里面加入以下代码 在运用到的类里面加入 @Value("#{configPro ...

  4. iOS学习——UI相关小结

    1     StoryBoard: 在Info.plist中可以查看Main storyboard,即入口storyboard,默认为main.storyboard,可以修改为自己创建的storybo ...

  5. PCoA主坐标分析

    来源:http://blog.sina.com.cn/s/blog_670445240101nlss.html 1   背景介绍 这是一种排序方法.假设我们对N个样方有了衡量它们之间差异即距离的数据, ...

  6. Runtime那些事

    Runtime 前言 从字面意思看,就是运行时.但是这个运行时究竟什么意思?可以把它理解成:不是在编译期也不是在链接期,而是在运行时.那究竟在运行期间做了什么呢?按照苹果官方的说法,就是把一些决策(方 ...

  7. 【Java框架型项目从入门到装逼】第四节 - 编写第一个Servlet程序

    在开始这一节之前呢,我们还需要把Tomcat配置到Eclipse中,配置的方式很简单,打开Eclipse,Window,Preferences,进入到这个页面: 将Tomcat的安装目录配置到Ecli ...

  8. 嵌入式linux下wifi网卡的使用(二)——应用程序iw编译

    首先编译iw,Iw支持两种加密/认证方式.第一种是OPEN/OPEN 第二种是WEP/WEP在网上下载iw源码,发现iw的编译需要依赖libnl库(这个库是为了方便应用程序使用netlink借口而开发 ...

  9. 【线段树】BZOJ2752: [HAOI2012]高速公路(road)

    2752: [HAOI2012]高速公路(road) Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1621  Solved: 627[Submit] ...

  10. 简易 bokeh 图像散景效果算法实现

    bokeh百度百科的解释 摄影镜头光圈大小和拍摄距离决定了拍摄时的景深,相对于焦点位置,焦点前与焦点后的被拍摄物体会显得模糊,这个模糊区域被称为焦外.焦外具体的模糊程度还受到镜头中镜片单体和组合的物理 ...