前言
半吊子sql语句学习,使用可视化工具,现在特来按部就班的正式学一下sql语句。黑马学习总结
DDL 数据库操作
查询
查询所有数据库
show databases;
查询当前数据库
select database();
查询当前数据库所有表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
创建
创建数据库
如果不存在就创建
创建字符集
排序规则
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
创建表
create table 表名(
字段1 字段1类型 [comment 字段1的注释].
字段2 字段2类型 [comment 字段2的注释]
)[comment 表注释];
修改
添加字段
alter table 表名 add 字段名 类型(长度)[comment 注释][约束];
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
修改表名
alter table 表名 rename to 新表名;
删除
删除数据库
如果存在
drop database[if exists] 数据库名;
删除字段
alter table 表名 drop 字段名;
删除表
drop table [if exists] 表名;
删除指定表,并重新创建该表,里面数据都没有了
truncate table 表名;
使用数据库
use 数据库名;
数据类型
数值类型
无符号(UNSIGNED)
tinyint --> byte
smallint -->short
mediumint -->3byte
int或integer -->int
bigint -->long
float -->float
double -->double
decimal -->M精度(总共几位数)D标度(小数点后几位数)
举例
age tinyint unsiged -->无符号
score double(4,1) -->100.0
字符串类型
char -->定长字符串 固定了10个字节,即使写1分字节,其余也会被空格补上,性能好
varchar -->变成字符串
tinyblob --> 不超过255个字符的二进制数据
tinytext -->短文本字符串
blob -->二进制形式的长文本数据
text -->长文本数据
mediumblob -->二进制形式的中等长度文本数据
mediumtext -->中等长度文本数据
longblob -->二进制形式的极大文本数据
longtext -->极大文本数据
日期时间类型
类型 | 大小 | 范围 | 格式 | 描述 |
---|---|---|---|---|
date | 3 | 1000-01-01 | 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 | 混合日期和时间值,时间戳 |