什么是SQL

SQL是用于访问和处理数据库的标准的计算机语言

  • 结构化查询语言,全称是structured Query Language
  • 可以访问和处理数据库
  • 是ANSI标准的计算机语言
  • 除了SQL标准之外, 大部分SQL数据库程序都拥有它们自己的专有扩展

关系数据库

  • 关系数据库 = 多张表 + 各表之间的关系

    表的结构

  • 表名
  • 列和列名
  • 主键:标注数据唯一性

    各表之间的关系

  • 联结

    数据库的数据类型

  • 字符型
  • 数字
  • 日期

    SQL分类

    1. DDL(数据定义语言)

  • create: 创建数据库和表
  • drop: 删除数据库和表
  • alter: 修改数据库和表的结构
    如:
    1
    2
    3
    4
    5
    6
    7
    create table students(
    学号 varchar(20),
    姓名 varchar(20) not null,
    出生日期 date not null,
    性别 varchar(20) not null,
    primary key(学号)
    );

2. DML(数据操作语言)

  • insert into: 向表中插入数据
  • delete: 删除表中的数据
  • select: 查询表中的数据
  • update: 修改表中的数据

    3. DCL(数据控制语言)

  • commit: 确认对数据库中的数据进行的变更
  • rollback: 取消对数据库中的数据进行的变更
  • crant: 赋予用户操作的权限

    SQL语句书写规则

  • SQL语句以英文分号”;”结尾
  • SQL语句不区分关键字的大小写
  • 输入字符的时候只能使用英文字符
    如:
    1
    insert into student (学号,姓名,出生日期,性别) values ('0001','小明', '2000-06-06', '男');

常用命令及例句

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-- 常用命令
create databases -- 创建新数据库
alter databases -- 修改数据库
create table -- 创建新表
alter table -- 更改数据库表
drop table -- 删除数据表
create index -- 创建索引
drop index -- 删除索引
select -- 提取数据
update -- 更新数据
delete -- 删除数据
insert into -- 插入数据
-- 例句
use school; -- 选择数据库
set name utf8; -- 设置使用的字符集
select * from school.student; -- 读取数据表信息
select 学号,姓名 from student;
select distinct column_name, column_name from table_name; -- 仅列出不相同的值
select column_name, column_name from table_name where 性别='男'; -- 用于提取那些满足指定条件的记录,如提取所有男生信息
Select * from emp where sal > 2000 and sal < 3000;
Select * from emp where sal > 2000 or comm > 500;
select * from emp where not sal > 1500;
Select * from emp where comm is null;
Select * from emp where sal between 1500 and 3000;
Select * from emp where sal in (5000,3000,1500);
Select * from emp where ename like 'M%';
select column_name, column_name
from table_name
order by column_name, column_name ASC|DESC; -- 对提取结果排序(DESC降序排列)
insert into table_name
values (value1, value2, value3, ...); -- 向表中插入数据
insert into table_name (column1, column2, ...)
values (value1, value2, ...); -- 指定列插入数据
update table_name
set column1=value1, column2=value2
where name='xxx'; -- 当名字为'xxx'时,更新该两列数值,执行update时一定要仔细检查where条件
delete from table_name
where some_column=some_value; -- 根据where条件删除数据,执行delete时一定要仔细检查where条件
delete from table_name; -- 删除表中所有行,但表结构、属性、索引不变,表还在
delete * from tabel_name; -- 删除表中所有行,但表结构、属性、索引不变,表还在
show global variables like "%datadir%"; --查看数据库的物理地址

补充

持续更新中…