本篇主要介绍MySQL的基本操作
查看所有数据库 | show databases(或schemas); |
筛选以db开头的数据库 | show databases like 'db%'; |
创建数据库 | create database(或schema) 数据库名字; |
选择数据库 | use 数据库名字; |
删除数据库 | drop database 数据库名字; |
若不存在这个数据库则创建 | create database if not exists 数据库名字; |
退出 | quit; |
注意:
1.只有使用use语句指定某个数据库为当前数据库之后,才能对该数据库及其存储的数据对象执行操作。指定数据库后,当前数据库在当前工作会话关闭(即断开与该数据库的连接)或再次使用use语句指定数据库时,结束工作状态。
2.使用drop语句删除数据库时,该数据库中的表,以及表中的数据也将永久删除。
1.创建数据表:
create table 数据表名(
字段
);
2.查看表结构:
show columns from 数据表名 from 数据库名;
使用describe查看:
describe 数据表名;
还可以只查看某一列的信息
describe 数据表名 列名;
3.添加新字段以及修改新字段的定义:
添加:alter table 数据表名 add 新字段 类型
修改:alter table 数据表名 modify 字段 类型
在alter table中允许指定多个动作,其动作间使用逗号分隔,每个动作表示对表的一个修改。
例如:添加一个新的字段qq,类型为varchar(10),not null 并且将user类型varchar(30)改为varchar(40)
修改过后:
4.修改字段名:
alter table 数据库名.数据表名
->change column 原字段名 新字段名;
例如:将字段qq修改为qqnumber,长度为20
修改过后:
5.删除字段:
alter table 数据表名 drop 字段名;
6.修改表名:
alter table 原表名 rename as 新表名;
重命名表名:
rename table 原表名 to 新表名;
该语句可以同时对多个数据表进行重命名,多个表之间以逗号' , '分隔。
7.复制表:
create table 复制后的表名
->like 被复制的表名;
使用该语法复制表时,将创建一个有源数据表相同结构的新表,该数据表的列名,数据类型和索引都将被复制,但是表的内容不会被复制的。因此新创建的表是一个空表。
如果复制数据表时想要复制其中的内容,那么可以使用如下语句:
create table 复制后的表名
->as select * from 被复制的表名;
8.查看数据表中的数据:
select * from 数据表名;
9.删除表:
drop table 数据表名;
在删除表中如果删除一个不存在的表将会产生错误,可以在删除语句中加入if exists关键字就不会出错了,格式如下:
drop table if exists 数据表名;
数字类型
数据类型 | 取值范围 | 说明 | 单位 |
tinyint | signed:-127~127 unsigned:0~255 | 最小的整数 | 1字节 |
smallint | signed:-32768~32767 unsigned:0~65535 | 小型整数 | 2字节 |
mediumint | signed:-8388608~8388607 unsigned:0~16777215 | 中型整数 | 3字节 |
int | signed:-2147683648~2147683647 unsigned:0~4294967295 | 标准整数 | 4字节 |
float | +(-)3.402823466E+38 | 单精度浮点数 | 4字节 |
double | +(-)1.7976931348623157E+308 +(-)2.2250738585072014E-308 | 双精度浮点数 | 8字节 |
字符串类型
数据类型 | 取值范围 | 说明 |
char | 0~255 bytes | 定长字符串 |
varchar | 0~65535 bytes | 变长字符串 |
tinyblob | 0~255 bytes | 不超过255个字符的二进制数据 |
tinytext | 0~255 bytes | 短文本字符串 |
blob | 0~65535 bytes | 二进制形式的长文本数据 |
text | 0~65535 bytes | 长文本数据 |
mediumblob | 0~16777215 bytes | 二进制形式的中等长度文本数据 |
mediumtext | 0~16777215 bytes | 中等长度文本数据 |
longblob | 0~4294967295 bytes | 二进制形式的极大文本数据 |
longtext | 0~4294967295 bytes | 极大文本数据 |
日期和时间类型
数据类型 | 取值范围 | 格式 |
date | 1000-01-01至9999-12-31 | YYYY-MM-DD |
time | -839:59:59志838:59:59 | HH:MM:SS |
year | 1901至2155 | YYYY |
datetime | 1000-01-01 00:00:00至 9999-12-31 29:59:59 | YYYY-MM-DD HH:MM:SS |
timestamp | 1970-01-01 00:00:01至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS |