description: 仅包含标准SQL语句内容,不包含与SqlServer、MySql等具体数据库相关的特性
SQL语言基础
SQL语句分类
Data Define Language (DDL) 数据定义语言
- CREATE-在数据库中新建对象
- ALTER-修改数据库结构
- DROP-删除对象
- RENAME-重命名对象
Data Manipulation Language (DML) 数据处理语言
- SELECT-从数据库中获取数据
- INSERT-向一个表格中插入数据
- UPDATE-更新一个表格的已有数据
- DELETE-删除表格中的数据
Data Control Language (DCL) 数据控制语言
- GRANT-赋予一个用户对数据库/数据表的指定权限
- REVOKE-删除一个用户对数据库/数据表的指定权限
Transaction Control Language (TCL) 事务控制语言
- COMMIT-保存数据操作
- SAVEPOINT-为方便rollback建立的一个事务点
- ROLLBACK-从最后一个COMMIT中恢复到提交前状态
数据库管理
创建数据库
CREATE DATABASE Student;
删除数据库
DROP DATABASE Student;
重命名数据库
RENAME DATABASE Student TO Student1; #【已弃用】此语句仅曾在一个版本的MySql中可用
数据类型
数据类型 | 用途 |
---|---|
integer(size), int(size), smallint(size), tinyint(size) | 存储整型数据 |
decimal(size,d), numeric(size,d) | 存储浮点数据 |
char(size) | 存储固定长度字符串 |
varchar(size) | 存储可变长度字符串 |
date(yyyymmdd) | 存储日期 |
创建表格
USE Student;#先选中一个数据库
CREATE TABLE info(
id int(10),
name varchar(50),
age int#最后一个属性不能带逗号','
);
SHOW TABLES;#显示所有数据表
查看表结构
查看一个表的结构
DESCRIBE info;#DESCRIBE可以缩写为DESC
删除一个表格
DROP TABLE info;
修改表
重命名一个表
ALTER TABLE info RENAME info1;
向表中添加一列
ALTER TABLE info ADD sex varchar(10);
删除表中一列
ALTER TABLE info DROP COLUMN sex;
修改一个列的数据类型
ALTER TABLE info MODIFY name varchar(20);
重命名一个列
ALTER TABLE info CHANGE COLUMN name name1 varchar(20);
SQL-向表中插入数据
向表中插入一条记录
INSERT INTO 表名称 VALUES(值1,值2,...);
或
INSERT INTO 表名称(列1,列2) VALUES(值1,值2);
例如
INSERT INTO info VALUES(2,'zhaoritian',20);
INSERT INTO info(id,name) VALUES(1,'zhaoritian');
SQL-查询数据
从表格中查询数据
SELECT 列名称1,列名称2,... FROM 表名称;
或
SELECT * FROM 表名称;
例如
SELECT id,name FROM info;
SELECT * FROM info;
按条件查询数据
从表格中按条件查询一条数据
SELECT 列名称1,列名称2,... FROM 表名称 WHERE 列 运算符 值;
例如
#按id
SELECT * FROM info WHERE id=1;
#按name
SELECT * FROM info WHERE name='zhaoritian';
SQL WHERE支持的运算符
符号 | 功能 |
---|---|
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某范围内 |
LIKE | 搜索某种模式 |
删除一条记录
从表格中查询并删除一条记录
DELETE FROM 表名称 WHERE 列 运算符 值;
或
DELETE * FROM 表名称;
例如
DELETE FROM info WHERE id = 2;
更新一条记录
从表格中查询并更新一条记录
UPDATE 表名称 SET 列名称=新值 WHERE 列=值;
#注意:WHERE的筛选结果需要唯一!
例如
UPDATE info SET name='zhaosi' WHERE id=1;
DISTINCT
返回结果删除重复项
SELECT DISTINCT 列名称 FROM 表名称;
例如
SELECT DISTINCT sex FROM info;
AND & OR
WHERE条件中使用逻辑组合
SELECT * FROM 表名称 WHERE 条件1 AND 条件2;
SELECT * FROM 表名称 WHERE 条件1 OR 条件2;
例如
SELECT * FROM info WHERE sex='F' AND id=2;
对结果进行排序
对查询结果按指定列进行排序
SELECT * FROM 表名称 ORDER BY 列名称;#默认顺序
SELECT * FROM 表名称 ORDER BY 列名称 DESC;#逆序
例如
SELECT * FROM info ORDER BY id;
SELECT * FROM info ORDER BY id DESC;