定义数据库

创建数据库

  • 使用CRETE DATABASE关键字,指定编码和排序格式
    CREATE DATABASE
    mysqldb
    DEFAULT CHARACTER SET
    utf-8
    DEFAULT COLLATE
    utf8_unicode_ci;
  • 使用IF NOT EXITS关键字
    CREATE DATABASE
    IF NOT EXITS
    mysqldb

查看数据库

  • 查看数据库

    show databases;
  • 查看数据库编码

    select schema_name,default_character_set_name
    from information_schema.schemata
    where schema_name = 'test';
  • 查看数据库的相关信息(MySQL版本ID号、默认字符集等信息)。

    show create database mysqldb;

删除数据库

drop database mysqldb;

定义表

设计表

  • 主键(Primary Key)

    数据库表要求表中的每一行记录都必须是唯一的,即在同一张表中不允许出现完全相同的两条记录。在设计数据库时,为了保证记录的“唯一性”,最为普遍、最为推荐的做法是为表定义一个主键(primary key)。

数据库表中主键有以下两个特征:

  1. 表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。
  2. 数据库表中主键的值具有唯一性且不能取空值(NULL),当数据库表中的主键由多个字段构成时,每个字段的值不能取NULL值。
  • 实体间的关系与外键(Foreign Key)

    班级实体和班主任实体之间为一对一关系,班级实体和学生实体之间为一对多关系,学生实体和课程实体之间为多对多关系。

    实体间的关系可以通过外键来表示。如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键。此时存储在表A中字段a的值,同时这个字段值也是表B主键b的值。
  • 约束: Constraint

    是定义在表上的一种强制规则。

    当为某个表定义约束后,对该表做的所有SQL操作都必须满足约束的规则要求,否则操作将失败。

约束类型

约束类型 描述
frimary key 主键约束,表的每一行的唯一标识,指定列或者列组合的所有行数据必须唯一,且不为空
unique 唯一性约束,指定列或者列组合的所有行数据必须唯一
not null 非空约束,指定某列的所有行数据不能包含空值
foreign key 外键约束,在列及引用列上建立的一种强制依赖关系
check 检查性约束,在列上指定一个必须满足的条件

数据类型

创建表

create table 表名(
字段名1 数据类型 [约束条件],

[其他约束条件],
[其他约束条件]
)其他选项(例如存储引擎、字符集等选项);

注意

  • PRIMARY KEY,指定字段为主键。
  • AUTO_INCREMENT,指定字段为自动增加字段。
  • INDEX,为字段创建索引。
  • NOT NULL,字段值不允许为空。
  • NULL,字段值可以为空。
  • COMMENT,设置字段的注释信息。
  • DEFAULT,设置字段的默认值。

复制表

  • 使用like关键字,只复制表结构,不复制记录
    create table
    tablename
    like
    tablenme;
  • 使用select关键字,可以实现表结构的复制,甚至可以将源表的表记录拷贝到新表中
    create table
    tablename
    select
    (字段名)
    from tablename;

删除表

deop table tablename;

修改表

使用alter table关键字,完成修改表的结构,包括添加列、修改列属性和删除列等操作!

  • 修改列字段或属性modify关键字
    ALTER TABLE 表名 MODIFY 列名 新数据类型和长度  新列属性
  • 新增列add关键字
    ALTER TABLE 表名 ADD 列名 数据类型和长度 列属性
  • 删除列列名drop colum关键字
    ALTER TABLE 表名 DROP COLUMN 列名

注意:

在使用modify关键字修改默认值时,需要提供数据类型和长度

  • 新增约束条件

    alter table 表名 add constraint 约束名 约束类型 (字段名)
  • 删除约束条件

    1. 删除表的主键约束条件语法格式比较简单,语法格式如下
      alter table 表名 drop primary key
    2. 删除表的外键约束时,需指定外键约束名称,语法格式如下(注意需指定外键约束名)。
      alter table 表名 drop foreign key 约束名
    3. 删除表字段的唯一性约束,实际上只需删除该字段的唯一性索引即可,语法格式如下(注意需指定唯一性索引的索引名)。
      alter table 表名 drop index 索引名;
  • 修改表的属性

    alter table 表名 engine=新的存储引擎类型
    alter table 表名 default charset=新的字符集
    alter table 表名 auto_increment=新的初始值
    alter table 表名 pack_keys=新的压缩类型
  • 修改表名

    alter table tablename to name;
    或者
    alter table tablename rename name;

