SQL Server命令以Mac OS,MySQL为例

1. 启动服务

1
sudo /usr/local/MySQL/support-files/MySQL.server start

2. 停止服务

1
sudo /usr/local/MySQL/support-files/MySQL.server stop

3. 重启服务

1
sudo /usr/local/MySQL/support-files/MySQL.server restart

4. 连接数据库

1
2
3
cd /usr/local/MySQL/bin/

./MySQL -uroot -p

接着按提示输入密码

5. 远程连接

1
sudo ssh root@远程ip地址

接着输入远程服务器登录密码

1
MySQL -u root -p -h localhost

按提示输入密码

6. 停止服务

1
exit/quit

7. 查看版本

1
select version()

二、数据库命令

1. 创建数据库

1
CREATE DATABASE 数据库名 CHARSET = UTF8;

2. 选择/使用数据库

1
USE 数据库名;

3. 删除数据库

1
DROP DATABASE 数据库名;

4. 查看当前数据库

1
SELECT DATABASE();

5. 查看数据库信息

1
SHOW CREATE DATABASE 数据库名;

三、表命令

1.查看当前数据库所有表

1
SHOW TABLES;

2.创建表

1
2
3
DEOP TABEL IF EXISTS 表名;

CREATE TABLE 表名(列名,类型,约束);

Eg:

1
2
3
4
5
6
7
8
9
DROP TABLE IF EXISTS example; #为避免同名表格影响,若有同名旧表,则清理

CREATE TABLE example(

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '序号',

order_id VARCHAR(255) NOT NULL COMMENT '订单号',

) ENGINE = INnoDB DEFAULT CHARSET = utf8;

1)建表约束

NOT NULL——列不能存储NULL值

UNIQUE——列唯一值

PRIMARY KEY——主键,确保(多)列有特定(且唯一)的记录可以查询

FOREIGN KEY——当前表与外部表格有相对应的参照字段进行关联

CHECK——确保列的值符合特定条件

DEFAULT——规定列没有赋值时的默认值

2)字符含义

INT——整数

VARCHAR——文本

AUTO_INCREMENT——自动编号

COMMENT——备注

ENGINE——引擎

CHARSET=UTF8——编码为 UTF8

3.查看建表语句

1
SHOW CREATE TABLE 表名;

4.查看表结构

1
DESC 表名;

5.重命表名

1
RENAME TABLE 旧表名 TO 新表名;

6.更新表数据

1
ALTER TABLE 表名 ADD/CHANGE/MODIFY/DROP 列操作;

7.删除表

1
DROP TABLE 表名;

四、功能命令

1.增

1
INSERT INTO 表名(列1, 列2...) VALUES(值1,值2...), (...), ...;

2.删

1
DELETE FROM 表名 WHERE 条件;

*请必须加 WHERE,否则删除所有相关数据,而不是选择性数据

3.改

1
UPDATE 表名 SET1 =1, 列2 =2, ... WHERE 条件;

4.查

(1)查询所有数据

1
SELECT * FROM 表名;

(2)查询特定数据

1
2
3
SELECT 列名 FROM 表名;

SELECT 列名 FROM 表名 LIMIT 起始列数,提取列数多少;

(3)去重查询

1
SELECT DISTINCT 列名 FROM 表名;

(4)条件查询

1
SELECT 列名 FROM 表名 WHERE 条件;

条件部分

1)相关运算符含义

=等于

<> 不等于

!=不等于

> 大于

< 小于

>= 大于等于

<=小于等于

BETWEEN 在某个范围之内,或在…之间

LIKE 搜索某个特征/模式

IN 在选取的列的一定范围内的值

AND 并且

OR

AND&OR 组合使用

IS NULL

IS NOT NULL 非空

2)通配符含义(搭配LIKE使用)

% 替代0-多个字符

_ 替代1个字符

[ ]选定列的任何单个字符

[^][!]不在选定列的任何单个字符

(5)聚合函数

SELECT 聚合函数(列名) FROM 表名;

1)COUNT 计数

2)SUM 求和

3)MAX 最大值

4)MIN 最小值

5)AVG 均值

(6)分组

1
2
3
SELECT 列名 FROM 表名 GROUP BY 列名;

SELECT 列名 FROM 表名 GROUP BY 列名 HAVING 列名+条件;

(7)排序

1
2
3
4
5
SELECT 列名 FROM 表名 ORDER BY 列名; #升序

SELECT 列名 FROM 表名 ORDER BY 列名 DESC; #降序

SELECT 列名 FROM 表名 GROUP BY 列名 ORDER BY 列名; #分组后排序

(8)JOIN连接

JOIN主要将2个及以上的表格关联起来,共有 LEFT JOINRIGHT JOININNER JOINFULL JOIN/OUTER JOIN等7种用法。

1)INNER JOIN:若都存在至少一个匹配值,则返回行

1
SELECT1.字段1,表2.字段2 FROM1 INNER JOIN2 ON1.相同外键=2.相同外键;

2)LEFT JOIN:若右表没有匹配值,则返回左表所有的行

1
SELECT1.字段1,表2.字段2 FROM1 LEFT JOIN2 ON1.外键=2.外键;

3)RIGHT JOIN:若左表没有匹配值,则返回右表所有的行

1
SELECT1.字段1,表2.字段2 FROM1 RIGHT JOIN2 ON1.外键=2.外键;

4)FULL JOIN/OUTER JOIN:只要其中一个表有匹配值,则返回行

1
SELECT1.字段1,表2.字段2 FROM1 FULL JOIN2 ON1.外键=2.外键; ##(MySQL不支持此用法)
1
SELECT 表1.字段1,表2.字段2 FROM表1 LEFT JOIN 表2 ON表1.外键=表2.外键 UNION SELECT 表1.字段1,表2.字段2 FROM 表1 RIGHT JOIN表2 ON表1.外键=表2.外键;

(9)UNION联合

1)去重联合——UNION

1
SELECT1.字段1FROM1 UNION SELECT2.字段2 FROM2;

2)不去重联合——UNION ALL

1
SELECT1.字段1FROM1 UNION ALL SELECT2.字段2 FROM2;