sql语言

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

一、sql语言分类

DML  添加,修改,删除,查询

DCL  用户,权限,事务

DDL  逻辑库,数据表,视图,索引

SQL语句的注意事项

SQL语句不区分大小写,但是字符串区分大小写

SQL语句必须以分号结尾

SQL语句中的空白和换行没有限制,但是不能破坏语法

SQL语句的注释

SQL语句的注释有两种,分别如下

# 这是一段注释文字

/* 这是另一段注释文字 */

创建逻辑库

create database  逻辑库名称;

show databases;   # 出示所有数据库

drop database   逻辑库名称;

  创建数据表

create table 数据表(

        列名1 数据类型 [约束] [comment 注释],

        列名1 数据类型 [约束] [comment 注释],

        ....

) [comment = 注释];

create table student(

    id int unsigned primary key,
    name varchar(20) not null,
    sex char(1) not null,
    birthday date not null,
    tel char(11) not null,
    remark varchar(200)
);

二、数据类型 

数字

类型大小说明
TINYINT1字节小整数
SMALLINT2字节普通整数
MEDIUMINT3字节普通整数
INT4字节较大整数
BIGINT8字节大整数
FLOAT4字节单精度浮点数
DOUBLE8字节双精度浮点数
DECIMAL-------DECIMAL(10,2)

数据类型:字符串

类型大小说明
CHAR1-255字符固定长度字符串
VARCHAR1-65535字符不固定长度字符串
TEXT1-65535字符不确定长度字符串
MEDIUMTEXT1-1千6百万字符不确定长度字符串
LONGTEXT1-42亿字符不确定长度字符串

数据类型:日期类型

类型大小说明
DATE3字节日期
TIME3字节时间
YEAR1字节年份
DATETIME8字节日期时间
TIMESTAMP4字节时间戳

 三、修改数据表结构

alter table 表名称

add 列1 数据类型  [约束] [COMMENT 注释],

add 列2 数据类型 [约束]  [COMMENT 注释],

......;

alter table student
modify home_tel varchar(20) not null;

 

修改字段名称

alter table 表名称

change 列1 新列名1 数据类型 [约束] [comment 注释],

change 列2 新列名2 数据类型  [约束] [comment 注释],

........;

alter table student
change address home_address varchar(200) not null;

删除字段

alter table 表名称

drop 列1,

drop 列2,

......;

alter table student
drop home_address,
drop home_tel;

二、数据库的规则范式

第一范式:原子性

构造数据库必须遵循一定的规则,这种规则就是范式

目前关系型数据库有6中范式,一般情况下,只满足第三范式即可

第一范式是数据库的基本要求,不满足这一点就不是关系数据库

第二范式:唯一性

数据表中的每条记录必须是唯一的,为了实现区分,通常要为表加上一个列来存储唯一标识,这个唯一属性被称作主键列

第三范式:关联性

每列都与主键有直接关系,不存在传递依赖

字段约束

约束名称关键字描述
主键约束PRIMARY KWY字段值唯一,且不能为NULL
非空约束NOT NULL字段值不能为NULL 
唯一约束UNIQUE字段值唯一,且可以为NULL
外键约束FOREIGN KEY

保持关联数据的逻辑性

主键约束:

  • 主键约束要求字段的值在全表必须唯一,而且不能为NULL值
  • 建议主键一定要使用数字类型,因为数字的检索速度会非常快
  • 如果主键是数字类型,还可以设置自动增长
create table t_teacher(

    id int primary key auto_increment,
    ......

);

非空约束:

  • 非空约束要求字段的值不能为NULL值
  • NULL值以为没有值,而不是“”空字符串
create table t_teacher(

    id int primary key auto_increment,
    name varchar(200) not null,
    married boolean not null default false

);

 唯一约束:

唯一约束要求字段值如果不为NULL,那么在全表必须唯一

create table t_teacher(
  .....
  tel char(11) not null unique
);

外键约束:

外键约束的定义是写在子表上的

create table t_dept(

        deptno int unsigned primary key,
        ename varchar(20) not null,
        sex enum('男','女') not null,
        deptno int unsigned,
        hiredate date not null,
        foreign key (deptno) references t_dept(deptno)

);

三、数据库索引

1.建表时添加索引

create table 表名称(

        ......,

        index [索引名称](字段),

        ....

);

create table t_message(

    id int unsigned primary key,
    content varchar(200) not null,
    type enum('公告','通报','个人通知') NOT NULL,
    create_time timestamp not null,
    index inx_type(type)

);

2.建表后添加和删除索引

create index 索引名称 on 表名(字段);

alter table 表名称 add index [索引名](字段);

show index from 表名;   # 查看数据表所有索引

drop index 索引名称 on 表名;

drop index idx_type on t_message;  # 删除索引

create index idx_type on t_message(type);  # 创建索引

show index from t_message;   # 显示索引

alter table t_message add index idx_type(type);  #添加索引

 索引的使用原则

  • 数据量很大,而且经常被查询的数据表可以设置索引
  • 索引只添加在经常被用作检索条件的字段上面
  • 不要在大字段上创建索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值