本文摘自PHP中文网,作者coldplay.xixi,侵删。
一、SQL的概念
1 | 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
|
相关免费学习推荐:mysql视频教程
二、SQL分类
(1)数据定义语言(Data Definition Language) DDL
用来定义数据库对象:数据库,表,列……
(2)数据操作语言(Data Manipulation Language) DML
用来对数据库中表的记录进行更新。
(3)数据查询语言(Data Query Language) DQL
用来查询数据库中表的记录。
(4)数据控制语言(Data Control Language) DCL
(一)DDL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 1.创建数据库
create database 数据库名;
create database 数据库名 character set 字符集;
use 数据库名;
show databases;
select database();
show create database 数据库名;
alter database 数据库名 character set 字符集;4.删除数据库
drop database 数据库名;5.创建表
CREATE TABLE 表名(
字段名称1 字段类型(长度),
字段名称2 字段类型(长度)
);
6.查看表
show tables;
desc 表名;
rename table 旧表名 to 新表名;
alter table 表名 character set 字符集;
alert table 表名 add 字段名称 字段类型;
alter table 表名 drop 字段名;
drop 表名 if exists 表名;
|
(二)DML
1 2 3 4 | 1.插入数据
insert into 表名 (字段名1,字段名2...) values(字段值1,字段值2...);2.更改数据
update 表名 set 列名 = 值 [where 字段名 = 值];3.删除数据
delete from 表名 [where 字段名 = 值];
|
(三)DQL
1 2 3 4 | 1.简单查询
select 列名 from 表名;
select 列名 from 表名 where 条件表达式;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 3.排序
SELECT 字段名 FROM 表名 [WHERE 字段 = 值] ORDER BY 字段名 [ASC / DESC];
* count (字段) 统计指定列不为NULL的记录行数
* sum(字段) 计算指定列的数值和
* max(字段) 计算指定列的最大值
* min(字段) 计算指定列的最小值
* avg(字段) 计算指定列的平均值
*/
SELECT 聚合函数(字段名) FROM 表名;5.分组
SELECT 分组字段/聚合函数 FROM 表名 GROUP BY 分组字段 [HAVING 条件];6.limit关键字
SELECT 字段1,字段2... FROM 表名 LIMIT offset , length;
|
(四)DCL
1 2 3 4 5 6 | 1.创建用户
CREATE USER '用户名' @ '主机名' IDENTIFIED BY '密码' ;2.给用户授权
GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名' @ '主机名' ;3.查看权限
SHOW GRANTS FOR '用户名' @ '主机名' ;4.删除用户
DROP USER '用户名' @ '主机名' ;5.查询用户
SELECT * FROM USER;
|
三、 SQL约束
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1. 主键约束
字段名 字段类型 primary key;
字段名 字段类型 not null,3. 唯一约束
字段名 字段类型 unique,4. 默认值
字段名 字段类型 DEFAULT 默认值
|
四、事务控制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 1.什么是事务
事务是一个整体,由一条或者多条SQL 语句组成,这些SQL语句要么都执行成功,要么都执行失败, 只要一条SQL出现异常,整个操作就会回滚,整个业务执行失败。2. 手动提交事务
① 开启事务 start transaction;
② 提交事务 commit;
③ 回滚事务 rollback;3. 自动提交事务(MySQL默认)
SET @@autocommit=off;
SHOW VARIABLES LIKE 'autocommit' ;4. **事务的四大特性**(重点)
原子性,一致性,隔离性,持久性。5. 事务隔离级别
select @@tx_isolation;
set global transaction isolation level 级别名称;
|
五、多表
(一)概述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 1. 在实际开发中,单表是满足不了业务需求的,同一个字段中很可能出现大量的
冗余字段,这就需要我们引入了多表。 2. 如果表1的某个字段与表2的主键对应,那么表1的这个字段就称为表1的外键,
拥有外键的表是从表,与外键对应的主键所在的表成为主表。 4. 外键约束:外键约束可以让两张表之间产生一定的对应关系,从而形成了约束。 5. 外键指的是与在从表中与主表的主键对应的字段。 6. 添加外键约束的语法格式 [CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES
主表名(主键字段名);
alter table 从表 add [CONSTRAINT] [外键约束名称] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键字段名);
7. 删除外键约束的语法格式
alter table 从表 drop foreign key 外键约束名称;
8.外键约束的注意事项:
① 从表的外键类型必须与主表的主键类型一致。
② 添加数据时,应该先添加主表的数据,然后再添加从表的数据
③ 删除数据的时候,要先删除从表中的数据,再删除主表中的数据。 9.级联删除
删除数据的时候,要先删除从表中的数据,再删除主表中的数据,设置级联删除
变可以直接删除主表中的数据,同时从表中的数据也会跟着消失。
on delete cascade;
|
(二)多表间关系
一对多: 在多的表上建立外键
多对多: 建立第三个表,最起码有两个字段(两个表的主键)
一对一: 任意一个表上建立外键
(三) 多表查询
1 2 3 4 5 6 7 8 9 10 | 1.内连接查询
SELECT 字段名 FROM 左表, 右表 WHERE 连接条件;
SELECT 字段名 FROM 左表 [inner] JOIN 右表 ON 连接条件;2.外连接查询
SELECT 字段名 FROM 坐标 LEFT [outer] JOIN 右表 ON 连接条件;
SELECT 字段名 FROM 坐标 RIGHT [outer] JOIN 右表 ON 连接条件;
SELECT 查询字段 FROM 表 WHERE 字段=(子查询);
SELECT 查询字段 FROM (子查询)表别名 WHERE 条件;
SELECT 查询字段 FROM 表 WHERE 字段 IN (子查询);
|
六、数据库三范式
数据库设计的一种规则
目的: 创建 冗余较小,结构合理的数据库。
第一范式(1NF) 满足最低要求的范式――列具有原子性,列要做到不可拆分性
第二范式(2NF) 在满足第一范式的基础之上进一步满足更多的规范―― 一张表只能描述一件事情
第三范式(3NF) 以此类推………………
七、MySQL索引
索引的作用:为了提高索引的效率
**常见索引的分类:**主键索引(primary key);
唯一索引(unique);普通索引(index);
(一)主键索引
1 2 3 4 5 6 | 1.创建的时候添加主键索引
CREATE TABLE 表名(
字段名 类型 PRIMARY KEY ,
);2.在已有表的基础上添加主键索引
ALTER TABLE 表名 ADD PRIMARY KEY(列名);
|
(二)唯一索引
1 2 3 4 5 6 | 1. 创建的时候添加唯一索引
CREATE TABLE 表名(
UNIQUE [索引名称] (列名)
);2. 在已有表的基础上添加唯一索引
CREATE UNIQUE INDEX 索引名 on 表名(列名);
ALTER TABLE 表名 ADD UNIQUE (列名);
|
(三)普通索引
1 2 | create index 索引名 on 表名(列名[长度]);
ALTER TABLE 表名 ADD INDEX 索引名(列名);
|
(四)删除索引
1 | ALTER TABLE table_name DROP INDEX index_name;
|
八、MySQL视图
1 2 3 | create view 视图名 [column_list] as select语句;
|
相关免费学习推荐:mysql数据库(视频)
以上就是常用的MySQL必备基础知识的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
常用的mysql必备基础知识
更多相关阅读请进入《MySQL基础知识》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 常用的MySQL必备基础知识