数据库(二)DDL

前言

本文为在霍格沃兹测试开发学社的学习经历分享,希望有志同道合的小伙伴可以一起交流技术,一起进步~

DDL定义语言

数据库操作

  1. 创建数据库
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS]  数据库名
CHARACTER SET [=] 字符集
  • DATABASE|SCHEMA :指定驱动,只能选择一个

  • IF NOT EXISTS:可选项,创建前先判断,未存在时才执行创建语句

  • CHARACTER SET = 字符集:可选项,用于执行数据库的字符集

数据库命名规则:

  • 不能与其他数据库重名

  • 名称可以由任意字母、阿拉伯数字、下划线和$组成,但不能使用单独的数字

  • 名称最长可用64个字符,别名最长为256个字符

  • 不能使用MySql关键字作为数据库名

  • 建议采用小写来定义数据库名

-- 创建数据库
create DATABASE joker_demo;


-- 指定字符集
create database joker_demo1 character set utf8;

查看数据库

show DATABASES;

选择数据库为当前数据库

USE 数据库名;

查看数据库的定义信息

SHOW CREATE DATABASE 数据库名;

查看当前所有的数据库

show databases;

选择数据库为当前数据库

USE hogwarts_stu;

查看自定义信息

SHOW CREATE DATABASE hogwarts_stu;

修改数据库

ALTER {DATABASE} [数据库名]
CHARACTER SET [=] 字符集

删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

  • IF EXISTS 用于指定在删除数据前,先判断该数据库是否已经存在,避免删除不存在数据库的错误

  • 系统表的数据不要删除,否则会导致数据库无法正常使用

数据库表操作

数字类型

字符串类型

  • mysql处理固定长度的字符串要比长度变化的字符串速度快
日期和时间类型

  • 如果数据不合法,就会用0代替
常用数据类型
  • INT:整型

  • DOUBLE:浮点型

  • VARCHAR:字符串型

  • DATE:日期类型

创建表

语法:

CREATE TABLE 数据表名(
    列名1 属性,
    列名2 属性....
)

列名 数据类型 [NOT NULL | NULL] [DEFAULT 默认值] [ AUTO_INCREMENT] [ PRIMARY KEY] [注释]
  • NOT NULL | NULL:指定是否允许是空值

  • DEFAULT:表示默认值

  • AUTO_INCREMENT:表示是否是自动编号

  • PRIMARY KEY:是否为主键

注意,列名需要是唯一的,创建表前需要先用USE 指定当前数据库

-- 创建表
CREATE TABLE joker_stu(
  id int,
  name varchar(20)
);

复制表

语法

注意:创建的是与原数据表结构相同的表,但是数据不会被复制,创建出来的是空表

查看表

  • show tables;    查看数据库中所有的表名

  • DESCRIBE 数据表名;    查看表的结构

  • DESCRIBE 数据表名 列名;

  • DESC 数据表名;        查看表结构的简写

  • DESC 数据表名 列名;

修改表

  • 添加新列
ALTER TABLE 表名 ADD 列名 列属性;

示例:

-- 选择数据库为当前数据库
USE hogwarts_stu;

-- 给表添加新的列
alter table joker_stu add email varchar(30) not null;

-- 查看表结构
desc joker_stu
  • 修改列定义
ALTER TABLE 表名 MODIFY 列名 列属性;
-- 示例
alter table joker_stu modify score int;
  • 修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;

示例:

-- 修改joker_stu表的name列为stu_name,并指定列的默认值为 student name
alter table joker_stu change column name stu_name varchar(30) default 'student name';
  • 删除列
ALTER TABLE 表名 DROP 列名;

示例:

-- 删除student表中的score列
alter table joker_stu drop score;
  • 修改表名
ALTER TABLE 旧表名 RENAME AS 新表名;

示例:

-- 修改joker_stu 表名改名为stu表
alter table joker_stu rename as stu;

-- 修改stu表改名为stu_table
rename table stu to stu_table;

show tables;

删除表

示例:

-- 选择数据库为当前数据库
USE hogwarts_stu;

-- 创建表
CREATE TABLE joker_stu(
  id int,
  name varchar(20)
);


-- 删除表
drop table if exists joker_stu;

数据库学习笔记目录导航


推荐阅读文章链接:接口测试经典面试题:Session、cookie、token有什么区别?_霍格沃兹测试开发学社的博客-CSDN博客

posted @ 2022-10-23 11:03  北冥有鱼。  阅读(93)  评论(0)    收藏  举报