Mysql学习之创建和操作数据库及表DDL大全小白篇
作者:祈祷ovo 发布时间:2024-01-25 01:16:15
1.操作数据库
1.1创建数据库
create + database + 数据库名称
当然如果我们不知道数据库是否存在,如果存在就不创建,不存在就创建可以用以下语句
create + database + if not exists + 数据库名称
我们还可以在创建数据库的时候指定字符集
create + dabase + if not exists + 数据库名 +character set + 字符集名
1.2查询数据库
查询所有已经存在的数据库
show databases
查询某个数据库的创建语句和所使用的字符集
show create database + 数据库名称
1.3修改数据库
修改数据库字符集
alter database + 数据库名称 + character set + 字符集名称
1.4删除数据库
drop database +数据库名
同样的,也可以加上 if not exists
drop database + if exists + 数据库名称
1.5使用数据库
使用数据库
use + 数据库名称
查询当前正在使用数据库的名称
select database()
2.操作表
2.1MySQL数据类型
数据类型 | 介绍 |
---|---|
tinyint | 存储1字节8位的整数 |
int/integer | 存储4字节32位的整数 |
float | 存储单精度浮点数 |
double | 存储双精度浮点数 |
char(n) | 存储字符 |
varchar(n) | 存储字符 |
date | 存储日期,只包含年月日格式:yyyy-MM–dd |
datetime | 存储日期,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss |
timestamp | 存储日期,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss |
问题1:varchar和char的特点和区别
char的特点:
1.char表示定长字符串,长度是固定的(比如char(5)即使不够5个字符也是按5个字符存储)
个字符也会按照5个字符存储);
2.如果插入数据的长度小于char的固定长度时,则用空格填充;
3.因为长度固定,所以存取速度要比varchar快很多,甚至能快50%,但正因为其长度固定,所以会占据多余的空间,是空间换时间的做法;
4.对于char来说,最多能存放的字符个数为255,和编码无关
varchar的特点:
1.varchar表示可变长字符串,长度是可变的(比如varchar(5)不够5个字符,比如3个那么就按照三个字符存储);
2.插入的数据是多长,就按照多长来存储;
3.varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间,是时间换空间的做法;
4.对于varchar来说,最多能存放的字符个数为65532
两者的区别:
结合性能角度(char更快)和节省磁盘空间角度(varchar更小)
还有一个点两者都存储字符
张三:代表两个字符
zhangsan:代表八个字符
问题2:int(20)中20的涵义
是指显示字符的长度。20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;
不影响内部存储,只是影响带 zerofill 定义的 int 时,前面补多少个 0,易于报表展示
问题3:float和double的区别是什么?
1.float类型数据可以存储至多8位十进制数,并在内存中占4字节。
2.double类型数据可以存储至多18位十进制数,并在内存中占8字节。
问题4:datetime和timestamp的区别?
对于类型为timestamp的字段来说,不给这个字段赋值或者给这个字段赋空值那么都会默认使用当前系统时间
2.2创建表
create table +表名(
列 数据类型,
列 数据类型,
.........
列 数据类型
)
有时候我们想复制一个表的结构:
create table + 复制的新表名 + like + 被复制的表
有时候我们想复制表的所有内容:
create table + 复制的新表名 + select * from 要复制的表名
注意没有like
有时候我们只复制部分内容:
create table + 复制的新表名 + select语句
有时候我们只复制部分表的字段结构
create table + 复制的新表名 + select 需要复制的字段 +from 要复制的表 + where + 一个恒不成立的条件(如0=1)
2.3查询表
查询数据库中所有的表的名称
show tables
查询表结构
desc + 表名
2.4删除表
drop table + if exists + 表名
2.5修改表
修改表名
alter table + 表名 + rename to + 新表名
修改表的字符集
alter table + 表名 + character set + 字符集名称
添加一列
alter table + 表名 + add + (column) + 列 数据类型
修改列名称
alter table + 表名 + change + (column) + 列名 新列名 数据类型
修改列类型
alter table 表名 modify + (column) + 列名 新的数据类型
删除列
alter table + 表名 + drop 列名
来源:https://blog.csdn.net/qq_45737068/article/details/106134650
猜你喜欢
- 前言今天在升级下载Python第三方库的时候特别慢,最后去升级pip的时候竟然还time out了,哇心态炸了。 最后想了一下为什么会这么慢
- 使用WebDriver在Chrome浏览器上进行测试时,需要从http://chromedriver.storage.googleapis.
- 方法1: X:\oracle\ora81\bin\wrap iname=XXX oname=XXX 方法2:9i在win2000下使用wra
- 1、需要准备工具xftp:上传项目文件本地下载地址:https://www.jb51.net/softs/81853.htmlxshell:
- <?php echo CHtml::link('错误链接','user/register')?>
- 清空服务器缓存asp代码: <%Call RemoveAllCache()Sub RemoveAllCa
- 1.软件环境Windows10 教育版64位Python 3.6.32.问题描述我们在定义一个函数或者是调用一个函数的时候,总是希望能够知道
- 【代码示例】 [code=SQL] DELIMITER $$ DROP FU
- 代码如下from bs4 import BeautifulSoup #网页解析,获取数据import sys #正则表达式,进行文字匹配im
- 链接的 target 属性怎么用 JS 来控制? 在HTML 4.0 Strict和XHTML 1.0 STRICT里不允许在<a&g
- 一、创建TensorRT有以下几个步骤:1.用TensorRT中network模块定义网络模型2.调用TensorRT构建器从网络创建优化的
- 今天大概弄懂了partition by和group by的区别联系。1. group by是分组函数,partition by是分析函数(然
- 增加异常捕获,更容易现问题的解决方向import sslimport urllib.requestfrom bs4 import Beaut
- 本文实例为大家分享了python matplotlib绘制常用图的具体代码,供大家参考,具体内容如下github地址导入相关类import
- 类的定义Python中,定义类是通过class关键字,例如我们定义一个存储学生信息的类:class Student(object):pass
- 共4个页面:form.asp; chk.asp; num.asp; count.asp,得到一个随即数字。加密解密后成成XBM图片,利用 s
- 使用字符串时,常见的操作之一是使用给定的分隔符将字符串拆分为子字符串数组。在本文中,我们将讨论如何在Python中拆分字符串。.split(
- 回忆一下mysql 5.5 安装配置方法,整理mysql 5.5 安装配置教程笔记,分享给大家。MySQL下载地址:http://dev.m
- 良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病。这些毛病在一些从业时间不是
- 目录深度遍历递归用栈来遍历磁盘广度遍历磁盘用队列遍历磁盘深度遍历递归import osdef get_files(path):