MySQL基础之写表(创建表)
工具
市面上的SQL可视化工具不少,我一般常用的主要就是这两个。
当然,IDEA也是集成了数据库可视化功能的。除了这些,还有DBeaver、SQLyog等等。
我比较喜欢DataGrip,我就用这个演示了。不过这个的界面就没有Navicat优美了,不过个人感觉功能强大许多。
写表
这里,我已经创建好了一个Demo数据库。
我们先来了解一下创建表的语法。
创建表
USE Demo;
# 语法如下
# CREATE TABLE [IF NOT EXISTS] 表名(字段内容)
CREATE TABLE IF NOT EXISTS class(
Id INT(4) COMMENT 'ID号',
Name VARCHAR(10) COMMENT '姓名'
);
IF NOT EXISTS可以省略不写。
CREATE TABLE class(
Id INT(4) COMMENT 'ID号',
Name VARCHAR(10) COMMENT '姓名'
);
记住**CREATE TABLE**用于创建表。
创建字段
()里面是表的字段,写入字段的格式如下。
# 字段名 数值类型 COMMENT '字段备注'
Id INT(4) COMMENT 'ID号',
Name VARCHAR(10) COMMENT '姓名'
- 如果数值类型要设置长度,我们可以在后面接上
(),里面填入长度值。 COMMENT关键词是用于创建字段的对应备注,备注必须在其后。
字段约束与属性设置
我们可以通过某些关键词为字段设置约束与某些属性。
Id INT(4) COMMENT 'ID号' PRIMARY KEY ,
id INT(4) COMMENT 'ID号' PRIMARY KEY AUTO_INCREMENT NOT NULL UNIQUE KEY
比如,PRIMARY KEY关键词可以将字段设置为主键。
位置可变!对应语法格式即可,字段 数据类型 [ 字段属性 | 约束 ] [ 索引 ] [ 字段备注 ] 。
| 约束或属性 | 说明 |
|---|---|
| 主键约束 | PRIMARY KEY |
| 外键约束 | FOREIGN KEY |
| 非空约束 | NOT NULL |
| 自动增长 | AUTO_INCREMENT |
| 唯一约束 | UNIQUE KEY |
| 默认约束 | DEFAULT |
对于这些约束,需要知道详细作用的话,请前往浏览器查看,嘿嘿!
常见数据类型
数值类型
| 类型 | 大小 | 用途 |
|---|---|---|
| TINYINT | 1 Bytes | 小整数值 |
| SMALLINT | 2 Bytes | 大整数值 |
| MEDIUMINT | 3 Bytes | 大整数值 |
| INT或INTEGER | 4 Bytes | 大整数值 |
| BIGINT | 8 Bytes | 极大整数值 |
| FLOAT | 4 Bytes | 单精度 浮点数值 |
| DOUBLE | 8 Bytes | 双精度 浮点数值 |
| DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 小数值 |
日期类型
| 类型 | 大小 ( bytes) | 格式 | 用途 |
|---|---|---|---|
| DATE | 3 | YYYY-MM-DD | 日期值 |
| TIME | 3 | HH:MM:SS | 时间值或持续时间 |
| YEAR | 1 | YYYY | 年份值 |
| DATETIME | 8 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
| TIMESTAMP | 4 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
字符串类型
| 类型 | 大小 | 用途 |
|---|---|---|
| CHAR | 0-255 bytes | 定长字符串 |
| VARCHAR | 0-65535 bytes | 变长字符串 |
| TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
| TINYTEXT | 0-255 bytes | 短文本字符串 |
| BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
| TEXT | 0-65 535 bytes | 长文本数据 |
| MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
| MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
| LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
| LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
MySQL基础之写表(创建表)的更多相关文章
- mysql控制台入门级--简单的创建表,字段。。。(用于网站测试)
一:在Mysql控制台创建数据表 [sql] use ceshi; create table student ( stuid int primary key auto_incremen ...
- Mysql基础(四):库、表、记录的详细操作、单表查询
目录 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细操作 3. 表的详细操作 4. 行(记录)的详细操作 5. 单表查询 数据库03 /库.表.记录的详细操作.单表查询 1. 库的详细 ...
- mysql基础之mariadb库管理和表管理语句
一.数据库管理语句 1.Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... cr ...
- Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)
前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...
- hibernate基础之无法自动创建表总结
刚刚接触Hibernate尝试写一个事例项目,但是搞了一天硬是苦逼的没弄通,一直的报无法创建表,现在就把这些经验给大家分享一下: 1.书写问题: <property name="hbm ...
- MySQL之使用DDL语句创建表
一.使用DDL语句创建表 DDL语言全面数据定义语言(Data Define Language) 主要的DDL动词: CREATE(创建).DROP(删除).ALTER(修改) TRUNCATE(截断 ...
- java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...
- mySQL学习入门教程——2.创建表
二.创建表 一.创建数据表的SQL语句模型(弱类型)CREATE TABLE [IF NOT EXISTS] 表名称(字段名1 列的类型[属性][索引],字段名2 列的类型[属性][索引],-字段名n ...
- mysql基础_操作数据库以及表
1.数据库的操作 create database 数据库名:#一般创建方式 create database 数据库名 show databases;#查看所有数据 drop database 数据库名 ...
随机推荐
- CF1545X Codeforces Round #732
A. AquaMoon and Strange Sort 叉人题 如果数字各不相同,只需要统计每个数参与构成的逆序对总数,如果是奇数一定最终朝左,偶数朝右.无意义的数字交换对方向是没有影响的 继续考虑 ...
- 22.1.23Manacher算法、双端队列、单调栈
22.1.23Manacher算法.双端队列.单调栈 1.Manacher算法 1)用途: Manacher算法用于解决类似求某个字符串中最长的回文子串.(回文就是正着读和倒着读一样的结构). 2)算 ...
- js学习笔记-Java script正则表达式
创建正则表达式 js中的正则包含在两个斜杠之间:/abc+v/ 正则中的特殊字符 \: 1.当后面不是特殊字符时表示字符边界 2.当后面是特殊字符时表示转义 ^: 1.匹配首位,例如,/^A/ 并不会 ...
- JSP和Servlet有哪些相同点和不同点?
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达.JSP编译后是"类servlet". Servlet和JSP最主要的不同点在于,Servl ...
- 面试问题之C++语言:多态
什么是多态? 概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性.简单的说,就是用基类的引用指向子类的对象. 为什么要用多态呢? 原因:封装可以隐藏实现细节,使得代码模 ...
- 解释 AOP 模块?
AOP 模块用于发给我们的 Spring 应用做面向切面的开发, 很多支持由 AOP 联 盟提供,这样就确保了 Spring 和其他 AOP 框架的共通性.这个模块将元数据编 程引入 Spring.
- memcached 和服务器的 local cache(比如 PHP 的 APC、 mmap 文件等)相比,有什么优缺点?
首先,local cache 有许多与上面(query cache)相同的问题.local cache 能够利 用的内存容量受到(单台)服务器空闲内存空间的限制.不过,local第 109 页 共 4 ...
- List、Map、Set 三个接口存取元素时,各有什么特点?
List 以特定索引来存取元素,可以有重复元素.Set 不能存放重复元素(用对象的 equals()方法来区分元素是否重复).Map 保存键值对(key-value pair)映射, 映射关系可以是一 ...
- 抽象的(abstract)方法是否可同时是静态的(static), 是否可同时是本地方法(native),是否可同时被 synchronized 修饰?
都不能.抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛 盾的.本地方法是由本地代码(如 C 代码)实现的方法,而抽象方法是没有实现 的,也是矛盾的.synchronized 和方法的实 ...
- 学习DNS(一)
DNS(Domain Name System,域名系统)因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户方便的访问互联网,而不用去记住能够被机器读取的IP数串.通过主机名,最终得到该主 ...