请选择 进入手机版 | 继续访问电脑版

SQL:DDL(定义型)语句集合

数据库基础  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2020-2-3

跳转到指定楼层

Sql的定义型语句,主要是针对数据库、数据表的定义过程,包括数据库、数据表的增删改查等


一、数据库操作

1.增加:create database {库名}:创建数据库;
create database if not exists {库名}:若已存在则跳过;
create database if not exists {库名} character set utf-8:
2.删除:drop database {库名}:删除数据库;
3.修改:alter database {name} character set utf-8:修改数据库属性;
4.查询:show databases:显示所有的数据库;
    show create database {库名}:显示某个库的信息;

二、数据表操作

1.进入数据库:use {db_name}:可以通过变数据库进入不同的库中(对数据表进行操作,一定要先进入某一个数据库:use db_name,不然无法操作);
2.一个数据表中:主键,非空且唯一;
3.创建一个表:
  create table employee(
            id int primary key auto_increment ,
            name varchar(20),
            gender bit default 1,   -- gender char(1)  default 1   -----    或者 TINYINT(1)
            birthday date,
            entry_date date,
            job varchar(20),
            salary double(4,2) unsigned,
            resume text    -- 注意,这里作为最后一个字段不加逗号
          );
/* 约束:
       primary key (非空且唯一)  :能够唯一区分出当前记录的字段称为主键!
       unique
       not null
       auto_increment 主键字段必须是数字类型。
       外键约束 foreign key  */
4.查看表信息:
    desc tab_name 查看表结构
    show columns from tab_name  查看表结构
    show tables 查看当前数据库中的所有的表
    show create table tab_name    查看当前数据库表建表语句

5.修改表信息:
   -- (1)增加列(字段)
      alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
      alter table user add addr varchar(20) not null unique first/after username;
      #添加多个字段
      alter table users2
            add addr varchar(20),
            add age  int first,
            add birth varchar(20) after name;

   -- (2)修改一列类型
      alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
      alter table users2 modify age tinyint default 20;
      alter table users2 modify age int  after id;

   -- (3)修改列名
      alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
      alter table users2 change age Age int default 28 first;

   -- (4)删除一列
      alter table tab_name drop [column] 列名;
      -- 思考:删除多列呢?删一个填一个呢?
      alter table users2
            add salary float(6,2) unsigned not null after name,
            drop addr;   

   -- (5)修改表名
      rename table 表名 to 新表名;
   -- (6)修该表所用的字符集   
      alter table student character set utf8;

6.删除表
    drop table tab_name;

7. 添加主键,删除主键
    alter table tab_name add primary key(字段名称,...)
    alter table users drop primary key;

    eg:
    mysql> create table test5(num int auto_increment);
    ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
    create table test(num int primary key auto_increment);
    -- 思考,如何删除主键?
    alter table test modify id int;   -- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句
    alter table test drop primary key;-- 仅仅用这句也无法直接删除主键

8.唯一索引
    alter table tab_name add unique [index|key] [索引名称](字段名称,...)

    alter table users add unique(name)-- 索引值默认为字段名show create table users;
    alter table users add unique key user_name(name);-- 索引值为user_name

    -- 添加联合索引
    alter table users add unique index name_age(name,age);#show create table users;

    -- 删除唯一索引
    alter table tab_name drop {index|key} index_name





上一篇:数据库简介,及数据库控制语言SQL介绍
下一篇:SQL:DML(操作型)语句集合
转播转播 分享淘帖
回复

使用道具

成为第一个回复人

AI产品经理
小黑屋|AI产品经理社 |京ICP备19051683号-1
Powered by 长弓PM   © 2019-2050