SQL基础

SQL基础

前因

  前天晚上,算是进行了人生中的第一次面试吧!在线面试,紧张的不行!面试官问题的题都比较简单,但是还是很多没打上来,就比如数据库增一条语句,以前只知道一个大概,每次用的时候要么查一下,要么就试一下!结果面试的时候根本回答不上来。正好今天感冒了,请假没去上班,应该不是中奖新冠了吧,我趁着有些力气就写写吧!好读书不求甚解,还是有点浮躁。不过最近心态真的比以前好太多了。不说了开始吧!

一、简介与准备工作

  • 什么是SQL?(网上抄的!)
    • SQL指结构化查询语言
    • SQL使我们有能力访问数据库
    • SQL是一种ANSI的标准计算机语言
  • SQL的应用?
    • SQL面向数据库执行查询
    • SQL可从数据库取回数据
    • SQL可在数据库中插入新的记录
    • SQL可更新数据库中的数据
    • SQL可从数据库删除记录
    • SQL可创建新数据库
    • SQL可在数据库中创建新表
    • SQL可在数据库中创建存储过程
    • SQL可在数据库中创建视图
    • SQL可以设置表、存储过程和视图权限
  • 准备
    • 安装数据库,新建名TestByMy的测试库,新建名为Students的表并填充测试数据用于以下学习。 (alt+X执行选中)
--select * from sys.databases;
use master
go 
if exists(select * from sysdatabases where name ='TestByMy')
begin
	select '该数据库已存在'
	drop database tempdb	--存在就删除
end
else
begin
create database TestByMy;
end
--创建数据库表名
use TestByMy
go
if exists(select * from sys.objects where name='Studentss')
begin 
	select '该表已经存在'
	drop table Student
end
else
begin
create table Studentss
(
	Id	int not null identity(1,1) primary key,--设置为主键和自增列
	LastName nvarchar(20) not null,
	FirstName nvarchar(20) not null,
	Address nvarchar(50) not null,
	City nvarchar(20) not null,
)
end
--插入一些测试数据
INSERT INTO Students VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing');
INSERT INTO Students VALUES ('远', '孟', '江湾84号', '上海');

二、SELECT:查询

1、描述

  1. SELECT语句从表中选取数据。
  2. 结果数据被存储在一个结果表中(结果集)

2、语法

SELECT 列名称,列名称 FROM 表名称
SELECT * FROM 表名称

三、DISTINCT

1、描述

  1. DISTINCT用于返回唯一不同的值

2、语法

SELECT DISTINCT 列名称 FROM 表名称

3、例子

SELECT DISTINCT FirstName from Students;

四、WHERE

1、描述

1. 有条件地从表中选取数据
2. 条件如果是文本一般添加单引号,数字的话一般不用

2、语法

SELECT * FROM 表名 WHERE 列名=''; 

3、例子

select * FROM Students WHERE LastName='一';

五、AND&OR

1、描述

1. AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤

2.语法

SELECT * FROM 表名 WHERE [条件一]AND[条件二]

3.例子

SELECT * FROM Students WHERE FirstName='孟' AND LastName='远';

六、ORDER BY

1、描述

1. ORDER BY 语句用于根据指定的列对结果集进行排序。
2. ORDER BY 语句默认按照升序对记录进行排序。
3. 使用DESC降序对记录进行排序

2、语法

SELECT * FROM 表名 ORDER BY 列名

3、例子

SELECT * FROM Students ORDER BY FirstName;

七、INSERT INTO

1、描述

1. INSERT INTO语句用于向表格中插入新的行
2. 可以只插入部分行的数据,其余为空

2、语法

INSERT INTO table_name(列1,列2,……)VALUES(值1,值2,……);

3、例子

INSERT INTO Students(FirstName,LastName,Address,City) VALUES('张','长长','长江南路1号','许昌');

将某一行的not null 该为允许null

ALTER TABLE table_name ALTER column_name column_type null;

八、UPDATE

1、描述

1. UPDATE语句用于修改表中的数据

2、语法

UPDATE 表名称 SET 列名称=新值 WHERE 列名称=旧值

3、例子

UPDATE Students SET LastName='甜' WHERE FirstName='王' AND City='上海';

九、DELETE

1、描述

1. DELETE语句用于删除表中的行。

2、语法

DELETE FROM 表名称 WHERE 列名称=值

3、例子

DELETE FROM Students WHERE ID=8;

十、SQL文件保存

--select * from sys.databases;--查看数据库名
--创建数据库
use master
go 
if exists(select * from sysdatabases where name ='TestByMy')
begin
	select '该数据库已存在'
	--drop database tempdb	--存在就删除
end
else
begin
create database TestByMy;
end
--创建数据库表名
use TestByMy
go
if exists(select * from sys.objects where name='Studentss')
begin 
	select '该表已经存在'
	--drop table Student
end
else
begin
create table Studentss
(
	Id	int not null identity(1,1) primary key,--设置为主键和自增列
	LastName nvarchar(20) not null,
	FirstName nvarchar(20) not null,
	Address nvarchar(50) not null,
	City nvarchar(20) not null,
)
end

--drop table Studentss;
INSERT INTO Students VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
INSERT INTO Students VALUES ('远', '孟', '江湾84号', '上海');
INSERT INTO Students VALUES ('近', '孟', '江湾84号', '上海');
INSERT INTO Students VALUES ('一', '王', '南京路84号', '上海');
--select

select * from Students;
select distinct FirstName from Students;

select * from Students where LastName='一';
select * from Students where FirstName='孟' AND LastName='远';
SELECT * FROM Students ORDER BY FirstName;

INSERT INTO Students(FirstName,LastName,Address,City) VALUES('张','长长','长江南路1号','许昌');
INSERT INTO Students(FirstName,LastName,City) VALUES('郭','大路','济南');
--desc Students;
ALTER TABLE Students alter Column Address varchar(20) null;

UPDATE Students SET LastName='甜' WHERE FirstName='王' AND City='上海';
SELECT MAX(ID) FROM Students;
DELETE FROM Students WHERE ID=8;
原文地址:https://www.cnblogs.com/mengwy/p/14311206.html