SQL入门基础语法.docx
- 文档编号:1694964
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:10
- 大小:27.90KB
SQL入门基础语法.docx
《SQL入门基础语法.docx》由会员分享,可在线阅读,更多相关《SQL入门基础语法.docx(10页珍藏版)》请在冰豆网上搜索。
SQL语句的概述
SQL语言的分类
数据定义语言(DataDefinitionLanguage)主要用于修改、创建和删除数据库对象,其中包括CREATEALTERDROP语句。
数据查询语言(DataQueryLanguage)主要用于查询数据库中的数据,其主要是SELECT语句,SELECT语句包括五个子句,分别是FROMWHEREHAVINGGROUPBY和WITH语句。
数据操作语言(DataManipulationLanguage)主要用于更新数据库里数据表中的数据,包括INSERTUODATEDELETE语句。
数据控制语言(DataControlLanguage)主要用于授予和回收访问数据库的某种权限。
包括GRANTREVOKE等语句。
事物控制语言,主要用于数据库对事物的控制,保证数据库中数据的一致性,包括COMMITROLLBACK语句。
常用的数据类型
MYSQL:
整型
整数类型
取值范围
TINYINT
-128至127(1字节)
SMALLINT
-32768至32767(2字节)
MEDIUMINT
-sqrt(2,23)至sqrt(2,23)-1
INT
-sqrt(2,31)至sqrt(2,31)-1
BIGINT
-sqrt(2,63)至sqrt(2,63)-1
浮点型
浮点数类型
取值范围
FLOAT(M,N)
DOUBLE(M,N)
字符类型
CHAR(N)
定长1至255个字符
VARCHAR(N)
可变长1至65535
TINYTEXT(N)
可变长1至65535
TEXT(N)
MEDIUMTEXT(N)
LONGTEXT(N)
SQL语句的书写规范
SQL语句中不区分关键字的大小写
SQL语句中不区分列名和对象名的大小写
SQL语句对数据库中数据的大小写敏感
SQL语句中使用--注释,当使用--注释时,--后面至少有--个空格,多行注释用/**/
数据库的创建与删除
数据库的创建
CREATEDATABASEdatabase_name;
在MYSQLCOMMANDLINECLIENT中书写SQL语句时,在SQL语句后面都要加上分号
数据库的删除
DROPDATABASEdatabase_name;
数据表的创建与更新
数据库中的表
数据记录:
在数据表中的每一行被称为数据记录
字段:
数据表中的每一列被称为字段
主键(PRIMARYKEY):
作为数据表中唯一的表示,保证了每一天数记录的唯一性。
主键在关系数据库中约束实体完整性。
所谓的实体完整性,是指对数据表中行的约束。
外键(FOREIGNKEY):
外键用来定义表与表之间的关系。
在数据表中,如果属性列F是关系B中的一个属性(并不是关系B的主键),并且属性列F是关系A的主键,则F就是B的外键。
外键在关系数据库中约束参照完整性。
所谓的参照完整性是指表与表之间的约束。
索引:
索引是指向数据表中的一个指针,指向索引字段在数据表中的物理位置。
一般可以在如下几种情况下建立索引
在主键列中创建索引
多表连接时,在经常使用的连接列上创建索引
在经常使用WHERE子句查询的列上创建索引
在经常进行分组GROUPBY及排序ORDERBY的列上创建索引
约束:
为了保证数据的完整需要使用约束
1.唯一约束(UNIQUE)使用唯一约束的某一列或者某一组中没有相同的值,即保证了值的唯一性。
但是唯一约束中可以插入NULL值
2.主键约束(PRIMARYKEY)保证使用主键约束的列中只能有唯一的值,并且不能包含NULL值,数据表中每一列只能定义一个PRIMARYKEY
3.外键约束(FOREIGNKEY)保证表参照完整性,确保对一个数据表的数据操作不会对与之关联的表造成不利的影响
4.检查约束(CHECK)限制列的取值范围或者取值条件,可以为一个列定义多个CHECK约束
5.非空约束(NOTNULL)用于对列的约束
创建数据表
CREATETABLEtable_name(
column_name1datatype[constraint_condition1]
[,columnname2datatype[constraint_condition2]
…)
使用约束
1.唯一约束(UNIQUE)用来保证某一列或者某一组列中没有相同的值,一般为列创建了一个唯一约束后,数据库会自动为该列建立一个唯一索引,其索引名与约束名相同
例如:
CREATETABLET_dept(
dept_IDVARCHAR(15)UNIQUE,
dept_NameVARCHAR(10)
2.主键约束
CREATETABLET_result(
stuIDVARCHAR(15),
cruIDVARCHAR(15),
resultDOUBLE,
PRIMARYKEY(stuID,curID)
)
3.外键约束
FOREIGNKEY[表名1](列名1)REFERENCES表名2(列名2)
[ONUPDATE[CASCADE]|[SETNULL]|[RESTRICT]]
[ONDELETE[CASCADE]|[SETNULL]|[RESTRICT]]
其中,FOREIGNKEY是关键字,表名1是可选的,列名1是指定数据表中用于外键约束的外键,表名2表示主表的名字,列名2主表中与从表中列名1对应列的名字,后面的ONUPDATEONDELETE表示对表中的数据的修改或者删除,主从表之间采取什么样的操作方式,是可选的
CASCADE:
级联删除,如果主表中一条数据记录被删除,从表中的数据也将删除
SETNULL:
置空删除,如果主表中的一条数据记录南北删除,从表中与之相连的数据也将置空
RESTRICT:
受限删除,如果主表中的一条数据被删除,则在执行DELETE语句时系统会报错,通知用户与主表相对应的数据在从表中仍然存在,但是与主表相对应的数据在从表中不被删除,它是默认的方式
CREATETABLET_result(
stuIDVARCHAR(15),
curIDVARCHAR(15),
resultDOUBLE,
FOREIGNKEY(stuID)REFERCEST_student(stuID)ONDELETECASCADE,
PRIMARYKEY(stuID,curID)
)
3.检查约束CHECK
CREATETABLET_curriculum(
curIDVARCHAR(15)PRIMARYKEY,
curNameVARCHAR(10),
creditINT,
CHECK(creditBETWEEN3AND8)
)
4.非空约束NOTNUL
使用索引
1.唯一索引:
在数据表中使用UNIQUE可以为一个数据列定义一个唯一索引,唯一索引中的每一个索引值只对应数据表中的一条记录,保证了数据列中记录的唯一性
2.主索引:
在数据表中使用PRIMARYKEY可以为一个数据列定义一个主索引,所谓的主索引就是在主键列中建立索引
3.单列索引:
定义在数据表中一个数据列上的索引就是单列索引,一般在数据查询时,如果WHERE子句中经常用到的数据表中的某一列作为查询条件,就可以把该列创建为单列索引
4.复合索引:
索引可以定义在一个数据表的多个数据列上,像这样的索引被称为复合索引
5.聚簇索引:
创建与删除索引
CREATE[UNIQUE]|[CLUSTER]INDEXindex_name
ONtable_name(column_name[排序方式]…)
排序:
关键字ASC表示升序排列,关键字DESC表示降序排列
修改数据库中的表
1.向表中增加一列
ALTERTABLEtable_nameADD(column_namedatatype[constraint_condition])
例如:
ALTERTABLET_teacherADDsalaryINTNOTNULL
2.增加一个约束
ALTERTABLEtable_nameADDconstraint_type(column_name)
例如:
ALTERTABLEdeptADDPRIMARYKEY(dept_ID)
3.增加一个索引
ALTERTABLEtable_nameADDINDEX(column_name1[,column_name2]…)
例如:
ALTERTABLET_curriculumADDINDEXi_credit(credit)
4.修改表中的某一列
ALTERTABLEtable_nameMODIFYcolumn_namedatatype
例如:
ALTERTABLET_studentMODIFYsexCHAR
(2)
5.删除表中的某一列
ALTERTABLEtable_nameDROPcolumn_name
6.删除一个约束条件
ALTERTABLEtable_nameDROPconstraint_type
7.删除数据库中的表
DROPTABLEtable_name[CASCADECONSTRAINTS]
删除表时要使用CASCADECONSTRAINTS级联删除从表中的外键约束
数据的查询操作
查询全部列的数据记录
SELECT*FROMtable_nameorview_name[,table_name1orview_name1…]
查询表中指定的列
SELECT目标列[,目标列…]
FROM表名或者视图名[,表名或者视图名…]
在SELECT语句中查询数据表或者视图指定的列时,在SELECT语句中指定的列名必须是指定的数据表或者视图中存在的列
查询表中不重复的记录
SELECTDISTINCT目标列[,目标列…]
FROM表名或者视图名[,表名或者视图名…]
使用列别名查询
SELECT目标列[AS]列别名[,目标列[AS]列别名…]
FROM表名或者视图名[,表名或者视图名…]
在SELECT语句中使用列别名的形式对数据表或者视图查询时,可以再在查询的列名后面使用一个空格键来代替AS,空格后面再跟上列别名的名字。
如果列别名对字母大小写敏感,或者在使用包含有空格或者特殊字符的列别名,则必须使用单引号或者双引号将其引起来,否则系统将报错
对查询的记录进行运算
SELECT语句还可以使用算数运算符对指定的列进行运算,其中算术运算符包括加减乘除以及模除,在SELECT语句中对指定的列进行算术运算符进行运算时,只会改变显示的结果,并不会改变数据表中列的原有值
使用连接符(||)连接字段
在ORACLE中,可以使用||连接符连接多个字段,在使用连接符时,连接的数据类型应该是相同的,如果不同系统将会报错,如果需要在连接的字段中加入字符或者是日期类型的值,需要将该字符值或者日期类型的值使用单引号引起来。
注意,在MYSQL和MSSQLSERVER中并不支持连接符||,在MYSQL中可以使用CONCAT函数,在MSSQLSERVER中可以使用+来连接
关于N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 入门 基础 语法