zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    Introduction to Monte Carlo Tree Search (蒙特卡罗搜索树简介)
    论文笔记:Mastering the game of Go with deep neural networks and tree search
    论文笔记之:Continuous Deep Q-Learning with Model-based Acceleration
    论文阅读之:PRIORITIZED EXPERIENCE REPLAY
    常见半监督方法 (SSL) 代码总结
    论文笔记之:Visual Tracking with Fully Convolutional Networks
    论文笔记之:RATM: RECURRENT ATTENTIVE TRACKING MODEL
    初始 DQN 程序 所遇到的问题
    论文笔记之:DeepCAMP: Deep Convolutional Action & Attribute Mid-Level Patterns
    论文笔记之:Heterogeneous Image Features Integration via Multi-Modal Semi-Supervised Learning Model
  • 原文地址:https://www.cnblogs.com/mengwy/p/14311206.html
Copyright © 2011-2022 走看看