mysql基础重点+约束

1.什么是SQL?
结构化查询语言,其实就是定义了操作所有关系型数据库的规则

2.SQL通用语法:
1.SQL语句可以单行或多行书写,以分号结尾。
2.使用空格或缩进来增强语句的可读性
3.MySql的SQL语句不区分大小写,关键字建议大写

SQL语言的分类:

DDL:操作数据库、表
DQL:查询表中数据
DML:增删改表中的数据
DCL:授权

DDL:

1.操作数据库:CRUD
1.Create:创建

    create database 数据库名称;创建数据库
    create database if not exists 数据库名称;创建一个数据库,创建前
                      先判断指定的数据库名称是否已经存在,已经存在则不创建,不存在则创建
    create database 数据库名称 character set 码表;
        创建一个指定字符集的数据库
2.Retrieve:查询

    show databases; 查看所有数据库
    show create database 数据库的名称; 查看某一数据库的字符集:查看某个数据库的创建语句
3.Update:修改

    alter database 数据库名称 character set 字符集名称;
        修改指定数据库的字符集
4.Delete:删除

    drop database 数据库名称;删除数据库
    drop database if exists 数据库名称;
        判断数据库是否存在,存在就删除

5.使用数据库 

    select database(); 查询当前正在使用的数据库名称
    use 数据库名称;使用数据库

聚合函数的计算是排除null值的

判断where后的条件是否为null,不能使用 = 号,只能使用 is null

在已创建的表中添加主键:

    1.alter table 表名 modify 字段名 字段类型 primary key;
    2.ALTER TABLE  表名 ADD PRIMARY KEY 字段名;

重点记忆

**自动增长(字段必须是整数类型)

默认地 AUTO_INCREMENT 的开始值是 1,如果希望修改起始值,可以设置自增的初始值:

    CREATE TABLE  表名(
        列名 int primary key AUTO_INCREMENT
    ) AUTO_INCREMENT=起始值;

DELETE 和 TRUNCATE 对自增长的影响:

DELETE:删除所有的记录之后,自增长没有影响
TRUNCATE:删除以后,自增长又重新开始。

对一列设置唯一约束,不能出现同名的学生,重复插入多个 null 会怎样?
null 没有数据,不存在重复的问题

疑问:如果一个字段设置了非空与唯一约束,该字段与主键的区别?
1)主键数在一个表中,只能有一个。不能出现多个主键。主键可以单列,也可以是多列。
2)自增长只能用在主键上

外键关联过之后可以为null,但是不能为不存在的外键值

主键约束自增长:
在添加元素时,可以添加null,会根据上一条数据自动加1,也可以自己自定数据
删除自动增长,可以使用
alter table 表名 modify 列名 数据类型;
该语句只能把自增删除,不能删除主键**

约束语句:

主键(primary key):
1.创建表时设置主键约束:
create table 表名(
字段 数据类型 primary key,
);

2.创建表后设置主键约束:

            1.alter table 表名 modify 字段 数据类型 primary key;
            2.ALTER TABLE 表名 change 字段 字段 数据类型 PRIMARY KEY;
            3.ALTER TABLE  表名 ADD PRIMARY KEY (字段名);

3.删除主键:

            alter table 表名 drop primary key;

非空(not null):

1.创建表时设置非空约束:

            create table 表名(
                字段 数据类型 not null,
            );

2.创建表后设置非空约束:

            1.alter table 表名 modify 字段 数据类型 not null;
            2.alter table 表名 change 字段 字段 数据类型 not null;

3.删除非空约束:

            1.alter table 表名 modify 字段 数据类型
            2.alter table 表名 change 字段 字段 数据类型

唯一(unique):

1.创建时设置唯一约束:

            create table 表名(
                字段 数据类型 unique,
            );

2.创建表后设置唯一约束:

            1.alter table 表名 modify 字段 数据类型 unique;
            2.alter table 表名 change 字段 字段 数据类型 unique;

3.去除唯一约束:

            alter table 表名 drop index 字段;

外键约束(foreign key):

1.创建表时设置外键约束、更新级联、删除级联:

            create table 表名(
                字段 数据类型,
                constraint 外键名 foreign key (字段) references 要关联的表(要关联的字段:一般为主键) on update cascade on delete cascade
            );

2.创建表后设置外键约束、更新级联、删除级联:

            alter table 表名 add constraint 外键名 foreign key (字段) references 要关联的表(要关联的字段:一般为主键) on update cascade on delete cascade

3.删除外键约束、更新级联、删除级联:

            alter table 表名 drop foreign key 外键名称;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值