MySQL数据库上:DDL语句的基础巩固

SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言。

数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。一个数据库模式包含该数据库中所有实体的描述定义。数据库模式定义语言并非程序设计语言,DDL数据库模式定义语言是SQL语言(结构化程序设计语言)的组成部分。

下面给出一个完整的DDL语句练习过程,在MySQL6测试通过:

//创建数据库
create database if not exists mydb;
//删除数据库
 drop database mydb;
//使用数据库
use mydb;
//建表
 create table tb1
 (
 id int,
 name varchar(255) default 'anonymity',
 info text
 );

//查看该数据库的表
 show tables;
 //查看表结构
 desc tb1;
 //截断表:删除表内所有数据但是保留表结构。(DDL)相对于delete(DML)执行效率更高
 truncate tb1;
 //添加主键约束
 alter table tb1 modify id int primary key;
 //添加唯一约束,即不允许出现重复值,但是可以出现多个null,因为null不等于null
 alter table tb1 modify name varchar(255) unique;

 //建表并添加主键、外键约束
 create table tb2
 (
 id int primary key auto_increment,
 fid int,
 name varchar(255) default 'anonymity' not null,
 info text,
 #建立外键约束,约束名为tb2_fk,
 constraint tb2_fk foreign key(fid) references tb1(id)
 );
 //删除外键约束
 alter table tb2 drop foreign key tb2_fk;
 //添加外键约束
 alter table tb2 add foreign key(fid) references tb1(id);

MySQL对check约束的支持并不太好,虽然可以定义此约束,单没有任何作用

 //添加check约束,会添加成功,但不会生效
 alter table tb1 add check(id>5);
 //下面可以正常执行
 insert into tb1 values(1,'a','one');

而Oracle数据库可以正常使用check约束,下面是Oracle 10g 的运行效果:

 //oracle数据库支持check约束
 create table tb3
(
id number(8),
name varchar(255),
check(id>100)
);
//不满足check约束将会出错
insert into tb3 values(600,'six');
insert into tb3 values(6,'six');

下面是控制台的输出:

-------------------------------------------------------------------------------------
SQL> create table tb3
  2  (
  3  id number(8),
  4  name varchar(255),
  5  check(id>100)
  6  );
Table created

SQL> insert into tb3 values(6,'six');
insert into tb3 values(6,'six')
ORA-02290: check constraint (SCOTT.SYS_C005457) violated

SQL> insert into tb3 values(600,'six');
1 row inserted
-------------------------------------------------------------------------------------
时间: 2024-10-11 14:38:36

MySQL数据库上:DDL语句的基础巩固的相关文章

MySQL数据库 上

MySQL数据库 (上) MySQL数据类型:数值类型.日期和时间类型.字符串类型 1.数值类型 注:BIT数据类型保存位字段值,并且支持MyISAM.MEMORY.InnoDB和BDB表 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 77

Mysql数据库上修改日期-->造数据

这次要给客户安装测试ineedle设备,但是安装后不会立刻有数据显示,不能够全面的展示给用户web界面的一些信息.此时需要有一个公网服务器能够展示一下ineedle统计数据,但是公司58设备上没有流量了,近期的数据没有更新了,所以准备将数据库中实际数据抽出几天的更改一下日期,使其展示ineedle的web界面上.最新的七天数据是2015.07.27--2015.08.02这7天的数据,正好一个星期.计划是将2015.07.27-2015.08.02修改为2015.10.19-2015.10.25

MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于excel),用来存放多行内容/多条记录 5. 记录:事物一系列典型的特征 6. 数据:描述事物特征的符号 MySQL数据库就是一个套接字软件,用来管理其他机器上的数据文件 MySQL介绍: MySQL是一个关系型数据库管理系统:就是一个基于socket编写的C/S架构胡软件 客户端软件 mysql

5 详解MySQL数据库之更新语句

用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之 意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT.UPDATE以及DELETE.在MySQL中又多了一个REPLACE语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句. 一.INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据.这两条语句的语法类似.它们的主要区别是如何处理重复的数据

mysql存储过程执行ddl语句

根据业务需要,需要在存储过程自动创建表 CREATE PROCEDURE parameter_split(in table_name VARCHAR(30),in start_time BIGINT(16),in end_time BIGINT(16)) BEGIN -- 得到时间 DECLARE table_year VARCHAR(5); DECLARE table_month VARCHAR(3); DECLARE table_day VARCHAR(3); -- 按开始时间设置年月日,并

mysql数据库之sql 语句

mysql数据库命名规则(标识符规则): 不能和已存在的命名重名: 由大小写字母.数据.下划线.@.# 和 $ 符号组成: 首字母不能是数字和$符. 不允许有空格和特殊字符. 不允许是mysql的保留字. 长度不小于128位. 在执行sql语句时,可以用";"."\g" 或"\G" 符号表示语句结束.但"\G" 的显示效果更美观. 创建数据库:create database database_name 查看数据库:show d

Python连接MySQL数据库执行sql语句时的参数问题

由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入字符串 try: connection = MySQLdb.connect(user="secsel",passwd="[email protected]",host="192.168.138.55",db="anbench")

Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

问题: 在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字'); 会出现如下提示:  Query OK, 1 row affected, 1 warning (0.00 sec)    表明出现错误,没有插入成功,然后执行select * from 表名   就会出现如下的问题:显示的表中出现乱码或者问号. 如图: 解决方案: 首先重新打开一个终端窗口(方便操作),进入root用户模式 执行

mysql数据库学习(一)--基础

一.简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一. MySQL是一种数据库管理系统. MySQL是一种关联数据库管理系统. MySQL软件是一种开放源码软件. MySQL数据库服务器具有快速.可靠和易于使用的特点. MySQL