《SQL基础》
目录
一、SQL简介
结构化查询语言(Structured Query Language)简称SQL,是用于在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。
SQL分类
- DDL(Data Definition Language):数据定义语言,用于数据库对象操作;
- DML(Data Manipulation Language):数据操作语言,用于数据操作;
- DCL(Data Control Language):数据控制语言,用户权限控制。
SQL规范
- SQL语句不区分大小写;
- 字符串常量区分大小写;
- SQL语句可单行或多行书写,以“;”结尾。
二、DDL操作
(一)数据库操作
默认数据库
mysql:该库是mysql核心数据库,主要存储数据库用户、权限、时区等mysql自身需要使用的信息;
information_schema:数据字典表,存储数据库元数据,比如数据库名、表名、字段名、索引等;
performancce_schema:用于收集数据库服务器性能数据,以便分析问题;
sys:该库所有数据来自performancce_schema,主要是快速了解数据库运行情况。
案例一(数据库操作)
-- 1.显示已有数据库
show databases;
-- 2.创建数据库
create database if not exists test character set 'utf8';
-- 3.选择数据库
use test;
-- 4.查看当前数据库
select database();
-- 删除数据库
drop database if exists test;
(二)表操作
表字段
- 常用类型
int -- 整数
double -- 小数(双精度)
char -- 字符串(固定长度)
varchar -- 字符串(可变长度)
date -- 日期
time -- 时间
datetime -- 时间日期组合
enum -- 枚举
blob -- 二进制大对象(最大长度65535字节)
text -- 长文本(最大长度65535字符)
...
- 常用关键字
auto_increment -- 自动递增(用于整型字段)
comment -- 添加注释
default -- 指定默认值
- 常用约束
primary key -- 主键约束(非空且唯一)
unique -- 唯一约束(字段值唯一但允许null值)
not null -- 非空约束
foreign key -- 外键约束(一张表的外键是另外一张表的主键)
案例二(表操作)
-- 1.删除表
drop table if exists teacher;
-- 2.创建表
create table if not exists teacher(
teacher_id int primary key auto_increment comment '教师ID',
teacher_name varchar(20) not null comment '教师姓名',
age int comment '年龄',
phone_number char(11) unique comment '电话号码',
info varchar(300) default '暂无描述' comment '个人信息'
)comment '教师表';
-- 3.重命名表
rename table teacher to abc;
rename table abc to teacher;
-- 4.修改表
-- 4-1.删除列(alter table 表名 drop 列名)
alter table teacher drop info;
-- 4-2.添加列(alter table 表名 add 列名 列类型 before/after 某列)
alter table teacher add introduce char(100) after phone_number;
-- 4-3.修改列类型(alter table 表名 modify 列名 列类型)
alter table teacher modify introduce varchar(300);
-- 4-4.列改名(alter table 表名 change 旧列名 新列名 列类型)
alter table teacher change introduce info varchar(300) default '暂无描述' comment '个人信息';
-- 5.查看表结构
describe teacher;
-- 6.显示建表语句
show create table teacher;
三、DCL操作
用户操作
-- 查看已存在用户
use mysql;
select * from user;
-- 添加用户
create user user1 identified by '123456';
create user user2 identified by '123456';
-- 删除用户
drop user user2;
-- 修改密码
alter user 'user1' identified by '12345678';
权限操作
-- 添加权限
grant all on *.* to user1;
-- 删除权限
revoke all on *.* from user1;
-- 添加部分权限
grant create,drop on test.teacher to user1;
-- 查看用户已有权限
show grants for user1;
总结
重点
- SQL相关概念及书写规范;
- DDL操作;
- 用户操作。
难点
- DDL操作;
- DCL操作。