SQL基础:
SQL简介
- SQL: Structure Query Language(结构化查询语句), 是我们与数据库交互的一种方式。
(MySQL)使用入门
- SQL分类:
1. DDL(Data Definition Language),数据定义语言。主要操作对象为数据库,表,字段,索引等。
2. DML(Data Manipulation Language), 数据操纵语句。主要操作数据库表记录。
3. DCL(Data Control Language), 数据控制语言。主要对表,字段等进行安全控制和授权。
DDL语句
- 创建数据库
CREATE DATABASE <数据库名>;
- 删除数据库
DROP DATABASE <数据库名>;
- 创建表
CREATE TABLE <表名> (
列名1, 数据类型1, 约束条件1,
列名2, 数据类型2, 约束条件2,
...
)
例如:
CREATE TABLE emp(
ename VARCHAR(10) COMMENT '雇员名称',
hiredate DATETIME COMMENT '雇佣时间',
sal DECIMAL(10, 2) COMMENT '薪水',
deptno INT(2) COMMENT '部门编号'
);
- 查看表信息
- 查看创建表的详细信息
- 删除表
drop table <table_name>
- 修改表
1.修改字段类型:
2.增加表字段:
3.删除表字段:
4.字段改名:
5.修改字段排列顺序
6.修改表名:
DML语句:
- 插入记录
INSERT INTO <table_name>
(field1, field2, ...)
VALUES
(val1, val2, ...),
(val1', val2', ...),
...
- 更新记录
UPDATE <table_name>
SET
field1=val1, field2=val2, ...
[WHERE] ...
- 删除记录
DELETE FROM <table_name>
WHERE ...
- 查询记录
SELECT * FROM <table_name> WHERE ...
(1)查询不重复的记录
SELECT DISTINCT field_name FROM <table_name>;
(2)分页查询
SELECT * FROM <table_name> LIMIT <offset>, <pagesize>
(3)聚合
SELECT (field1, field2, ...) func_name #表示某种聚合函数,如max, sum等
FROM <table_name>
[WHERE condition] #where条件语句, 分类前过滤
[GROUP BY field1, field2, ... #分组语句
[WITH ROLLUP]] #是否再汇总
[HAVING condition] #对分类后再过滤
(4)联合
SELECT * FROM table1
UNION/UNION ALL #前者合并时做一次DISTINCT, 后者直接合并
SELECT * FROM table2
DCL语句:
(1)授权:
GRANT [SELECT/UPDATE/INSERT/DELETE] on [DB.*/DB.<table>] TO '<username>'@'<host>' IDENTIFIED BY '<password>';
(2)回收授权:
REVOKE [SELECT/UPDATE/INSERT/DELETE] ON [DB.*/DB.<table>] FROM '<username>'@'<host>';
不吝指正。