SQL语言(结构化查语言)是一种特殊的目的的编程语言,用于存取数据,查询数据,更新管理数据库系统
优点:市面上大多数的DBMS都支持SQL,简单易学,灵活,可以使用高级的数据库操作
数据库定义语言(DDL)用于数据的创建,修改
功能:
创建数据库
CREATE DATABASE IF NOT EXIXTS scholldb CHARSET utf8
删除数据库
DROP DATABASE IF EXISTS schooldb
修改字符集
ALTER DATABASE schooldb CHARSET qbk
需注意在创建表之前要确定:
表名,表中的 字段以及字段的类型和长度,表中的相关约束
SQL中的数据类型
char(n) 长度为n的定长字符串,最大长度为255
varchar(n)最大长度为n的可变字符串
date 日期 年月日
datetime 日期 年月日时分秒
数据类型:
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
deciaml
数据类型(M,D)
M:精度,数据的总长度
D:标度,小数点后的长度
排序 asc 升序 desc 降序
添加约束
PRIMARY KEY -- 设置为主键
AUTO_INCREMENT -- 设置主键列自然增长,只能修饰主键列,而且主键列类型为整数
not null -- 不能为空约束 可以添加到多个普通列
unique -- 唯一性约束 可以添加到多个普通列
check (height<2.1) -- 检查约束
DML(数据库操纵语言)
插入(insert) 删除(delete) 更新(update)
insert:常用于建表后插入数据
INSERT INTO stu (num,NAME,gender,phone,height)
FROM playerinformation
WHERE 身高>=190 AND 身高<=220
FROM playerinformation
WHERE YEAR(生日)='1982'
GROUP BY YEAR(生日)
关联查询
含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
按功能分类:
1.自连接
2.内连接
3.外连接
左外连接:将左边的表中的全部列都列出来,右边的只列出满足条件的
右外连接:将右边的表中的全部列都列出来,左边的只列出满足条件的
子查询
含义:出现在其他语句中的select语句,称为子查询或内查询;外部的查询语句,称为主查询或外查询.
在一个查询语句中又出现了查询语句
分类:
按子查询出现的位置:
from后面:支持表子查询
where:支持标量子查询,列子查询
按功能、结果集的行列数不同:
标量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
表子查询(结果集一般为多行多列)