数据库学习(一)——DDL数据库定义语句的更多相关文章

  1. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  2. 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)

    Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...

  3. SQL DDL 数据定义语句

    前言 DDL(Data Definition Language)语句:数据定义语句,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括 create.drop.al ...

  4. 数据库学习之mysql数据库

    参考链接网站: http://c.biancheng.net/view/2361.html Mysql的版本以及版本号 MySQL Community Server(社区版):该版本完全免费,但是官方 ...

  5. 数据库学习 day1 认识数据库

    从SQL的角度而言,数据库是一个以某种有组织的方式储存的数据集合. 我们可以把它比作一个“文件柜”,这个“文件柜”是一个存放数据的物理位置,不管数据是什么,也不管数据是如何组织的. 下面介绍几个术语 ...

  6. 数据库学习之简单的SQL语句

    1.数据库的结构 1.1数据库 不同数据库叫做Catalog(在有的 DBMS 中也称为 Database,即数据库) .採用多 Catalog 以后能够给我们带 来例如以下优点: 便于对各个 Cat ...

  7. 数据库学习(三) sql语句中添加函数 to_char,round,连接符||

    ** to char 是把日期或数字转换为字符串  to date 是把字符串转换为数据库中得日期类型  参考资料:https://www.cnblogs.com/hllnj2008/p/533296 ...

  8. 吴裕雄--天生自然ORACLE数据库学习笔记:优化SQL语句

    create or replace procedure trun_table(table_deleted in varchar2) as --创建一个存储过程,传入一个表示表名称的参数,实现清空指定的 ...

  9. oracle 数据库学习3 --oracle 数据库中常使用的函数

    1.字符函数: ASCII(X) -->返回X字符的ASCII码 concat(x,y)-->将y连接到X上输出 select concat(first_name,last_name) f ...

  10. SQL数据库学习,常用语句查询大全

    数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...

随机推荐

  1. 深入解析 Dubbo 3.0 服务端暴露全流程

    ​简介: 随着云原生时代的到来,Dubbo 3.0 的一个很重要的目标就是全面拥抱云原生.正因如此,Dubbo 3.0 为了能够更好的适配云原生,将原来的接口级服务发现机制演进为应用级服务发现机制. ...

  2. [FAQ] PHPStorm None project files detection

    当你发现在 phpstorm 中编辑项目文件,却提示 None project files detection.. 并且左侧 Project 下面只有文件,没有项目目录了. 此时可以删除项目目录下的 ...

  3. [Py] Python 的 shape、reshape 含义与用法

    shape 方法用于查看数据是几行几列的. reshape 方法用于不更改数据的情况下,重新把数据进行规划成指定的行数和列数. .reshape(-1, 1)  -1 表示自动,1 表示整理成 1 列 ...

  4. WPF 已知问题 开启 IsManipulationEnabled 之后触摸长按 RepeatButton 不会触发连续的 Click 事件

    本文记录 WPF 的一个已知问题,在 RepeatButton 上开启 IsManipulationEnabled 漫游支持之后,将会导致触摸长按到 RepeatButton 之上时,不会收到源源不断 ...

  5. dotnet 警惕 Task 的 ContinueWith 带上 OnlyOnFaulted 参数抛出取消异常

    本文记录 dotnet 的一个令人迷惑的设计,在 Task 里,有一个叫 ContinueWith 的方法,此方法可以在 Task 完成时执行传入的委托.在 ContinueWith 方法里面,还有一 ...

  6. WPF 实现自定义的笔迹橡皮擦

    本文来告诉大家使用比较底层的方法来实现 WPF 的笔迹橡皮擦 在 WPF 里面,对于笔迹来说,应该放在 Stroke 类里面,而不是作为点的集合存储.在 Stroke 类里面将作为管理笔迹的类提供笔迹 ...

  7. k8s之dns问题

    问题1: 描述:pod新建好后,无法ping通域名(无论是外网域名还是内网域名),但是可以ping通IP(包含外网IP和内网IP),不包括kube-dns的IP,和pod同一网段IP可以ping通 # ...

  8. Solution Set - 线段树

    A[洛谷P5787]无向图,每条边有一个出现时段,求每个单位时段图是否是二分图. B[洛谷P5227]无向图,询问删除一个边集后是否连通. C[洛谷P3733]连通无向图,边有权,加边.修改(增加的边 ...

  9. Dinky实时计算平台

    前言:Apache Flink 作为新一代的实时计算框架已经被应用到各个行业与领域,其岂存在着应用的痛点比如 FlinkSQL 在线IDE.作业提交不友好.作业无监控报警等.很大程度上说,FlinkS ...

  10. fastposter v2.8.1 发布 电商海报生成器

    fastposter v2.8.1 发布 电商海报生成器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.二维码海报,图片海报,分享海报,二维 ...