连接本地mysql语句

mysql -hlocalhost -uroot -proot

MySQL通用语法

DDL数据库操作

DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)

查询所有数据库

show databases;

创建数据库

语法:create database [if not exists] 数据库名称 [default charset 字符编码];

create database itdemo1[数据库名称];
ps:如果重复创建数据库名称,会创建失败; 那么我现在有一个想法:
如果某一个特数据库名称存在,则不创建,如果不存在,则创建。
我们可以使用if not exists
命令是:create database if not exists itdemo1; 在mysql中不不建议将字符编码设置为uft8;
因为uft8存储的最大长度是3个字节;

创建数据库并且设置字符集编码

create database demo02 default charset utf8mb4;

使用数据库

数据库创建成功之后,我们就需要使用数据库;
使用数据库是:
use itdemo1[数据库名称];

查询当前正在使用的数据库

select database();

删除数据库

语法:drop  database [if exists] 数据库名称;
如果删除一个不存在的数据库,会报错; drop database demo01; 删除demo01这个数据库
drop database if exists demo11; 如果存在demo11删除,不存在不删除

查询当前库中的所有表

show tables;

创建表

create  table  表名 (
字段1 字段1类型 [comment 字段1 注释],
字段2 字段3类型 [comment 字段2 注释]
)[comment 表注释]
ps:最后一个字段是没有逗号的。特别强调 现在我们来创建一个

查看当前数据库中有哪些表

show tables;

查看创建表的注释描述

show create table tab_user(表名);
你会看见如下: | tab_user | CREATE TABLE `tab_user` (
`id` int(11) DEFAULT NULL COMMENT '编号',
`name` varchar(50) DEFAULT NULL COMMENT '人物姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`sex` varchar(1) DEFAULT NULL COMMENT '性别0男,1女'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户表' 其中:ENGINE=MyISAM 表示的存储引擎
CHARSET=utf8 字符编码

查看表的结构

desc 表名;

数据类型

MySQL中数据类型有很多。
主要分为3类:1.数值类型,字符串类型,日期时间类型。





char 与 varchar

在使用 char[定长字符串] 或者 varchar[变长字符创] 的时候,都需要跟上一个参数。
char(10)或者varchar(10) 表示:最大存储长度10个字符,超出报错。
char(10)表示你只存一个字符,也会占用10个字符的空间,未使用的空间使用空格进行补位。
所以我们一般是不会使用char。
varchar(10):如果你只使用了一个字符,那么它就占用一个字符的空间。
你使用2个字符,就占用2个字符的空间。
它会根据你使用的字符计算它所占用的空间。

char 与 varchar 的区别

1.char的性能好一些, varchar性能相对差一些。
因为:varchar会根据我们存储的内容去计算所占用的空间

什么场景使用char,什么场景使用 varchar

如果存储的内容是不固定的使用varchar,如用户名是5-10个长度
如果存储的内容是固定的,使用char,如:性别

创建一个员工信息表

create table personnel(
id int comment '员工编号',
workno varchar(10) comment '员工工号',
name varchar(10) comment '姓名',
sex char(2) comment '男或者女',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证',
intime date comment '入职时间'
) comment '员工表';
关于年龄:我们在数值类型中有一个 tinyint 类型。
它的无符号类型在(0,255)之间,它是小整数值。
年龄使用它tinyint是合适的。 关于入职时间:关于时间有一个 date类型。
它的范围在1000-01-01至9999-12-31.
格式是YYYY-MM-DD,向出生日期,入职时间,都可以使用这份date

尾声

之前一直在说卷后端,都没有怎么行动,现在开始行动起来了。
现在的计划使用60天的时间,去学习MySQL。
希望学完之后,可以做到熟练使用。
加油! 学习的第一天。

学习MySQL,创建表,数据类型的更多相关文章

  1. mysql 创建表时注意事项

    mysql  创建表时注意事项 mysql 想必大家都不会陌生吧  是我学习中第一个接触的的数据库 已学习就很快上手的   这是一个关系型数据库  不懂什么是关系型数据库 啊哈哈哈  现在知道啦  因 ...

  2. oracle与mysql创建表时的区别

    oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer ), mid ), time dat ...

  3. 【转载】Mysql创建表时报错error150

    从mysql数据库中导出正常数据库的脚本语句,而后使用脚本语句创建数据库的过程中,执行语句提示Can't Create Table 'XXX' erro150的错误,语句执行中断,创建table失败, ...

  4. MySQL 创建表时,设置时间字段自己主动插入当前时间

    MySQL 创建表时,设置时间字段自己主动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) N ...

  5. Python MySQL 创建表

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  6. mysql创建表分区

    MySQL创建表分区 create table erp_bill_index( id int primary key auto_increment, addtime datetime ); inser ...

  7. Java学习笔记——MySQL创建表结构

    一.创建/删除数据库. create database t14; drop database t14; use t14; 二.创建若干表用于测试 这里预留了几个坑,下面要填坑的.. /*创建学生表*/ ...

  8. MYSQL创建表的约束条件(可选)

    一.常用的一些约束条件 一.创建表的完整语法1.创建表的万能模板:create table 库名.表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型 ...

  9. MySQL 创建表

     MySQL中create table语句的基本语法是: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,. ...

  10. mysql创建表时,设置timestamp DEFAULT NULL报错1067 - Invalid default value for 'updated_at'

    问题背景: 线上的linux服务器上的mysql服务器中导出数据库的结构.想要在本地创建一个测试版本 导出后再本地mysql上运行却报错   1067 - Invalid default value ...

