数据库学习(一)——DDL数据库定义语句
定义数据库
创建数据库
- 使用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)。
数据库表中主键有以下两个特征:
- 表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。
- 数据库表中主键的值具有唯一性且不能取空值(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 约束名 约束类型 (字段名)
删除约束条件
- 删除表的主键约束条件语法格式比较简单,语法格式如下
alter table 表名 drop primary key
- 删除表的外键约束时,需指定外键约束名称,语法格式如下(注意需指定外键约束名)。
alter table 表名 drop foreign key 约束名
- 删除表字段的唯一性约束,实际上只需删除该字段的唯一性索引即可,语法格式如下(注意需指定唯一性索引的索引名)。
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数据库定义语句的更多相关文章
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
- 数据库基础之一--DDL(数据库定义语言),DCL(数据库控制语言)
Mysql是一个非常典型的C/S结构的应用模型,所以Mysql连接必须依赖于一个客户端或者驱动. 在linux中支持两种连接模式:TCP/IP模式和socket SQL语句的四部分: DDL:数据定义 ...
- SQL DDL 数据定义语句
前言 DDL(Data Definition Language)语句:数据定义语句,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括 create.drop.al ...
- 数据库学习之mysql数据库
参考链接网站: http://c.biancheng.net/view/2361.html Mysql的版本以及版本号 MySQL Community Server(社区版):该版本完全免费,但是官方 ...
- 数据库学习 day1 认识数据库
从SQL的角度而言,数据库是一个以某种有组织的方式储存的数据集合. 我们可以把它比作一个“文件柜”,这个“文件柜”是一个存放数据的物理位置,不管数据是什么,也不管数据是如何组织的. 下面介绍几个术语 ...
- 数据库学习之简单的SQL语句
1.数据库的结构 1.1数据库 不同数据库叫做Catalog(在有的 DBMS 中也称为 Database,即数据库) .採用多 Catalog 以后能够给我们带 来例如以下优点: 便于对各个 Cat ...
- 数据库学习(三) sql语句中添加函数 to_char,round,连接符||
** to char 是把日期或数字转换为字符串 to date 是把字符串转换为数据库中得日期类型 参考资料:https://www.cnblogs.com/hllnj2008/p/533296 ...
- 吴裕雄--天生自然ORACLE数据库学习笔记:优化SQL语句
create or replace procedure trun_table(table_deleted in varchar2) as --创建一个存储过程,传入一个表示表名称的参数,实现清空指定的 ...
- oracle 数据库学习3 --oracle 数据库中常使用的函数
1.字符函数: ASCII(X) -->返回X字符的ASCII码 concat(x,y)-->将y连接到X上输出 select concat(first_name,last_name) f ...
- SQL数据库学习,常用语句查询大全
数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...
随机推荐
- [FAQ] 修改了Dockerfile 之后,运行 docker-compose up --force-recreate 时还是报之前构建时的错误?
因为 Docker Compose 的 --force-recreate 选项只会强制重新创建容器,而不会重新构建镜像. 因此,如果你修改了Dockerfile,需要确保重新构建新的镜像. 你可以 ...
- Python采集知网
Python爬虫初探 selenium+beautifulsoup4+chromedriver 安装模块:* import pymssql* pip install bs4* pip install ...
- SQL server 游标使用实例
--创建一个游标 DECLARE my_cursor CURSOR FOR SELECT id, Bran_number, Bran_taxis FROM dbo.Base_Branch; --打开游 ...
- Codeforces Round 927 (Div. 3) EFG
E:Link 题意:给定长度小于 \(4 \times 10^5\) 的整数 \(n\),求从 \(0\) 到 \(n\) 各数位变化次数之和. 如:\(n = 12345\) 个位变化 \(1234 ...
- R2_ES中数据的存储测试
基本概念:ES(一): 架构及原理 关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns) Elasticsearch ⇒ 索引(Index) ⇒ 类型(Type) ⇒ 文档(Documen ...
- Spire.Doc 生成长图
按模板生成内容,转换成长图保存: Document doc = new Document("A_BizRpt.docx"); ....... Image[] imgs = doc. ...
- homebrew的安装和使用
目录 背景 安装xcode 安装homebrew 有关报错解决 卸载脚本 homebrew软件搜索 brew 常用命令 brew redis安装 PhpWebStudy安装 安装php 背景 最近用b ...
- SpringBoot-mybatis-plus 分页
前言: 想必数据分页对于每一个程序员并不陌生,针对分页查询功能代码实现上:肯定是代码简洁明了且能达到分页的效果会更好! 现在我将基于SpringBoot - mybatisPlus分页查询的方法总结如 ...
- python教程5:函数编程
函数编程 特性: 1.减少重复代码 2.让程序变的可扩展 3.使程序变得易维护 定义: 默认参数 要求:默认参数放在其他参数右侧 指定参数(调用的时候) 正常情况下,给函数传参数要按顺序,如果不想按 ...
- java学习之旅(day.11)
static详解 static若在类中使用,就是修饰成员变量 static若在方法中使用,就是成员方法? static加在方法上叫静态方法,加在属性上叫做静态属性 package com.zhang. ...