数据库基础-MySql8.0(第一篇)--DDL语句
发布日期:2021-05-06 03:20:48 浏览次数:17 分类:技术文章

本文共 3418 字,大约阅读时间需要 11 分钟。

MySql基础篇

学习目的:

实现数据持久化到本地;

使用完整的管理系统统一管理,可以实现结构化查询,方便管理;

数据库的相关概念

DB:数据库(DataBase)存储数据的容器,它保存了一系列有组织的数据。

DBMS:数据库管理系统(DataBase Management System)又称为数据库软件或数据库产品,用于创建或管理DB。
SQL:结构化查询语言(Structure Query Language)用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据 库软件通用的语言。

MySql语法规范

-- 单行注释-- sql语言中不区分大小写/*多行注释*//*DDl:数据定义语言,也是属于sql,只是按照功能划分*/

数据定义语言DDL

创建删除数据库

-- 创建数据库CREATE DATABASE IF NOT EXISTS school_db CHARSET utf8-- 删除数据库DROP DATABASE school_db-- 修改数据库字符编码ALTER DATABASE school_db CHARSET utf8-- 数据库名一旦给定,不能更改

设计表

在数据库中数据以表为单位来存储

设计表:
表名(存储的信息,一个表存储一类信息)
字段
数据类型,长度
约束

-- 创建表,不添加任何约束CREATE TABLE t_student(	num INT,	NAME VARCHAR(10),	sex CHAR(1),	birthday DATE,	grade INT,	score DOUBLE(4,1),	mobile CHAR(11),	reg_time DATETIME);-- 删除表DROP TABLE t_student-- 创建表,添加约束和注释/*   约束:   主键约束:一个表中只能有一个主键,不能为空,不能重复   唯一约束:一个表中可以有多个重复,可以为空   不能为空:可以有多个重复   AUTO_INCREMENT 主键自动增长,数据类型必须为整数*/CREATE TABLE t_student(	num INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',	NAME VARCHAR(10) NOT NULL COMMENT '姓名',	sex CHAR(1) CHECK(sex='女' OR sex='男') COMMENT '性别',	birthday DATE COMMENT '生日',	grade INT COMMENT '班级',	score DOUBLE(4,1) CHECK(score>=0 AND score <=100) COMMENT '成绩',	mobile CHAR(11) UNIQUE COMMENT '手机号',	reg_time DATETIME COMMENT '注册时间');-- 创建表,不添加任何约束,通过ddl语句,修改表结构CREATE TABLE t_student(	num INT,	NAME VARCHAR(10),	sex CHAR(1),	birthday DATE,	grade INT,	score DOUBLE(4,1),	mobile CHAR(11),	reg_time DATETIME)-- 添加主键约束       -- ALTER TABLE  表名  ADD  PRIMARY KEY(列名)    ALTER TABLE  t_student  ADD  PRIMARY KEY(num)   -- 删除主键约束-- ALTER TABLE 表名  DROP PRIMARY KEY   ALTER TABLE t_student  DROP PRIMARY KEY   -- 设置自动增长-- ALTER TABLE  表名  MODIFY  列名  类型  AUTO_INCREMENT   ALTER TABLE  t_student  MODIFY  num  INT  AUTO_INCREMENT   -- 删除自动增长-- ALTER TABLE  users  MODIFY    列名  类型 ;    ALTER TABLE  t_student  MODIFY    num INT    -- 设置不能为空-- ALTER TABLE   表名  MODIFY  列名  类型  NOT NULL;    ALTER TABLE   t_student  MODIFY  NAME  VARCHAR(10)  NOT NULL  -- 设置可以为空   -- ALTER TABLE 表名 MODIFY    列名    类型  NULL;   ALTER TABLE t_student MODIFY    NAME    VARCHAR(10)  NULL   -- 添加唯一约束-- ALTER TABLE 表名  ADD CONSTRAINT 约束名 UNIQUE(列名)   ALTER TABLE t_student  ADD CONSTRAINT mobile_unique UNIQUE(mobile)   -- 通过约束名删除约束   -- ALTER TABLE 表名 DROP INDEX 约束名;   ALTER TABLE t_student DROP INDEX mobile_unique   -- 添加检查约束-- ALTER TABLE  表名 ADD CONSTRAINT 约束名 CHECK(条件)   ALTER TABLE  t_student ADD CONSTRAINT score_check CHECK(score>=0 AND score<=100)-- 删除check约束-- ALTER TABLE 表名  DROP CHECK  约束名;   ALTER TABLE t_student DROP CHECK  score_check      -- 添加列-- ALTER  TABLE  表名  ADD   列名 数据类型   ALTER  TABLE  t_student  ADD   address VARCHAR(50) NOT NULL   -- 删除列-- ALTER TABLE  表名  DROP 列名   ALTER TABLE  t_student DROP address   -- 在第一列添加列   -- ALTER  TABLE  表名  ADD   列名 数据类型 FIRST   ALTER  TABLE  t_student  ADD   address VARCHAR(50) FIRST   -- 在指定列后添加列-- ALTER  TABLE  表名  ADD   列名 数据类型 AFTER 列名   ALTER  TABLE  t_student  ADD   address VARCHAR(50) AFTER mobile-- 修改列名-- ALTER TABLE    表名    CHANGE    旧列名   新列名    数据类型   ALTER TABLE    t_student    CHANGE    mobile   phone    VARCHAR(11)   -- 修改列的数据类型-- ALTER TABLE   表名  MODIFY   列名  新数据类型   ALTER TABLE   t_student  MODIFY   address  VARCHAR(40)   -- 表结构修改语法-- alter table 表名 add/drop/change/modify(修改)-- 删除表	DROP TABLE t_student-- 修改表名-- RENAME   TABLE  旧表名    TO   新表名   RENAME   TABLE  t_student   TO   student   -- 复制表结构-- CREATE TABLE  新表名 LIKE 被复制表名;   CREATE TABLE  stu LIKE student
上一篇:数据库基础-MySql8.0(第二篇)--DML和DQL
下一篇:内部类

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年03月22日 06时59分01秒