创建数据库表及修改删除数据表字段

创建数据库表

    例:

        目标:创建一个school数据库

        创建学生表(列,字段)        使用SQL语句创建

        要求:学号int、姓名varchar、密码varchar、生日datetime、家庭住址adress、邮箱varchar;学号为主键;引擎为innoDB;字段为utf-8

CREATE TABLE IF NOT EXISTS `student` (
    `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
    `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    `sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
    `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    `adress` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
    `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8 

创建数据库表及修改删除数据表字段_第1张图片

    注意:NOT不要写成NO

    格式:

CREATE TABLE [IF NOT EXISTS] `表名`(

        `字段名` 列类型 [属性] [索引] [注释],

        `字段名` 列类型 [属性] [索引] [注释],

        ........

        `字段名` 列类型 [属性] [索引] [注释]

)[表类型] [字符集设置] [注释]

    小结:

        1.使用英文括号(),表的名称和字段尽量使用 ` ` 括起来

        2.ATUO INCREMENT 自增

        3.所有语句后面加英文逗号(,) ,最后一个语句不用加

        4.PRIMARY KEY 是主键,一般一个表只有唯一的一个主键

        5.每个表都必须存在以下五个字段,表示一个记录存在的意义。(id 主键、`version` 乐观锁、is_delete 伪删除、gmt_create 创建时间、gmt_update 修改时间)

        6.字符集编码不设置的话,会是默认的Latin1(不支持中文!)。可在MySQL文件夹中的my.ini中配置默认的编码(character-set-server=utf8),一般不建议配置


查看修改删除表

    查看创建语句

--查看创建数据表的语句
SHOW CREATE DATABASE school

--查看student数据表的定义语句
SHOW CREATE TABLE student

--显示表的结构
DESC student

    修改

-- 修改表 ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1
 
-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)
 
-- 修改表的字段 (重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束
 
--ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacher1 CHANGE age age1 INT(1) -- 字段重命名

    删除

-- 删除表的字段:ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1
 
-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1

小结:

  • 所有的创建和删除操作尽量加上判断,以免报错
  • SQL关键字大小写不敏感,建议大家小写
  • 所有的符号都用英文
  • IF EXISTS 判断
  • change用来字段重命名,不能修改字段类型和约束
  • modify不用来字段重命名,只能修改字段类型和约束

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