SQL分类
数据查询语言(Data Query Language,DQL):
DQL主要用于数据的查询,其基本结构是使用SELECT子句,FROM子句和WHERE子句的组合来查询一条或多条数据。
- select
- from
- where
- order by
- having
数据操作语言(Data Manipulation Language,DML):
DML主要用于对数据 增加、修改和删除的操作。
主要包括:
- INSERT: 增加数据
- UPDATE: 修改数据
- DELETE: 删除数据
数据定义语言(Data Definition Language,DDL):
DDL主要用针对是数据库对象(数据库、表、索引、视图)进行创建, 修改和删除操作。
主要包括:
- CREATE: 创建
- ALTER: 修改
- DROP: 删除
- SHOW:查看
数据控制语言(Data Control Language,DCL):
DCL用来授予或回收访问数据库的权限。
主要包括:
- GRANT: 授予用户权限
- REVOKE: 回收授予的权限 。
事务控制语言(Transaction Control Language,TCL):
TCL用于数据库的事务管理。
主要包括:
- START TRANSACTION: 开启事务
- COMMIT: 提交事务
- ROLLBACK: 回滚事务
注意:
数据操纵语言DML(insert、update、delete)针对表中的数据 ;
而数据定义语言DDL(create、alter、drop)针对数据库对象,比如数据库database、表table、索引index、视图view、存储过程procedure;
DDL操作
– 查看所有的数据库
show databases;
– 创建数据库
create database bjsxt01;
– 选择数据库
use bjsxt01;
– 删除数据库
drop database bjsxt01;
MySQL中常见的数据类型
类型 | 描述 |
---|---|
int | 整型 |
double | 浮点型 |
varchar | 字符串型 |
date | 日期类型,格式为:yyyy-MM-dd |
详细数据类型
整数类型
整数类型 | 大小 | 表数范围(有符号) | 表数范围(无符号) | 作用 |
---|---|---|---|---|
TINYINT | 1字节 | (-128,127) | (0,255) | 最小整数值 |
SMALLINT | 2字节 | (-32768,32767) | (0,65535) | 小整数值 |
MEDIUMINT | 3字节 | (-8388608,8388607) | (0,16777215) | 中等整数值 |
INT | 4字节 | (-214748364,2147483647) | (0,4294967295) | 大整数值 |
BIGINT | 8字节 | (-9233372036854775808,9223372036854775807) | (0,18446744073709551615) | 极大整数值 |
浮点数类型
浮点数类型 | 大小 | 作用 |
---|---|---|
FLOAT(m,d) | 4字节 | 单精度浮点数值, m总个数,d小数位 |
DOUBLE(m,d) | 8字节 | 双精度浮点数值, m总个数,d小数位 |
字符串类型
字符串类型 | 大小 | 描述 |
---|---|---|
CHAR(M) | 0~255字符 | 允许长度0~M个字符的定长字符串 |
VARCHAR(M) | 0~65535字符 | 允许长度0~M个字符的变长字符串 |
TINYTEXT | 0~255字节 | 短文本数据 |
TEXT | 0~65535字节 | 长文本数据 |
MEDIUMTEXT | 0~16777215字节 | 中等长度文本数据 |
LONGTEXT | 0~4294967295字节 | 极大文本数据 |
BLOB(M) | 最大65K | 以二进制存储图片,文件等数据 |
日期和时间类型
类型 | 格式 | 取值范围 |
---|---|---|
TIME | ‘HH:MM:SS’ | (‘-838:59:59’, ‘838:59:59’) |
DATE | ‘YYYY-MM-DD’ | (‘1000-01-01’, ‘9999-12-31’) |
YEAR | YYYY | (1901, 2155), 0000 |
DATETIME | ‘YYYY-MM-DD HH:MM:SS’ | (‘1000-01-01 00:00:00’, ‘9999-12-31 23:59:59’) |
TIMESTAMP | ‘YYYY-MM-DD HH:MM:SS’ | (‘1970-01-01 00:00:01’ UTC, ‘2038-01-19 03:14:07’ UTC) |
DDL-创建数据库表
语法:
create table 表名(
字段1 数据类型,
字段2 数据类型(长度)
);
– 注意:最后一个字段不要加逗号,可以给字段的数据类型指定长度
DDL-查看数据库表
– 显示当前数据库的所有的表
show tables;
– 显示某个表的结构 desc 表名
desc student;
– 查看某个表完整的建表语句 show create table 表名
show create table student;
DDL-删除数据库表
– 语法格式:
DROP TABLE 表名;
– 删除当前数据库中的某个表 drop table 表名
drop table student;
DDL-修改数据库表
- 修改表名
– 语法格式:
rename table 旧表名 to 新表名;
– 修改student表名为stu
rename table student to stu;
– 显示所有表
show tables;
- 向表中添加字段
– 语法格式:
alter table 表名 add 字段名称 字段类型;
– 案例:向学生表中添加字段address,长度为50
alter table stu add address varchar(50); – 默认添加到最后
alter table stu add address2 varchar(50) first; – 添加到第一个
alter table stu add address3 varchar(50) after age; – 添加到age字段之后
– 查看表结构
desc stu;
- 修改表中字段
– 语法格式:
alter table 表名 modify 字段名称 字段类型;(修改字段类型和长度)
– 案例:修改学生表中的字段address,长度改为30
alter table stu modify address varchar(30);
– 语法格式:
alter table 表名 change 旧字段名 新字段名 类型(长度); (修改字段名 )
– 案例:修改学生表中的字段address,修改为city,长度为10
alter table stu change address city varchar(10);
- 删除表中字段
– 语法格式:
alter table 表名 drop 字段名;
– 案例:删除学生表中 address2字段
alter table stu drop address2;
DML操作
插入数据
– 语法格式:
– 1. 插入部分或全部字段
insert into 表名(字段名1,字段名2,…,字段名n) values(值1,值2,…,值n);
– 2. 插入全部字段
insert into 表名 values(值1,值2,…,值n);
– 3.一次添加多条数据
insert into 表名 values(值1,值2,…,值n),(值1,值2,…,值n),(值1,值2,…,值n);
注意事项:
- 值与字段必须要对应,个数相同、数据类型相同
- 值的数据大小,必须在字段指定的长度范围内
- varchar char date类型的值使用单引号或者双引号包裹
- 如果要插入空值,可以忽略不写或者写null
- 如果插入指定字段的值,必须要上写列名
- 字符串日期类型支持 “2000-12-23” “2000/12/23” “2000.12.23”
修改数据
– 语法格式
update 表名 set 字段1=值1,字段2=值2,…,字段n=值n where 条件;
update 表名 set 字段1=值1,字段2=值2,…,字段n=值n; – 慎用:不加条件会修改所有的数据
删除数据
– 语法格式
delete from 表名 where 条件;
delete from 表名; – 慎用:删除表中的所有数据
truncate table 表名; – 慎用:删除表中的所有数据