一、数据定义语言(Data Definition Language)的基本操作

定义数据库、表等,包括CREATE语句、ALTER语句、DROP语句。CREATE语句用于创建数据库、数据表等,ALTER语句用于修改表的定义等,DROP语句用于删除数据库、删除表等
# 查看所有数据库名称:
show databases; # 切换数据库;切换到test数据库:
use information_schema; # 显示所有表:
show tables; # 查询表内容:
select * from CHARACTER_SETS;

二、DDL数据库的操作

2.1 创建数据库

CREATE DATABASES 库名字 CHARSET 字符集;

# 规范:关键字一般大写,库名字小写,使用utf8字符集
CREATE DATABASE testdb charset utf8; # 如果这个数据已经存在,那么会报错database exists
create database student;
# 如果不存在创建,存在就不创建!
create database if not exists student;

忽略大小写参数:可以设置MySQL忽略大小写(全部变成小写),设置前提,是在规划数据库时就加上。如果后期加上,可能会导致use不到大写的库。

show variables like '%lower%';
# 将值设置为1,忽略大写小
lower_case_table_names = 1

2.2 删除数据库

DROP DATABASE student;
# 如果存在删除,不存在就不删除
drop database if exists student;
# 删除名为test999的数据库。如果这个数据库不存在,那么会报错 database doesn't exist
drop database student;

2.3 修改数据库的字符集

注意:修改后的字符集必须是前者的严格超集。修改有风险,编码不匹配会出现乱码。

ALTER DATABASE student CHARSET utf8mb4;

三、DDL表的定义

3.1 创建表的语法

help create table;

创建表 CREATE TABLE 表名
(
字段名1,数据类型[完整性约束条件],
字段名2,数据类型[完整性约束条件],
...
字段名n,数据类型[完整性约束条件]
);

3.2数据类型

数值类型

日期和时间类型

字符串类型

3.3 约束条件

PRIMARY KEY    # 主键约束,用于唯一标识对应的记录
FOREING KEY    # 外键约束
NOT NULL # 非空约束
UNIQUE      # 唯一性约束
DEFAULT # 默认值约束,用于设置字段的默认值

3.4 示例

use webdb;
-- DROP TABLE t1;
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',
NAME VARCHAR(20) NOT NULL COMMENT '学生姓名',
age TINYINT COMMENT '学生年龄',
gender ENUM('m','f') NOT NULL DEFAULT 'm' COMMENT '学生性别',
birthday DATETIME DEFAULT NOW() COMMENT '入学时间',
telnum varchar(12) NOT NULL UNIQUE COMMENT '手机号码');

3.5 查看表及表结构

# 查看所有表
SHOW TABLES; # 查看t1表结构
DESC t1; # 查看创建表语句
show create table t1;

3.7 修改表名

# 将t1表名称修改为frist_grade
ALTER TABLE t1 RENAME frist_grade;

3.8  修改字段名称

# 修改字段名 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
ALTER TABLE frist_grade CHANGE birthday bir datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入学时间';

3.9 修改字段类型

# 修改字段的数据类型 ALTER TABLE 表名 MODFIY 字段名 数据类型;
# 将NAME的长度修改为30
ALTER TABLE frist_grade MODIFY NAME varchar(30);

3.10 添加字段

# 添加字段 ALTER TABLE 表名 ADD 新字段名 数据类型;

# 在表的末尾增加一列
ALTER table frist_grade ADD wechat VARCHAR (20) NOT NULL UNIQUE; # 指定位置添加列,在birthday后面添加一个email列
ALTER TABLE frist_grade ADD email VARCHAR(50) NOT NULL AFTER birthday; # 在第一列位置,添加idcard列
ALTER TABLE frist_grade ADD idcard VARCHAR(20) not NULL FIRST;

3.11 删除字段列

一定要认真审核,反复和开发人员确认,删除列时,会将此列原有数据全部清除掉。删除之前要备份

# 删除字段 ALTER TABLE 表名 DROP 字段名;
ALTER TABLE frist_grade DROP hobby;

3.12 删除表

DROP TABLE frist_grade;

最新文章

  1. 51Nod--1010 只包含235的数
  2. jdbc-批量插入、批量删除、批量更新
  3. Android万能使用WebServices(不用引入外部包)
  4. Android开发学习之路-Android Design Support Library使用(CoordinatorLayout的使用)
  5. [转]Theano下用CNN(卷积神经网络)做车牌中文字符OCR
  6. Install eclipse groovy plugin
  7. 『重构--改善既有代码的设计』读书笔记----Replace Array with Object
  8. WPF学习(一)控件的公共属性
  9. GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
  10. Android开发中EditText的点击Enter键焦点改变处理(获取焦点和失去焦点交互变化)
  11. nginx服务器配置/websocket nginx 配置笔记
  12. flask token认证
  13. OAuth2.0介绍
  14. 2018年JavaScript现状报告
  15. SQL Server 2008 R2 链接 Oracle
  16. 解释器模式 Interpreter
  17. UVALive - 4636 Cubist Artwork(贪心)
  18. list的方法、操作
  19. 今日头条、抖音、西瓜、火山、微视、陌陌等自媒体平台小视频批量下载工具v1.1.0(视频搬运福利)
  20. fast-dfs

热门文章

  1. jvm内存结构及对象漫谈(较全)
  2. python中多线程相关
  3. 4-ESP8266 SDK开发基础入门篇--串口
  4. [LeetCode] 914. X of a Kind in a Deck of Cards 一副牌中的X
  5. [LeetCode] 38. Count and Say 计数和读法
  6. Windows开机自动登陆 开/关:登录需按Ctrl+Alt+del的功能
  7. 挂载ESP(EFI)分区到Windows,并让资源管理器有权限读写
  8. classLoader双亲委托与类加载隔离
  9. Maven介绍及环境搭建
  10. Python 遍历目录下的子目录和文件