SQL语句之DDL和DML

SQL分类:

 

 

  1. 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
  2. 数据操做语言:简称DML(DataManipulation Language),用来对数据库中表的记录进行更新。关键字:insertdeleteupdate
  3. 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及建立用户。
  4. 数据查询语言:简称DQL(Data QueryLanguage),用来查询数据库中表的记录。关键字:selectfromwhere

这个是我整理的经常使用的MySQL单表语句,若有错误欢迎指正面试

查询当前正在使用的数据库数据库

select database();安全

 

展现全部数据库spa

show databases;code

展现当前数据库全部的表对象

show tables;ip

DDL(数据定义语言)

修改表(注意:后面是有table关键字的,可是DML没有table关键字)rem

    添加字段: alter    table    表名    add    字段名    约束it

    修改字段:  alter    table    表名    modify    字段名    约束io

    重命名字段:alter    table    表名    change   旧字段    新字段    约束

    删除字段:    alter    table    表名    drop    字段名

    重命名表:    rename    table    表名    to    新表名

 

DML(数据操做语言)

插入记录:insert

    insert    into    表名    (字段1,字段2,字段3..)    values    (值1,值2,值3..);

    insert    into    表名      values    (值1,值2,值3..);  //括号中的值必须和字段一一对应

更新记录:update

    update    表名    set    字段名=值,字段名=值,...    where    条件; //为了方便记忆,能够把set理解成集合

 删除记录:delete

    delete    from    表名    【where    条件】;   //若是不添加条件则删除整个表的记录

    或

    truncate    table    表名;      

    面试题:

    删除表中全部记录使用deletefrom 表名, 仍是用truncate table 表名?

    删除方式:delete 一条一条删除,不清空auto_increment记录数。

    truncate 直接将表删除,从新建表,auto_increment将置为零,重新开始。

     删除表:drop

    drop    table    表名;

 

SQL 约束

    添加主键(三种方式添加,两种在建立表时添加,最后一种是修改表结构)

    

    方式一:

    CREATE TABLE Persons

    (

        Id_P int PRIMARY KEY,

        LastName varchar(255),

        FirstName varchar(255),

    )

    

    方式二:建立表时,在constraint约束区域,声明指定字段为主键:

    CREATE TABLE Persons

    (

        Id_P int,

        FirstName varchar(255),

        LastName varchar(255),

    CONSTRAINTpk_PersonID PRIMARY KEY (Id_P)

 

    )

    方式三:建立表以后,经过修改表结构,声明指定字段为主键:

    

    ALTER TABLE Persons ADD [CONSTRAINT 名称] PRIMARY KEY (字段列表)

    删除主键:

    alter    table    表名    drop    primary    key;

    删除惟一约束:

    alter    table    drop    index    字段名称;

    自动增加列(前提必须是数值类型)

 

    CREATE TABLE Persons

    (

    P_Id int PRIMARY KEY AUTO_INCREMENT,

        LastName varchar(255),

        FirstName varchar(255),

    )

    默认AUTO_INCREMENT 的开始值是 1,若是但愿修改起始值,则

    ALTER    TABLE    Persons    AUTO_INCREMENT=100

非空约束

 

CREATE TABLE Persons

(

    Id_P int NOT NULL,

    LastName varchar(255) NOT NULL,

    FirstName varchar(255),

)

惟一约束:

三种方式:

方式1:建立表时,在字段描述处,声明惟一:

CREATETABLE Persons

(

    Id_P int    UNIQUE,

    LastNamevarchar(255) NOT NULL,

    FirstNamevarchar(255),

)

方式2:建立表时,在约束区域,声明惟一:

CREATE TABLEPersons

(

    Id_P int,

    LastNamevarchar(255) NOT NULL,

    FirstNamevarchar(255),

    CONSTRAINT 名称UNIQUE (Id_P)

)

方式三:修改表结构

ALTER TABLE Persons ADD [CONSTRAINT 名称] UNIQUE (Id_P)