ML岗位面试:10.11下午—上海某公司算法岗位(偏数据分析,证券金融行业)技术面试考点之sqlserver语言相关考察点复习
导读:其实,考察的知识点,博主都做过,但是,emmm,这些知识点,在我写代码中,几乎不会用到,so,会遗忘。所以,还需要下功夫,去多回忆回忆啦。
整个过程还算nice。
目录
T-SQL语句
sql数据库基本操作
1、创建表
2、增删改查
3、sql的约束
sqlserver其他相关操作
1、基本操作
2、备份还原数据库
3、删除数据库
4、已有E_Market文件中,添加文件组和数据文件
数据定义语句DDL、数据操作语句DML、数据控制语句DCL、其他基本语句、流程控制语句、批处理语句;
USE niu --使用niu数据库创建表niutable
IF EXISTS(select count(*) from sys.objects where name = 'niutable') --若原先存在该表,
DROP TABLE niutable --执行删除该表;
GO
CREATE TABLE niutable --建表的同时要建字段;
(
s_id INT NOT NULL PRIMARY KEY, --数据表主键,id或num编号不能空
s_age INT, --年龄,
s_birthday DATE, --生日,不能为空
s_name VARCHAR(20) NOT NULL, --名称,不能为空
s_sex VARCHAR(4) NOT NULL CHECK(sex ='男' or sex='女'), --性别,
s_dept VARCHAR(50) NOT NULL,
s_phone VARCHAR(18) CONSTRAINT uq_phone UNIQUE --电话
s_gongzi NUMERIC(6,2) NOT NULL, --工资
shijian DATETIME --添加当前时间列
)
1、非空约束NOT NULL、DEFAULT约束:
--DEFAULT约束,定义表,指定员工编码默认是
CREATE TABLE tb_dept8 (
id INT PRIMARY KEY, --主键约束
name VARCHAR(26) NOT NULL, --NOT NULL约束
deptId INT DEFAULT 1111, --DEFAULT约束
salary FLOAT
);
2、唯一性约束
--唯一性约束,T1,指定一个表的名称为唯一的,
CREATE TABLE tb_dept2 (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(22) NOT NULL UNIQUE,
location VARCHAR(50)
)
--唯一性约束,T2,先定义一个表所有列以后,再指定部门唯一性;
CREATE TABLE tb_dept3 (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
CONSTRAINT 部门名称 UNIQUE(name)
);
3、CHECK约束
--CHECK约束,定义一个表,约束员工工资属于(1800,3000);
CREATE TABLE tb_dept7 (
id INT PRIMARY KEY,
name VARCHAR(26),
deptId INT ,
salary FLOAT,
CHECk(salary > 1800 AND salary < 3000) --给定条件约束;
);
4、主键约束
CREATE TABLE nyy_pmp2 ( --T1法,在表nyy_pmp2下创建主键约束
id INT PRIMARY KEY,
name VARCHAR(25) NOT NULL,
salary FLOAT NOT NULL
)
CREATE TABLE nyy_pmp3 ( --T2法,在表nyy_pmp3下创建主键约束
id INT NOT NULL,
deptId CHAR(20) NOT NULL,
CONSTRAINT 姓名部门约束 --设置主键约束
PRIMARY KEY(name,deptId)
)
CREATE TABLE nyy_pmp4 ( --T3法,先创建表nyy_pmp4,再创建主键约束;
id INT NOT NULL,
name VARCHAR(25) NOT NULL,
deptId CHAR(20) NOT NULL,
salary FLOAT NOT NULL
)
USE master
GO
IF EXISTS(SELECT * FROM sys.databases WHERE NAME = 'CAD_student')
DROP DATABASE CAD_student
GO
CREATE DATABASE E_Market
--建立主文件,物理文件后缀名为mdf
ON PRIMARY --主文件组
(
NAME='E_Market_data', --数据库逻辑文件名
FILENAME='F:\File_SQL Server\E_Market_data.mdf',--主文件物理地址
SIZE=5MB, --主文件初始大小
MAXSIZE=100MB, --主文件增长的最大值,或无限制=UNLIMITED
FILEGROWTH=15% --主文件的增长率
), --第一个文件组结束
FILEGROUP FG --次文件组
(
NAME='FG_E_Market_data', --
FILENAME='F:\File_SQL Server\FG_E_Market_data.ndf',
SIZE=10MB,
MAXSIZE=100MB,
FILEGROWTH=0
)
LOG ON --日志文件,日志文件不属任何文件组
(
NAME='E_Market_log', --日志文件逻辑文件名
FILENAME='F:\File_SQL Server\E_Market_log.ldf', --日志物理文件名
SIZE=5MB, --日志文件初始大小
FILEGROWTH=0 --未启用自动增长
)
GO --批处理标志
backup database niu to disk ='F:\niu.bak'with name='F:\niu'
--还原数据库
restore database niu from disk='F:\niu.bak'
--完整备份(name还原显示的名称
backup database t to disk='D:\CAD_student.bak',name='CAD_student'
--差异备份
backup database t to disk='E:\dataBak\log\bak_t_differ.bak'
with differential,noinit,name='bak_t_differ'
--日志备份
BACKUP LOG niu to disk='F:\niu_log_t.bak' with noinit,name='F:\niu_log_t'
USE master
DROP DATABASE E_Market
GO
IF EXISTS(SELECT * FROM sysdatabases WHERE name='E_Market')
DROP DATABASE E_Market
GO
USE E_Market
ALTER DATABASE E_Market ADD FILEGROUP FG1
GO
ALTER DATABASE E_Market ADD FILE
(
NAME='FG1_E_Market_data',
FILENAME='F:\File_SQL Server\FG1_E_Market_data.ndf',
SIZE=5MB,
FILEGROWTH=10%,
MAXSIZE=500MB
)TO FILEGROUP FG1
GO
ALTER DATABASE E_Market
MODIFY FILEGROUP FG1 DEFAULT
GO