随机推荐

  1. 解读 SSDB、LevelDB 和 RocksDB 到 GaussDB(for Redis) 的迁移

    摘要:本期将详细介绍 SSDB.LevelDB 和 RocksDB 到 GaussDB(for Redis)的迁移. 本文分享自华为云社区<华为云PB级数据库GaussDB(for Redis) ...

  2. 云小课 | MRS基础入门之HDFS组件介绍

    摘要:HDFS是MapReduce服务中的基础文件系统,全称为Hadoop的分布式文件系统(Hadoop Distributed File System),可支持实现大规模数据可靠的分布式读写. 本文 ...

  3. Java注解(批注)的基本原理

    为什么要使用注解? 早期版本的Spring是通过XML文件的形式对整个框架进行配置的,一个缩减版的配置文件如下 <?xml version="1.0" encoding=&q ...

  4. webpack原理(2):ES6 module在Webpack中如何Tree-shaking构建

    Tree-shaking 最早由打包工具 Rollup 提出 DCE 作用于模块内(webpack 的 DCE 通过 UglifyJS 完成),而 Tree-shaking 则是在打包的时候通过模块之 ...

  5. 企业诊断屋:服饰美妆电商如何用A/B测试赋能业务

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   随着社会经济复苏,服饰美妆的消费市场回暖,国潮品牌正强势崛起和海外品牌进军,让不断增长的美妆市场竞争更加加剧. ...

  6. 阿里云视频云人脸生成领域最新研究成果入选CVPR2022

    CVPR(IEEE Conference on Computer Vision and Pattern Recognition)作为计算机视觉和模式识别领域的顶级会议,在全球具有极高的权威性.目前在中 ...

  7. 0.o?让我看看怎么个事儿之SpringBoot自动配置

    学习 SpringBoot 自动配置之前我们需要一些前置知识点: Java注解,看完就会用 学会@ConfigurationProperties月薪过三千 不是银趴~是@Import! @Condit ...

  8. JSP 学习笔记 | 一、JSP 原理理解

    前文:IDEA | 使用Maven创建Web项目并配置Tomcat JSP(全称:Java Server Pages):Java 服务端页面.是一种动态的网页技术,其中既可以定义 HTML.JS.CS ...

  9. 0x53 动态规划-区间DP

    A: 石子合并 所求问题:1到n这些石子合并最少需要多少代价 由于石子合并的顺序可以任意,我们将石子分为两个部分 子问题:1到k这堆石子合并,k+1到n这堆石子合并,再把两堆石子合并,需要多少代价\( ...

  10. 图解 Promise 实现原理(三)—— Promise 原型方法实现

    本文首发于 vivo互联网技术 微信公众号 链接:  https://mp.weixin.qq.com/s/u8wuBwLpczkWCHx9TDt4Nw作者:Morrain Promise 是异步编程 ...