学习笔记
sql通用语法
1 sql语句可以单行或多行书写,以分号结尾;
2 sql语句可以使用空格/缩进来增强语句的可读性;
3 mysql数据库的sql语句不区分大小写
4 单行注释:-- 内容 或 # 内容
多行注释: /* 内容 */
sql语句分类
DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
DML:数据操作语言,用来对数据库中的数据进行增删改
DQL: 数据查询语言,用来查询数据库中表的记录
DCL: 数据控制语言,用来创建数据库用户,控制数据库的访问权限(创建出来的用户可以控制哪些表,进行增删改中的哪些功能都是由DCL决定)
DDL
数据库操作:
查询所一数据库:
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
创建
CREATE DATABASE 数据库名称;
CREATE DATABASE IF NOT EXISTS 数据库名称; # 是否存在同名数据库,不存在则创建
CREATE DATABASE 数据库名称 DEFAULT CHARSET 子点击; # 规定字符集
创建成功。
删除
DROP database 数据库名;
DROP database IF EXISTS 数据库名;
使用
USE 数据库名;
DDL表操作
查询当前数据库所有表
show tables; # 得首先进入该数据库:use:xxx
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
DDL-表操作-创建
create table 表名(
字段1 字段1类型[comment 字段1注释],
字段2 字段2类型[comment 字段2注释],
......
字段n 字段n类型[comment 字段n注释]
)[comment 表注释];
数值类型
类型 大小 有符号范围 无符号范围
tinyint 1byte (-128,127) (0,255)
smallint 2bytes (-32768, 32767) (0,65535)
mediumint 3bytes (-8388608,8388607) (0,16777215)
int 4bytes (-2147483648, 2147483647) (0,4294967295)
bigint 8btyes
float 4bytes
double 8bytes
decimal 依赖于M精度和D标度
例子
age tinyint unsigned (tinyint类型无符号)
字符串类型
char 0-255bytes 定长字符串
varchar 0-65535bytes 变长字符串
定长字符串,例如char[10],存储1个字符就要占用10给字符的空间;varchar[10]则不一样,存储1个字符就占用1个字符的空间。
日期类型
类型 大小 范围 格式 描述
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 年份值
DATAYEAR 8 1000-01-01 00:00:00至9999-12-31 23:59:59 混合日期时间和时间值
TIMESTAMP4 1970-01-01至2038-01-19 03:14:07 混合时间和时间值时间戳
例如:birthday date
案例:
create table emp(
id int comment '编号',
worknum varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
entrydate date comment '入职时间'
)comment '员工表';
DDL-表操作-修改
添加字段
alter table 表名 add 字段名 类型(长度)[comment ‘注释’];
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释][约束];
删除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to employee;
表操作删除
删除表
drop table 表名;
drop table if exists 表名;
删除指定表,并重新创建该表
truncate table 表名;
上图多余的\为失误输入。
删除表时,表中的数据会被全部删除。