MySQL-数据库和表的基本操作
数据库和表的基本操作
数据库基础知识
创建数据库
CREATE DATABASE 数据库名称 ;
查看数据库(显示数据库名列表)
SHOW DATABASES ;
查看某数据库信息(显示创建的信息)
SHOW CREATE DATABASE 数据库名称 ;
修改数据库编码
ALTER DATABASE 数据库名称
DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin ;
删除数据库
DROP DATABASE 数据库名称 ;
数据类型
整数类型
| 数据类型 | 字节数 | 无符号数取值范围 | 有符号数取值范围 |
|---|---|---|---|
| TINYINT | 1 | 0~255 | -128~127 |
| SAMLLINT | 2 | 0~65535 | -32768~32767 |
| MEDIUMINT | 3 | 0~16777215 | -8388608~8388607 |
| INT | 4 | 0~4294967295 | -2147483648~2147483647 |
| BIGINT | 5 | 0~18446744073709551615 | -9223372036854775808~9223372036854775807 |
浮点数类型和定点数类型
单精度浮点数类型FLOAT,4字节;
双精度浮点类型DOUBLE,8字节;
定点数类型DECIMAL(D,B),M+2字节,M表示数据的长度,D表示小数点后的长度。
日期与时间类型
| 数据类型 | 字节数 | 取值范围 | 日期格式 | 零值 | 补充 |
|---|---|---|---|---|---|
| YEAR | 1 | 1901~2155 | YYYY | 0000 | 字符串格式'0'表示2000,数字格式0表示0000 |
| DATE | 4 | 1000-01-01 | YYYY-MM-DD | 0000-00-00 | 使用CURRENT_DATE或者NOW()表示当前系统日期 |
| TIME | 3 | -838:59:59~838:59:59 | HH:MM:SS | 00:00:00 | 可以输如'D HH:MM:SS'字符串,D表示0~34之间的值,相当于D*24+HH .使用CURRENT_DATE或者NOW()表示当前系统日期 |
| DATETIME | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 | 使用NOW()表示当前系统日期 |
| TIMESTAMP | 4 | 1970-01-01 00:00:01~2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 | 使用CURRENT_TIMESTAMP来输入当前系统日期;输入NULL时系统会输入系统当前日期和时间;无任何输入时,系统会输入系统当前日期和时间。 |
字符串和二进制类型
| 数据类型 | 类型说明 | 补充 |
|---|---|---|
| CHAR | 用于表示固定长度的字符串 | |
| VARCHAR | 用于表示可变长度的字符串 | |
| BINARY | 用于表示固定长度的二进制数据 | |
| VARBINARY | 用于表示固定长度的二进制数据 | |
| BLOB | 用于表示二进制大数据 | |
| TEXT | 用于表示大文本数据 | |
| ENUM | 表示枚举类型,只能存储一个枚举字符串值 | |
| SET | 表示字符串对象,可以有零或多个值 | |
| BIT | 表示位字段类型 |
数据表的基本操作
选择数据库
USE 数据库名 ;
创建数据表
CREATE TABLE 数据表名
(
字段名1 数据类型[完整性约束条件] ,
字段名2 数据类型[完整性约束条件] ,
...
字段名n 数据类型[完整性约束条件]
) ;
查看此数据库下的表(显示表名列表)
SHOW TABLES ;
查看数据表(显示定义语句,字符编码)
SHOW CREATE TABLE 表名 ;
整齐的查看数据表(显示定义语句,字符编码)
SHOW CREATE TABLE 表名\G
查看数据表(显示字段信息)
DESCRIBE 表名 ;
或简写为:
DESC 表名 ;
执行结果如下:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | int(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
| username | varchar(10) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
(1).NULL:表示该列是否可以存储NULL值;
(2).Key:表示该列是否已经编制索引;
(3).Default:表示该列是否有默认值;
(4).Extra:表示获取到的与给定列相关的附加信息。
修改表名(to可以省略)
ALTER TABLE 旧表名
RENAME [To] 新表名 ;
修改字段名
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 新数据类型 ;
修改字段的数据类型
ALTER TABLE 表名
MODIFY 字段名 数据类型 ;
添加字段
ALTER TABLE 表名
ADD 新字段名 数据类型
[约束条件][FIRST | AFTER 已存在字段名]
上述格式中,“FIRST”为可选参数,用于将新加字段设为第一个字段,“AFTER”也为可选参数,用于将新加字段添加到指定“已存在字段名”的后面。
修改字段的排列位置
修改为第一个字段:
ALTER TABLE 表名
MODIFY 字段名1 数据类型 FIRST;
将字段名1插入到字段名2之后:
ALTER TABLE 表名
MODIFY 字段名1 数据类型 AFTER 字段名2 ;
删除字段
ALTER TABLE 表名
DROP 字段名 ;
删除数据表
DROP TABLE 表名 ;
表的约束
| 约束条件 | 说明 |
|---|---|
| PRIMARY KEY | 主键约束,用于唯一标识对应的记录 |
| FOREIGN KEY | 外键约束 |
| NOT NULL | 非空约束 |
| UNIQUE | 唯一性约束 |
| DEFAULT | 默认值约束,用于设置字段的默认值 |
| AUTO_INCREMENT | 字段值自动增加 |
举个例子:
id为主键且值自动增加,name字段值唯一,grade字段默认值为0。
CREATE TABLE TB_GRADE
(
id INT(10) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) UNIQUE,
grade FLOAT DEFAULT 0
);
索引
创建表的时候创建索引
CREATE TABLE 表名
(
字段名 数据类型[完整性约束条件] ,
字段名 数据类型[完整性约束条件] ,
...
字段名 数据类型[完整性约束条件] ,
[ UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY
[ 别名 ] (字段名1 [ (长度)] [ ASC | DESC] )
) ;
上述相关语法解释:
(1)UNIQUE:可选参数,表示唯一索引。
(2)FULLTEXT:可选参数,表示全文索引。
(3)SPATIAL:可选参数,表示空间索引。
(4)INDEX和KEY:用来表示字段的索引,二者选一即可。
(5)别名:可选参数,表示创建的索引名称。
(6)字段名1:指定索引对应字段的名称(创建多列索引时,用逗号隔开)。
(7)长度:可选参数,用于表示索引的长度。
(8)ASC和DESC:可选参数,ASC代表升序排列,DESC代表降序排列。
在已经存在的表上创建索引
方法一:
CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名
ON 表名 (字段名1 [ (长度)] [ ASC | DESC] ) ;
方法二:
ALTER TABLE 表名
ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 (字段名1 [ (长度)] [ ASC | DESC] ) ;
删除索引
方法一:
ALTER TABLE 表名
DROP INDEX 索引名 ;
方法二:
DROP INDEX 索引名
ON 表名 ;
MySQL-数据库和表的基本操作的更多相关文章
- Mariadb/MySQL数据库单表查询基本操作及DML语句
Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...
- MySQL<数据库和表的基本操作>
数据库和表的基本操作 数据库基础知识 创建数据库 就是在数据库系统中划分一块存储数据的空间 CREATE DATABASE itcast; 查看数据库 SHOW CREATE DATABASE 数据库 ...
- MySQL : 数据库和表的基本操作总结
针对database和table的操作大致可分为三类:创建,查询,修改,删除 1. 创建 create ①创建数据库 create database db_name; ②创建表 create tabl ...
- mysql(三) 数据表的基本操作操作
mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...
- MySQL数据库以及表的管理
MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...
- MySQL数据库分表的3种方法
原文地址:MySQL数据库分表的3种方法作者:dreamboycx 一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了.分表的目 ...
- mysql数据库单表只有一个主键自增id字段,ibatis实现id自增
mysql数据库单表只有一个主键自增id字段,ibatis实现id自增 <insert id="autoid"> insert into user_id ...
- Vc数据库编程基础MySql数据库的表查询功能
Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
- mysql数据库user表host字段的%问题
搜索: mysql数据库user表host字段的%问题 连接:http://blog.csdn.net/xiaomengh/article/details/48706149 在mysql数据库中,使用 ...
随机推荐
- MySQL死锁系列-常见加锁场景分析
在上一篇文章<锁的类型以及加锁原理>主要总结了 MySQL 锁的类型和模式以及基本的加锁原理,今天我们就从原理走向实战,分析常见 SQL 语句的加锁场景.了解了这几种场景,相信小伙伴们也能 ...
- Jmeter(四) - 从入门到精通 - 创建网络测试计划(详解教程)
1.简介 在本节中,您将学习如何创建基本的 测试计划来测试网站.您将创建五个用户,这些用户将请求发送到JMeter网站上的两个页面.另外,您将告诉用户两次运行测试.因此,请求总数为(5个用户)x(2个 ...
- remote desktop能实现什么?远程桌面管理的意义是什么?
随着互联网时代的发展,向人请教来说,视频教学已经不算便捷了,而远程桌面就发挥了重要作用.它意味着您可以从家里连接到工作计算机,并访问所有应用程序.文件和网络资源,好像正坐在工作计算机前面.您可以让程序 ...
- docker重启提示已存在一个容器的问题处理
一.问题:在vmware虚拟机中测试以docker方式安装的prometheus,当重启虚拟机后,再次运行prometheus的执行文件,提示已有名称为prometheus的容器存在. 二.处理过程 ...
- AUTOSAR-文档中所使用的UML文件
https://mp.weixin.qq.com/s/OeUPNBVh1Vd_ZT1EZVKDZA AUTOSAR官方对AUTOSAR的了解,自然比我们的了解多.在这样一个信息不对称的情况下,需要 ...
- Rocket - diplomacy - LazyModule实例:Buffer
https://mp.weixin.qq.com/s/j1M9ZOTtqvc1Fv9T6dy9kg 以tilelink下的Buffer为例,介绍LazyModule如何组织内部的节点和模块. ...
- python常见面试题讲解(十三)字串的连接最长路径查找
输入描述: 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母. 输出描述: 数据输出n行,输出结果为按照字典序排列的字符串. 示例1 ...
- 数据库之 MySQL --- 数据处理 之 表的约束与分页(七)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.约束 :为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制 ...
- 关于vue 中elementui 的表格边框隐藏
最近写到一个项目需要实现边框隐藏,网上查找了好多笔记,回答都好含糊不清.为此,记录一下自己的实现方法: 需求: 要将如下表格边框去除 效果图: ...
- Java实现 LeetCode 695 岛屿的最大面积(DFS)
695. 岛屿的最大面积 给定一个包含了一些 0 和 1 的非空二维数组 grid . 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相 ...