您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 组织学习教育 > (完整版)SQL基础知识汇总(2019)
1SQL基础知识梳理(一)-数据库与SQL(2019.03)2目录What's数据库数据库结构SQL概要创建数据库与表删除和更新表一、What's数据库1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。如:大型-银行存储的信息,小型-电话簿。2.数据库管理系统(BatabaseManagementSystem,DBMS):用来管理数据库的计算机系统。3.关系型数据库(RelationalDatabase,RDB):目前应用最广泛的数据库。4.结构化查询语言(StructuredQueryLanguage,SQL):专门用于操作RDB。5.常见的5种关系型数据库管理系统(RelationalDatabaseManagementSystem,RDBMS):①OracleDatabase:甲骨文公司②SQLServer:微软公司③DB2:IBM公司④PostgreSQL:开源⑤MySQL:开源二、数据库结构1.服务器:用于接收并处理其它程序发出的请求的程序(软件),或者是安装此类程序的设备(计算机)。2.客户端:向服务器发出请求的程序(软件),或者是安装此类程序的设备(计算机)。33.表(table):类似Excel,由行和列组成的二维表。4.字段:表的列(垂直方向)。5.记录:表的行(水平方向)。【注意】关系数据库必须以行为单位进行数据读写。6.单元格:行列交汇处。【注意】与Excel不同,一个单元格只能输入一个数据。三、SQL概要1.SQL语句:用关键字、表名和列名等组合而成的一条语句。2.3种SQL语句种类:(1)DDL(DataDefinitionLanguage,数据定义语言):创建、删除或修改数据库以及数据库中的表等对象。①CREATE:创建数据库和表等对象②DROP:删除数据库和表等对象③ALTER:修改数据库和表等对象4(2)DML(DataManipulationLanguage,数据操作语言):查询或修改表中的记录。①SELECT:查询表中的数据②INSERT:向表中插入数据③UPDATE:修改表中的数据④DELETE:删除表中的数据(3)DCL(DataControlLanguage,数据控制语言):确认或取消对数据库中的数据变更的执行操作,以及对用户的操作数据库中的对象权限进行设定。①COMMIT:确认对数据库中的数据进行的变更②ROLLBACK:取消对数据库中的数据进行的变更③GRANT:赋予用户的操作权限④REVOKE:取消用户的操作权限【备注】DML使用最频繁。3.SQL语句书写规范:①以分号(;)结尾;②大小写不敏感,不区分关键字的大小写;【注意】插入到表中的数据是区分大小写的,如“HI”、“Hi”和“hi”都不同。③该系列随笔将采用“关键字大写,表名和列名的首字母大写”的格式。④单词使用半角空格或换行符隔开4.常数的书写方式:字符串、日期:用单引号括起来('),如'Hello','2016-09-24'。数字:直接书写,不用加单引号,如:5。四、创建数据库与表1.数据库创建:5--语法:CREATEDATABASE数据库名称CREATEDATABASEShop--创建名为Shop的数据库2.表的创建--语法:--CREATETABLE表名--(--列名1数据类型约束,--列名1数据类型约束,--...--表约束1,6--表约束2,--...--)--创建名为Shohin的表CREATETABLEShohin(shohin_idCHAR(4)NOTNULL,shohin_meiVARCHAR(100)NOTNULL,shohin_bunruiVARCHAR(32)NOTNULL,hanbai_tankaINTEGER,shiire_tankaINTEGER,torokubiDATE,PRIMARYKEY(shohin_id));73.命名规则:①只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称;②规范要求命名以半角英文字符开头;③名称不能重复。4.数据类型的指定:声明该列的数据类型,是一种约束。5.数据类型介绍:①INTEGER:整型,意味不能存储小数;②CHAR:字符串型,如CHAR(10)和CHAR(100)中的括号表名该列可以存储的字符串的最大长度。它是“定长字符串”,如CHAR(8)表示在列中插入'abc'时会自动保存成'abc'(后面5个半角空格)的形式;8③VARCHAR:字符串型,类似CHAR,不同的是它是“可变长字符串”,如VARCHAR(8)在插入'abc',保存的就是字符串'abc';④DATE:日期类型;......6.约束:①非空约束:NULL是空白(无记录)的意思的关键字,NOTNULL表示必须输入的约束。②主键约束:主键是可以确定一行数据的列,一般通过它取特定行的数据,它是唯一的,不允许重复。......五、更新和删除表1.删除表--语法:DROPTABLE表名DROPTABLEShohin;--删除名为Shohin的表【注意】被删的表,无法恢复。2.更新表(1)添加列9--语法:ALTERTABLE表名ADD列名类型;ALTERTABLEShohinADDShohin_mei_KanaVARCHAR(100);--在Shohin中添加名为Shohin_mei_Kana类型为VARCHAR(100)的列(2)删除列--语法:ALTERTABLE表名DROPCOLUMN列名;ALTERTABLEShohinDROPCOLUMNShohin_mei_Kana;--删除Shohin表中名为Shohin_mei_Kana的列【注意】表定义变更后无法恢复。10SQL基础知识梳理(二)-查询基础11目录SELECT语句基础算术运算符和比较运算符逻辑运算符一、SELECT语句基础1.查询指定列:SELECT关键字--语法:--SELECT列名,...--希望查询列的名称--FROM表名--指定选取数据的表--从Shohin中取3列SELECTshohin_id,shohin_mei,hanbai_tanka--列的顺序可以任意指定,逗号(“,”)分隔,查询结果的顺序和SELECT子句中的顺序相同FROMShohin;2.查询表的所有列:星号(*)12--语法--SELECT*--星号(*)代表所有列--FROM表名;【备注】使用星号(*)的话就无法设定列的显示顺序3.为列设定别名:AS关键字SELECTshohin_idASId,shohin_meiASName,shiire_tankaPriceFROMShohin;--不用AS关键字也可以13SELECTshohin_idAS编号,shohin_meiAS'名称',shiire_tanka'价格'FROMShohin;--设定汉语别名:加上双引号()或单引号(')4.常数的查询SELECT'产品'ASProduct,--'产品':字符串常数38ASPrice,--38:数字常数'2016-09-30'AS'生产日期'--'2009-02-24':日期常数【备注】字符串和日期使用单引号(')。5.从结果中删除重复行:DISTINCT14原图(1)SELECTDISTINCTshohin_bunruiFROMdbo.Shohin;-使用DISTINCT移除shohin_bunrui列中的重复数据(2)DISTINCT对NULL类型的处理:存在多条NULL值的行时,会结合为一条NULL数据。SELECTDISTINCTshiire_tankaFROMdbo.Shohin;15(3)多列之前使用DISTINCTSELECTDISTINCTshohin_bunrui,torokubiFROMdbo.ShohinDISTINCT会将多个列的数据进行组合,将重复的数据结合为一条。【注意】DISTINCT关键字只能用在第一个列名之前。6.筛选记录:WHEREWHERE子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于这个数字”等条件,找出只符合该条件的记录。--语法:--SELECT列名,...--FROM表名16--WHERE条件表达式;SELECTshohin_id,shohin_mei,shohin_bunruiFROMdbo.ShohinWHEREshohin_bunrui='衣服';--shohin_bunrui='衣服':为条件表达式选取行之后,再输出列【备注】WHERE子句:首先通过该子句查询出符合指定条件的记录,再选取出SELECT语句指定的列。【注意】SQL子句的书写格式是固定的,不能随意更改。如WHERE子句必须紧跟在FROM子句后。7.注释的写法注释对于SQL的执行没有任何影响。--单行注释/*多行注释*/17二、算术运算符和比较运算符1.算术运算符SELECTshohin_mei,hanbai_tanka,hanbai_tanka*2AS'hanbai_tanka_x2'FROMdbo.Shohin;图商品单价的两倍四则算术运算符含义运算符加法+18减法-乘法*除法/括号(“(”“)”)可以提高表达式的优先级。2.需要注意NULLSELECT5+NULL,10-NULL,1*NULL,4/NULL,NULL/9;【备注】所有包含NULL的计算,结果肯定为NULL。3.比较运算符比较运算符运算符含义19=相等不等=大于等于大于=小于等于小于--示例1:SELECTshohin_mei,shohin_bunruiFROMdbo.ShohinWHEREhanbai_tanka=500;选取hanbai_tanka列为500的记录--示例2SELECTshohin_mei,shohin_bunruiFROMdbo.ShohinWHEREhanbai_tanka500;--示例3SELECTshohin_mei,shohin_bunruiFROMdbo.ShohinWHEREhanbai_tanka!=500;20选取hanbai_tanka列的值不是500的记录--示例4SELECT*FROMdbo.ShohinWHEREhanbai_tanka-shiire_tanka=500;3.对字符串使用不等号时的注意事项创建表21原图--示例:选取出大于'2'的数据的SELECT语句SELECT*FROMdbo.CharsWHEREchr'2';【注意】chr为字符串类型,对字符串类型的数据进行大小比较时,跟数字不一样。4.不能对NULL使用比较运算符--示例1:SELECTshohin_mei,shiire_tankaFROMdbo.ShohinWHEREshiire_tanka=NULL;--错误的SELECT语句--示例2SELECTshohin_mei,shiire_tankaFROMdbo.ShohinWHEREshiire_tankaISNULL;--选取NULL的记录--示例3SELECTshohin_mei,shiire_tankaFROMdbo.ShohinWHEREshiire_tankaISNOTNULL;--选取不为NULL的记录22【注意】希望选取NULL记录时,使用ISNULL;希望选取不是NULL的记录时,使用ISNOTNULL。三、逻辑运算符1.NOT运算符:取反--示例:SELECT*FROMdbo.ShohinWHERENOThanbai_tanka=1000;--等价于hanbai_tanka100023取hanbai_tanka列不大于1000的记录(hanbai_tanka1000)2.AND运算符和OR运算符AND运算符:并且,在两侧的查询条件都成立时整个查询条件才成立。OR运算符:在两侧的查询条件就算只有一个成立时整个查询条件都成立。--示例SELECTshohin
本文标题:(完整版)SQL基础知识汇总(2019)
链接地址:https://www.777doc.com/doc-7577726 .html