一. SQL
SQL:Structured Query language 结构化查询语言。定义了操作所有关系型数据库的规则
*
* 通用语法:
* 1.语句可以单行或多行书写,以分号结尾
* 2.使用空格和锁紧增强语句的可读性。
* 3.MySQL数据库中sql语句不区分大小写,关键字建议用大小写。
* 4.注释:
* 单行注释: --注释内容 #注释内容
* 多行注释: /**/
* 分类:
* 1.DDL 数据定义语言,定义数据库对象:数据库,表,列。 关键字:create,drop,alter
* 2.DML 数据操作语言,表中数据增删查改。 关键字:insert delete,update
* 3.DQL 数据查询语言,查询数据库中标的记录。 关键字:select,where
* 4.DCL 数据控制语言,用来定义数据库访问权限和安全级别,创建用户。 关键字:Grant ,Revoke
二. DDL
1.数据库操作C(Create)R(Retrieve)U(Update)D(Delete)
* 创建:
* create database db-name (character set 字符集名);
* create database if not exists db-name;
* 查询:
* show database db-name;
* show create database db-name;查询数据库字符集
* 修改:
* alter database db-name character set 字符集名称;
* 删除:
* drop database db-name;
* 使用数据库:
* select database();
* use db-name
*
2.表操作
* 创建:
* create table 表名(
* 列1 数据类型1,
* 列2 数据类型2,
* ...
* 列n 数据类型n
* );
*
* 查询:
* show tables;
* desc 表名;查询表结构
* 修改:
* 表名:alter table 原列名 rename to 新列名;
* 字符集:alter table 表名 character set 字符集名称;
* 添加列:alter table 表名 add 列名 数据类型;
* 修改列名:alter table 表名 change 原列名 新列名 字符集名称;
* 修改列类型:alter table 表名 modify 列名 字符集名称;
* 删除列:
* 删除:
* drop table 表名;
* drop table if exists 表名;
三. DML
DML:增删改表中数据
* 1.添加数据
* insert into 表名(列名1,列名2..列名n) values (值1,值2,值n)
* 除了数字类型其他类型需要使用引号引起来
* 2.删除数据
* delete from 表名 where 条件
* 不加条件,则删除所有记录
* 删除表: Truncate table 表名;
* 3.修改数据
* update 表名 set 列名1=value1,列名2=value2... where 条件
四. DQL
DQL:查询语句
* 查询语法:
* select 字段 from 表 where 条件 group by 分组字段 having 分组条件 order by 顺序 limit 分页限定
*去除重复结果集
* distinct SELECT DISTINCT sex FROM stu
*常用运算符:
* A or B or C =in (A,B,C)
* like模糊查询: _ 单个任意字符 % 多个任意字符
*判断null:
* ifNUll(为null值,替代值)
*
* 1.排序查询:order by
* 2.聚合函数:排除null. sum count min max avg
* 3.分组查询: group by
* 查询字段:分组字段(group by后分组的字段),聚合函数
* where 与 having:
* 1)where 分组前限定,having分组后限定
* 2)having可对聚合函数进行判定。
* 4.分页查询:limit 开始的索引,每页查询的条数
* 公式:开始的索引=(当前页码-1)*每页显示的条数
五. DCL
DCL:管理用户,授权。
* 1.管理用户:
* 用户添加
* create user ‘username’@'host' identified by 'password'
* 用户删除
* Drop user 'username'@'host'
* 修改用户密码
* Update user set password =password('new pw') where user='username'
* set password for 'username'@'host' = password('new pw')
* 忘记root密码:
* net stop mysql --以管理员身份停止mysql服务
* mysql --skip-grant-tables --使用无验证启动mysql
* 修改用户密码,关闭服务。
* 打开服务 net start mysql;根据新密码启动数据库
* 查询用户
* use mysql;
* select * from user
* 2.授权
* 查询权限:
* show grants for 'user'@'host'
* 授予权限:
* grant 权限列表 on 数据库名.表名 to 'user'@'host'
* 最高权限:GRANT ALL ON *.* TO 'user'@'host'
* 撤销权限:
* revoke 权限列表 on 数据库名.表名 from 'user'@'host'