#/*内容不完全,学习持续中,本节文章持续更新中*/#
语法简介
SQL通用语法:
*sql语句支持单行或多行书写,以分号结尾
*sql语句支持空格或缩进来增强可读性
*MySQL数据库的sql语句不区分大小写,建议关键字使用大写
*单行注释(--注释内容)(#注释内容,MySQL特有注释方法)
多行注释(/*注释内容*/)
SQL分类:
*DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
*DML:数据操作语言,用来对数据库表中的数据进行增删改
*DQL:数据查询语言,用来查询数据库中表的记录
*DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限
DDL-数据库操作
查询:
*查询所有数据库 SHOW DATABASES;
*查询当前数据库SELECT DATABASE();
创建:
*CREATE DATABASE [IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集[COLLATE 排序规则];
删除:
*DROP DATABASE [IF EXISTS]数据库名;
使用:
*USE 数据库名;
DDL-表操作
查询:
*查询当前数据库所有表SHOW TABLES;
*查询表结构DESC 表名;
*查询指定表的建表语句SHOW CREATE TABLE 表名;
创建:
*CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2字段2类型[COMMENT 字段2注释],
字段3字段3类型[COMMENT 字段3注释],
...
字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];
修改:
*添加字段ALTER TABLE 表名 ADD字段 字段类型[COMMENT 注释][约束];
*修改字段类型ALTER TABLE 表名 MODIFY 字段 新字段类型;
*修改字段和字段类型 ALTER TABLE 表名 CHANGE 旧字段 新字段 新字段类型[COMMENT 注释][约束];
*修改表名ALTER TABLE 表名 RENAME TO 新表名;
删除:
*删除字段ALTER TABLE 表名DROP字段名;
*删除表DROP TABLE [IF EXISTS]表名;
*删除指定表并重新创建该表TRUNCATE TABLE 表名;(等同于把表内数据全部删除)
DML-表中数据操作
添加数据:
*给指定字段添加数据INSERT INTO 表名(字段1,字段2,...)VALUES(值1,值2,...);
*给全部字段添加数据INSERT INTO 表名VALUES(值1,值2,...);
*批量添加数据
INSERT INTO 表名(字段1,字段2,...)VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
INSERT INTO 表名VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);
更新数据:
*UPDATE 表名 SET 字段1=值1,字段2=值2,...[WHERE 条件];
删除数据:
*DELETE FROM 表名[WHERE 条件];
DQL-查询数据库表记录
基础查询:
*查询指定字段SELECT 字段1,字段2,...FROM表名
*查询所有字段SELECT * FROM表名
*查询去重字段SELECT DISTINCT 字段列表FROM表名
*查询字段并起别名SELECT 字段1[[AS] 别名1] FROM 表名
条件查询:
聚合函数:
分组查询:
排序查询:
分页查询:
执行顺序:
DCL-数据权限控制
用户管理:
*查询用户USE mysql;SELECT * FROM user;
*创建用户CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
*修改用户密码ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '密码';
*删除用户DROP USER '用户名'@'主机名';
("%"主机名通配符即代表所有主机,localhost 本机主机)
权限控制:
*查询权限SHOW GRANTS FOR '用户名'@'主机名';
*授予权限GRANTS 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
*撤销权限REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
("*.*"所有数据库及其所有表的通配写法)
函数
字符串函数:
数值函数:
日期函数:
流程函数:
约束
多表查询
事务
基础篇完结(持续在本章更新学习内容)