数据库进阶——DDL语言

1 数据库的管理

1.1 创建数据库

CREATE DATABASE pai08408 CHARSET=utf8;

1.2 删除数据库

DROP DATABASE IF EXISTS pai08408;

1.3 修改数据库

修改数据库的名字

RENAME DATABASE pai08408 TO pai0408; (适用版本)

2 数据库表的管理

2.1 数据库表的创建

create table 表名(

字段名   字段的类型    字段的约束条件,

字段名   字段的类型    字段的约束条件,

字段名   字段的类型    字段的约束条件

)

案例:

create table students(
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY  NOT NULL,
stuname varchar(20),
age smallint unsigned default 0,
gender enum('女','男','女装大佬','人妖','其他'),
height decimal(3,2),
weight decimal(5,2),
cls_id int unsigned default 0
)

2.2 数据库常见的约束类型

not null  非空约束,保证当前的字段不能为空

default    默认,如果当前的字段没有输入数据,使用默认值填充,保证该字段存在默认值

primary key 主键,物理上的存储顺序,保证该字段不能为空,保证数据的唯一性

FOREIGN KEY 外键,限制两张表之间的关系,用来约束当前表与另外一张表之间的关系

unique   唯一值,表示该字段在当前的数据表中不允许出现重复值


外键创建的案例
CREATE TABLE  newstudent(
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY  NOT NULL,
stuname VARCHAR(20),
age SMALLINT UNSIGNED DEFAULT 0,
gender ENUM('女','男','女装大佬','人妖','其他'),
height DECIMAL(3,2),
weight DECIMAL(5,2),
cls_id INT UNSIGNED,
FOREIGN KEY(cls_id) REFERENCES newclass(id)
);
DESC newstudent;

注意点:
创建外键的步骤
(1) 定义外键的字段名以及字段的类型,注意和关联表的字段类型要求一致
(2)建立外键之间的连接FOREIGN KEY(当前表的外键字段) REFERENCES 产生外键关联那张表的表名(外键连接字段)
(3) 班级------学生表  班级(主表) 学生表是从表 外键写从表身上

3 修改数据库表

3.1 删除普通字段

删除性别这个字段
ALTER TABLE users DROP gender;

3.2 删除外键字段

3.2.1 删除在创建表的时候,已经设置约束名的字段

1、先展示一下创建表的语句,查找到创建表的外键的时候起的约束名

[外链图片转存失败(img-JeJHwaPh-1567654607157)(1566550913405.png)]

2、删除

ALTER TABLE users DROP FOREIGN KEY pk;
ALTER TABLE users DROP cls_id;

DESC users;
3.2.2 删除在创建表的时候,没有设置约束名的字段

1、先展示一下创建表的语句,查找到创建表的外键的时候起的约束名

show create table 表名

[外链图片转存失败(img-nMJl9Od3-1567654607160)(1566551162107.png)]

2、删除

ALTER TABLE newstudent DROP FOREIGN KEY newstudent_ibfk_1;
ALTER TABLE newstudent DROP cls_id;
DESC newstudent;
3.2.3 总结
1、查看外键约束的约束名

show create table 表名;

2、解除外键字段的外键约束

alter table 表名  DROP FOREIGN KEY 外键约束名;

alter table 表名 drop  外键字段的字段名

3.3 删除约束


删除唯一值索引,
alter table users drop index uname;

# 删除主键

alter table users drop primary key;

3.4 修改表的字段

1、使用change方法
ALTER TABLE 表名 CHANGE COLUMN 原来的字段名 新的字段名 字段的类型 字段的约束;

2、modify
alter table 表名 modify column 字段名 字段类型 字段的约束;

注意点:
change需要修改的是字段的名称、字段的类型、字段的约束
modify需要修改的是字段的类型、字段的约束

3.5 总结

/*
修改数据表的字段
alter table 表名 add|drop|change|modify   字段名  [类型和约束]

*/

4 复制表结构

/*

复制表结构,仅仅是结构(字段),数据是不复制的
create table 复制表的表名 like  被复制的表的表名;  

*/
CREATE TABLE aaa LIKE users;

DESC aaa;
DESC users;
/*
复制表的结构以及数据
create table 复制表名 select * from 被复制的表 where 引导条件;

*/

CREATE TABLE bbb SELECT * FROM users;

CREATE TABLE ccc SELECT uage,phone FROM users;

CREATE TABLE ddd SELECT uage,phone FROM users WHERE id=1;

CREATE TABLE eee SELECT uage,phone FROM users WHERE 2=3;

5 自增长(标识列)

5.1 目的

不需要手动增加值,让指定的列可以自动增长,系统提供的

5.2 设置初始值与步长

查看相关的属性

SHOW VARIABLES LIKE ‘%auto_increment%’;

查看全局系统变量

SHOW GLOBAL VARIABLES;

设置自增长字段的步长

SET auto_increment_increment=3;
CREATE TABLE test_colum(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
uname  VARCHAR(20)
);

SET auto_increment_increment=10;

SET auto_increment_offset=2;

CREATE TABLE test_colum(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
uname  VARCHAR(20)
);


注意点:
1、设置初始值:SET auto_increment_offset=2;
2、设置步长:SET auto_increment_increment=10;
3、步长与初始值是系统的全局变量,所以一但修改之后,全局都生效,全局受影响
4、一张表有一个自增长字段
5、auto_increment不一定要和主键搭配,但是它一定要和约束搭配
6、auto_increment的数据类型是数值类型的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值