注:使用终端操作mysql时,一定要"以管理员身份运行",不然权限不够。
一、启动:
mysql: net start mysql(mysql服务器的名字)从命令行角度
mysql –uroot(登录用户名)-proot(登录密码)
sqlserver:从图形图像角度介绍。
例如:

二、基本使用操作:
1.mysql(m)和sqlserver(s):不区分大小写
2.结尾:
mysql:以分号;或者\g结尾。例如:select now();
ctrl +c( 2个键同时按下)强制退出mysql到cmd命令行
sql server:以分号结尾,也可以省略。例如:select getdate();
例如:

3.单行注释符:
mysql:#或者--(注意,--后面要有一个空格)
sqlserver:--无需要一个空格要求
4.查看所有数据库:
mysql:show databases;
show variables like 'datadir';--用它来查询数据存放地址
通常win10 默认:C:\ProgramData\MySQL\MySQL Server 8.0\Data\
sqlserver:sp_databases;
默认路径:C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA
5.打开某一数据库:
mysql:use sjk;(数据库名称)
sqlserver:use sjk;(同上)
6.查看当前数据库:
mysql:select database();
sqlserver:select DB_NAME();
7.查看当前数据库中表:
mysql:show tables;
sqlserver:sp_tables;
三、SQL基本命令:
1.创建模式:
mysql:create schema 模式名;等同于创建数据库。
sqlserver:create schema 模式名;在sql-server中创建模式其实就是为用户创建一个架构(命名空间)。在旧版本的sql-server中,没有架构这个说法,这是因为以前的sql-server使用用户名来充当架构,就是说用户名跟架构其实隐式的连在一起的,不需要我们关心。但后来的sql-server版本为了便于管理,就将架构和用户名分开了。
1)创建数据库:
mysql:create database 库名;
(若已经执行了多个sql语句,按键盘的^或者下键可以切换到上一个或者下一个sql语句)

sqlserver:create database 库名;
SqlServer给出一个较完成创建数据库例子(包括数据文件和日志文件):
create database CommonPermission
on primary --表示属于 primary 文件组
( name='cpDB_data', -- 主数据文件的逻辑名称
filename='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_data.mdf', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15% --主数据文件的增长率
)
log on
( name='cpDB_log', -- 日志文件的逻辑名称
filename='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_log.ldf', -- 日志文件的物理名称 size=2mb, --日志文件的初始大小@
maxsize=20mb, --日志文件增长的最大值
filegrowth=1mb --日志文件的增长率 )
查看一下数据库情况:
mysql:show databases;
sqlserver:sp_databases;
2)创建表:
CREATE TABLE 表名(列名1 数据类型 [列级约束条件][,…]);
create table xuesheng(sno char(10),sname char(20));
3)修改表:
a)添加列:
mysql:alter table 表名 add column 列名 类型 [first|after 列名]
alter table s add column ss int;
sqlserver:alter table 表名 add 列名 类型;
alter table s add ss int;
b)查看表结构:
mysql:desc 表名;(这个是表,创建表的命令是关于tables,数据库是databases)
desc s;
sqlserver:sp_help 表名;或者sp_columns 表名;
sp_help s;
c)修改列:
mysql:alter table 表名 modify column 列名 类型[新约束];
sqlserver: alter table 表名 alter column 列名 类型;
d)修改列名:
mysql:alter table 表名 change column 列名 新列名 类型;
sqlserver:sp_rename ‘表名.旧列名’,‘新列名’,‘column’;
sp_rename 'tt.tnum', num,'column';
e)删除列:
mysql:alter table 表名 drop column 列名;
sqlserver:alter table 表名 drop column 列名;
f)修改表名:
mysql:alter table 表名 rename [to] 新表名;
sqlserver:sp_rename 表名 , 新表名;
2.获取当前时间:

四.SQL Server操作演示:


如上图,运行程序后并刷新才会显示结果。

如上图,SQL Server为脚本语言,每次从头执行,所以执行完的语句就注释掉,不然会报错。



如上图,会发现程序报错,这是因为sjk此时在终端也运行,因此把终端关闭即可。

use sjk表示使用sjk数据库,此时左上角就会显示使用sjk数据库,可手动修改为使用其他数据库。
五.SQL的基本概念:




六.索引:

七.数据查询:
1.格式:




2.实例:


SQL Server不要用给的默认数据库master。





3.查询满足条件的元组:

4.HAVING与WHERE的区别:

5.连接查询:

6.等值与非等值连接查询:

7.复合条件连接查询:

8.自身连接:


9.外连接查询:

10.嵌套查询:


11.带有比较运算符的子查询:


如上图,要找的是自己的,所以为了区分,给自己起两次别名,分别为x,y。

12.带有ANY(SOME)或ALL谓词的子查询:


13.带有EXISTS谓词的子查询:


八.大小写转换:

九.去重:

实例:


注:去重是针对每一行的即元组,如果多行内容不同,才能去重。
十.谓词:
1.概述:
MySQL 中的谓词(Predicate)就是返回 TRUE / FALSE / UNKNOWN 的条件表达式,主要用在 WHERE、ON、HAVING、JOIN 里做数据过滤,可以把它理解成:判断条件。
最通俗的解释:谓词 = 返回布尔值(真 / 假)的函数 / 表达式。
谓词的作用只有一个:让 MySQL 知道:哪些行要保留,哪些行要扔掉。
a.MySQL 里常见的谓词:
1. 比较谓词:
= > < >= <= != <>
例子:
WHERE age > 18
2. 范围谓词:
BETWEEN ... AND ...
3. 列表匹配谓词:
IN (值1, 值2, ...)
4. 模糊查询谓词:
LIKE
5. 空值判断谓词:
IS NULL
IS NOT NULL
⚠️ NULL = NULL 不是谓词,永远不成立;必须用 IS NULL。
6. 存在性谓词:
EXISTS
NOT EXISTS
7. 量化谓词:
ALL
ANY
SOME
b、一个例子看懂 “谓词”:
SELECT * FROM student
WHERE
age BETWEEN 18 AND 25 -- 谓词
AND name LIKE '张%' -- 谓词
AND email IS NOT NULL; -- 谓词
这里 BETWEEN、LIKE、IS NOT NULL 全都是谓词。
c、核心特点(面试常考):
- 返回值只有三种:
TRUE/FALSE/UNKNOWN - 专门用于过滤数据
NULL只能用IS NULL/IS NOT NULL判断,不能用=- 谓词 ≠ 函数,但很多谓词长得像函数
d.总结:
- 谓词 = 返回真 / 假的条件表达式
- 作用:过滤行
- 常见:
=><BETWEENINLIKEIS NULLEXISTS
2.细节:



十一.字符匹配:



十二.有关空值的查询:

十三.多重条件查询:

十四.函数:


十五.LIMIT子句:

十六.SQL语句执行顺序:

十七.基本操作:
1.插入一个元组(行):




2.修改数据:

895

被折叠的 条评论
为什么被折叠?



