sql(结构化查询语言)
用于访问和处理数据库的标准的计算机语言。
SQL DML 和 DDL
数据操作语言 (DML) :用于更新、插入和删除记录
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
数据定义语言 (DDL):创建或删除表格及定义索引(键),规定表之间的链接,以及施加表间的约束。
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
SELECT语句
用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SELECT 列名称 FROM 表名称
SELECT 列名称1,列名称2… FROM 表名称
SELECT * FROM 表名称
SELECT DISTINCT 语句
用于返回唯一不同的值。
SELECT DISTINCT 列名称 FROM 表名称
例如:你查水果数据的时候,假设你只想查水果的种类,那么你就可以用上DISTINCT去重。
WHERE 子句
有条件地从数据中取数据
SELECT l列名称 FROM 表名称 WHERE 列 运算符 值
SQL 使用单引号来环绕文本值,写带文本值的SQL语句时,不要忘了加上,非文本的不要加。
WHERE子句中一般使用的运算符
操作符 | 描述 |
---|---|
= | 等于 |
<> | 不等于 |
> | 大等 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
AND | 条件需同时满足 |
OR | 条件满足其中一个就行 |
多运算符组合用法
SELECT * FROM 表名称 WHERE (字段名称1=‘文本值’ OR 字段名称2=’'文本值)
AND 字段名称3=‘文本值’
ORDER BY 子句
根据指定的列对结果集进行排序。
升序(ASC) 降序(DESC)
默认为暗中字段升序(ASC)
SELECT语句 ORDER BY 排序依据字段(得是被查询了的字段)决定序列的关键字(可不填)
INSERT INTO 子句
不指定要插入字段的列
INSERT INTO 表名称 VALUES (值1, 值2,…)
指定要插入数据的列
INSERT INTO 表名称 (列1, 列2,…) VALUES (值1, 值2,…)
Update 语句
用于修改表中的数据
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
DELETE 语句
删除表中某一行的数据,不指定范围默认直接全删
DELETE FROM 表名称 WHERE 列名称 = 值
TOP 子句
规定返回记录的数目
SELECT 列名称 FROM 表名称 LIMIT 记录返回数目
SELECT TOP 记录返回数目 列名称 FROM 表名称
SELECT TOP 50 PERCENT 列名称 FROM 表名称
LIKE 操作符
用于在 WHERE 子句中搜索列中的指定模式。
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE pattern
pattern类似于通配符,例如:‘N%’、‘%N%’,以N开头,包含N的
可在LIKE前加NOT表示取反
SELECT 列名称 FROM 表名称 WHERE 列名称 NOT LIKE pattern
SQL通配符
通配符 | 描述 |
---|---|
% | 代替一个或多个字符 |
_ | 代替一个字符 |
charlist | 字符串中的任意字符 |
^charlist或!charlist | 不包括字符串中的任一字符 |
IN 操作符
使我们能在WHERE中规定多个值
SELECT 列名称 FROM 表名称 WHERE 列名称 IN(value1.value2…)
就是说,表内对应字段满足in内的都可以被提出来。
BETWEEN 操作符
操作符 BETWEEN … AND 会选取介于两个值之间的数据范围,左边的包括,右边的不包括,可以使数字、文本和日期。
SELECT 列名称 FROM 表名称WHERE 列名称 BETWEEN value1 AND value2
Alias(语法)
每个别名只能在自己所在的SQL语句中才有效
SELECT 列名称 FORM 表名称 AS 表别名
SELECT 列名称 AS 列别名 FROM 表名称
JOIN操作符
多表联查
SELECT 列名称
FROM 表名称 1
INNER JOIN 表名称2
WHERE 表1.列名称 = 表2.列名称
JOIN :表中至少有一个则返回行同INNER JOIN
LEFT JOIN 不论右表是否有匹配,从左表返回所有行
RIGHT JOIN 不论左表是否有匹配 ,从右表返回所有行
FULL JOIN 只要其中一个表中存在匹配,就返回行,将两个表中的数据全部怼出来。
UNION操作符
用于将两个或多个SELLECT的结果集结合起来
SELECT 列名称 FROM 表名称
UNION
SELECT 列名称 FROM 表名称
UNION 操作符默认选取不同的值,如允许重复的值可使用UNION ALL
SELECT INTO 语句
用于创建表的备份复件或对数据进行存档
SELECT 查询范围
INTO 新表名称 [IN 数据库名称]
FROM 原表名称
CREATE DATABASE 语句
创建数据库的
CREATE DATABASE 数据库名称
CREATE TABLE 语法
CREATE TABLE 表名称
{
列名称1,数据类型
列名称2,数据类型
列名称3,数据类型
…
}
SQL约束
可以在创建时,也可以在创建后
NOT NULL 不能为空
UNIQUE 唯一标识
PRIMARY KEY 主键
FOREIGN KEY 外键
CHECK 值限制约束
DEFAULT 默认值约束,若没有规定值,会将默认值添加到字段中·
加上约束,一个表只能有一个主键约束,唯一标识约束不限
CREATE TABLE 表名称
{
列名称 数据类型 约束
…
}
ALTER TABLE 表名称
ADD 约束 (被约束字段)
解除约束
ALTER TABLE 表名称
DROP 约束 约束名
CREATE INDEX语句
用于在表中创建索引,在不把整个表跑完的前提下,更快地查找数据
CREATE INDEX 索引名称
ON 表名称(需要索引值的列)
CREATE UNION INDEX语句
用于创建唯一索引,意味着两行不能有相同的索引值
CREATE UNION INDEX 索引名称
ON 表名称(需要索引值的列)
DROP 语句
DROP INDEX
用于删除表格总的索引
ALTER TABLE 表名 DROP INDEX 索引名
DROP DATABASE
删数据库
DROP DATABASE 数据库名
DROP TABLE
删表,一般都要先进入某个数据库才能删表吧(use 数据库名)
DROP TABLE 表名称
TRUNCATE TABLE 语句
只删表中的内容,不动表中你的结构,和DELETE FROM 表名效果一样
TRUNCATE TABLE 表名称
ALTER TABLE 语句
用于在已有的表中添加、修改、删除列
增
ALTER TABLE 表名称
ADD 列名称 数据类型
删
ALTER TABLE 表名称
DROP 列名称
改
ALTER TABLE 表名称
ALTER COLUMN 列名称 数据类型 这个只是改了数据类型
AUTO_INCREMENT 语句
主要用于主键自增
CREATE TABLE 表名称
{
pk_id bigint NOT NULL AUTO_INCREMENT,
PRIMARY KEY (pk _id)
}
CREATE VIEW 语句
额,至今还未用过视图,略过略过
MySQL的语句还是挺人性化的,格式来源——>SQL教程
额,好像差不多扣完了,明天再补上样例了,溜了溜了。