1、启动和停止MySQL服务
// 暂停服务 默认 80
net stop mysql80// 启动服务
net start mysql80// 任意地方启动 mysql 客户端的连接
mysql -u root -p
2、输入密码
3、数据库
4、DDL(Data Definition Language )数据 定义语言, 用来定义数据库对象(数据库, 表, 字段)
1、查询所有数据库
show databases;
2、 新建数据库
create database 库名;// 没有当前的数据库名的情况下创建create if not exists database 库名;
3、查询当前数据库
select database();
4、使用数据库
use 库名;
5、删除数据库
drop database 库名;
5、DDL 表结构
1、查询当前数据库所有的表 (如果没有创建表,我们可以先使用系统的表,然后载查询)
show tables;
2、创建表结构
2.1 创建之前先回到我们自己需要创建表格的库
2.2 创建表的结构
create table 表名(字段1 字段1类型 [约束] [comment 字段1注释 ],字段2 字段2类型 [约束] [comment 字段2注释 ],......字段n 字段n类型 [约束] [comment 字段n注释 ]
) [ comment 表注释 ] ;
2.3 控制台写
2.4 创建成功
2.5 出现 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘编号’, name varchar(10) comment 姓名 错误 说明创建表的过程中 符号没有统一
3、查看指定表结构
desc 表名 ;#可以查看指定表的字段、字段的类型、是否可以为NULL、是否存在默认值等信息
4、查询指定表的建表语句
show create table 表名 ;
5、MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
数值类型
类型 | 大小 | 有符号(SIGNED)范围 | 无符号(UNSIGNED)范围 | 描述 |
---|---|---|---|---|
TINYINT | 1byte | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2bytes | (-32768,32767) | (0,65535) | 大整数值 |
MEDIUMINT | 3bytes | (-8388608,8388607) | (0,16777215) | 大整数值 |
INT/INTEGER | 4bytes | (-2147483648,2147483647) | (0,4294967295) | 大整数值 |
BIGINT | 8bytes | (-2^63,2^63-1) | (0,2^64-1) | 极大整数值 |
FLOAT | 4bytes | (-3.402823466 E+38,3.402823466351 E+38) | 0 和 (1.175494351 E-38,3.402823466 E+38) | 单精度浮点数值 |
DOUBLE | 8bytes | (-1.7976931348623157 E+308,1.7976931348623157 E+308) | 0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308) | 双精度浮点数值 |
DECIMAL | 依赖于M(精度)和D(标度)的值 | 依赖于M(精度)和D(标度)的值 | 小数值(精确定点数) |
示例: 年龄字段 ---不会出现负数, 而且人的年龄不会太大age tinyint unsigned分数 ---总分100分, 最多出现一位小数score double(4,1)
字符串类型
类型 | 大小 | 描述 |
---|---|---|
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 | 极大文本数据 |
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。
日期时间类型
类型 | 大小 | 范围 | 格式 | 描述 |
---|---|---|---|---|
DATE | 3 | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | -838:59:59 至 838:59:59 | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901 至 2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |
示例: 生日字段 birthday ---生日只需要年月日 birthday date创建时间 createtime --- 需要精确到时分秒createtime datetime
练习
create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '名字',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证号',entrydate date comment '入职时间') comment '员工表';
6、DDL --- 修改表的操作
1. 添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
案例
alter table emp add nickname varchar(20) comment '昵称';
2. 修改指定字段的数据类型
alter table 表名 modify 字段名 新数据类型(长度);
3. 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
案例
alter table emp change nickname username varchar(50) comment '用户名';
4. 删除字段
alter table 表名drop 字段名;
案例
alter table emp drop username;
5. 修改表名
alter table 原来的表名 rename to 新表名;
案例
alter table emp rename to employee;
6. 删除表
drop table [ if exists ] 表名;
if exists :只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不加该参数项,删除一张不存在的表,执行将会报错)。
案例
drop table if exists tb_user;
7. 删除指定的表, 并创建该表 表中的数据也回被删掉
truncate table 表名;
案例