Mysql初级--DDL操作

Mysql的DDL操作

DDL(Data Definition Language):数据定义语言,对数据库和表的创建、删除等动作### 数据库的列举、创建、删除

列举数据库:SHOW
-- 语法
SHOW {DATABASES | SCHEMAS} ;

-- 例:
SHOW DATABASES;
创建数据库:CREATE DATABASE
-- 语法
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [db_option];

-- 例
CREATE DATABASE IF NOT EXISTS db_test CHARSET='utf8';
数据库的切换:USE
-- 语法
USE db_name;

-- 例
USE db_test;
数据库的删除:DROP
-- 语法
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name ;

-- 例
DROP DATABASE IF EXISTS db_test;

数据表的列举、创建、删除

数据表的列举:SHOW
-- 语法:
SHOW TABLES [ IN db_name ];

-- 例
SHOW TABLES IN db_test;
数据表的创建:CREATE
-- 语法
CREATE TABLE [IF NOT EXISTS] [数据库名称.]表名
(
	列名1	类型	[约束] [列的注释] ,
    列名2	类型	[约束] [列的注释] ,
    ……
    列名N	类型	[约束] [列的注释]
    
) [表的配置] [表的注释];
-- 列名、类型必选
-- 约束、列的注释、表的配置和表的注释可选

-- 例
CREATE TABLE IF NOT EXISTS db_test.tb_students
(
    stu_id      varchar(20) PRIMARY KEY AUTO_INCREMENT COMMENT '学生id',
    stu_name    varchar(30) NOT NULL COMMENT '学生姓名',
    stu_birth   date COMMENT '出生日期',
    stu_gender  int COMMENT DEFAULT 0 '性别, 0-女, 1-男',
    stu_stature int COMMENT '身高, 单位cm',
    stu_city    varchar(10) COMMENT '籍贯'
) ENGINE = InnoDB DEFAULT CHARSET = UTF8 COMMENT '学生基础信息表';
  • 常用字段类型:

    • 数值:bit(存0或1)、tinyint、int、bigint、decimal,double

      类型 介绍
      bit 0 或者 1
      tinyint -128 ~ +127, 无符号只算正数:从0开始 到255
      int -2147483648 ~ +2147483647
      bigint -2^63 ~ + 2^63 - 1
      double double(M, D),M总个数,D是小数位,双精度浮点型,16位精度,适合精确度一般的
      decimal decimal(M, D), M最大为65,D最大为30,定点数类型,适合精确度非常高的
    • 字符串:varchar,char,text

      类型 介绍
      char 固定长度,最多255个字符
      varchar 固定长度,最多65535个字符
      text 可变长度,最多65535个字符
    • 日期时间:date, time, datetime

      类型 介绍
      date YYYY-MM-DD
      datetime YYYY-MM-DD HH:mm:ss
      timestamp 时间戳,从1970年1月1日00:00:00到目前为止的秒数
  • 常用约束

    • 主键 primary key:物理上存储的顺序。 MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned。
    • 唯一 unique:此字段的值不允许重复。
    • 非空 not null:此字段不允许填写空值。NULL表示空,注意 null【没有值】 和 ‘null’ 【字符串】 是否一样?
    • 默认 default:当不填写字段对应的值会使用默认值,如果填写时以填写为准。
    • 外键 foreign key:对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常。
数据表的描述:DESC
-- 语法
DESC [db_name.]tb_name ;

-- 例
DESC db_test.tb_students;
数据表的删除与清空
-- 数据表的删除
-- 语法
DROP TABLE [IF EXISTS] [db_name.]tbname ;
-- 例
DROP TABLE IF EXISTS db_test.tb_students;

-- 数据表的清空
-- 语法
TRUNCATE [db_name.]tbname
-- 例
TRUNCATE db_test.tb_students;
数据表的修改
-- 语法
-- 添加
ALTER  TABLE  表名  ADD  列名  类型(长度)  [约束];
-- 修改
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) 约束;
-- 删除
ALTER TABLE 表名 DROP 列名;

-- 例
-- 给 students 增加一列 stu_weight 体重,单位KG
ALTER TABLE db_test.tb_students ADD stu_weight double not null;

-- 给 students 的性别列修改为tinyint类型
ALTER TABLE db_test.tb_students CHANGE stu_gender stu_gender tinyint(4);

-- 删除 students 的stu_weight 列
ALTER TABLE db_test.tb_students DROP stu_weight;

你可能感兴趣的:(MySQL,mysql,数据库,sql)