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 | cd /usr/local/MySQL/bin/ |
接着按提示输入密码
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 | DEOP TABEL IF EXISTS 表名; |
Eg:
1 | DROP TABLE IF EXISTS example; #为避免同名表格影响,若有同名旧表,则清理 |
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 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件; |
4.查
(1)查询所有数据
1 | SELECT * FROM 表名; |
(2)查询特定数据
1 | SELECT 列名 FROM 表名; |
(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 | SELECT 列名 FROM 表名 GROUP BY 列名; |
(7)排序
1 | SELECT 列名 FROM 表名 ORDER BY 列名; #升序 |
(8)JOIN连接
JOIN主要将2个及以上的表格关联起来,共有 LEFT JOIN,RIGHT JOIN,INNER JOIN,FULL JOIN/OUTER JOIN等7种用法。
1)INNER JOIN:若都存在至少一个匹配值,则返回行
1 | SELECT 表1.字段1,表2.字段2 FROM 表1 INNER JOIN表2 ON 表1.相同外键=表2.相同外键; |
2)LEFT JOIN:若右表没有匹配值,则返回左表所有的行
1 | SELECT 表1.字段1,表2.字段2 FROM 表1 LEFT JOIN表2 ON 表1.外键=表2.外键; |
3)RIGHT JOIN:若左表没有匹配值,则返回右表所有的行
1 | SELECT 表1.字段1,表2.字段2 FROM 表1 RIGHT JOIN表2 ON 表1.外键=表2.外键; |
4)FULL JOIN/OUTER JOIN:只要其中一个表有匹配值,则返回行
1 | SELECT 表1.字段1,表2.字段2 FROM 表1 FULL JOIN表2 ON 表1.外键=表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 | SELECT 表1.字段1FROM 表1 UNION SELECT表2.字段2 FROM 表2; |
2)不去重联合——UNION ALL
1 | SELECT 表1.字段1FROM 表1 UNION ALL SELECT表2.字段2 FROM 表2; |