什么是SQL?
Structured Quary Language:结构化查询语言
定义了操作所有关系型数据库的规则
SQL语句
- 语法
①SQL语句可以单行和多行书写,以分号结尾;
②可以是空格和TAB增强语句的可读性;
③MySQL数据库的SQL语句不区分大小写,但是建议关键字用大写;
④注释:单行注释(-- 注释内容和#注释内容)注意--后面跟一个空格;多行注释/**/ - 分类
①DDL(DATA Definition Language)数据定义语言;用来定义数据库对象:数据库,表,列(create,drop,alter)
②DML(DATA Manipulation Language)数据操作语言;用来对数据库表中的数据进行增删改(insert,delete,update)
③DQL(DATA Quary Language)数据查询语言;用来查询数据库表中的数据(select,where)
④DCL(Data Control Language)数据控制语言;用来定义数据库的访问权限和安全级别(GRANT,REVOKE)
DDL操作数据库对象
- 操作数据库(CRUD)
- C(create):创建
CREATE DATABASE 数据库名;创建数据库
CREATE DATABASE if not exists 数据库名;创建不存在的数据
CREATE DATABASE 数据库名 charset gbk;创建数据库并指定字符集 - R(retrieve):查询
SHOW DATABASES;查看所有的数据库
SHOW CREATE DATABASE 数据库名称;查看创建数据库的语句 - U(updata):修改
alter database 数据库名 charset gbk;修改数据库的字符集 - D(delete):删除
drop database 数据库名;删除数据库
drop database if exists 数据库名;数据库存在再删除 - 使用数据库
select database();查询当前正在使用的数据库
use 数据库名;
- 操作表(CRUD)
- C(create):创建
create table 表名(
列名 数据类型,
...
列名 数据类型
);
create table stu like 表名;复制表的结构
数据类型:
int:整数类型(age int)
double:小数类型(scroe double(5,2))
date:日期只包含年月日yyyy-MM-dd
datetime:日期包含年月日时分秒yyyy-MM-dd HH:mm:ss
timestamp:时间戳类型包含年月日时分秒yyyy-MM-dd HH:mm:ss,如果将来不给这个字段赋值,或者赋值为null,则默认使用当前系统时间自动赋值
varchar:字符串类型(name varchar(20))
- R(retrieve):查询
show tables;查询数据库中所有表名称
desc 表名;查询表结构 - U(updata):修改
①修改表名
alter table 表名 rename to 新的表名
②修改表的字符集
show create table 表名;查看表的创建语句
alter table 表名 charset gbk;
③添加一列
alter table 表名 add 列名 数据类型
④修改列的名称类型
alter table 表名 change 原有列名 列名 数据类型;
alter table 表名 modify 原有列名 列名;
⑤删除列
alter table 表名 drop 列名 - D(delete):删除
drop table 表名;
drop table if exists 表名;
网友评论