sql
1.什么是SQL
Structured Query Language : 结构化查询语言
其实就是定义了操作所有关系型数据库的规则,每一种数据操作的方式存在不一样的地方,称为“方言”
2.SQl通用语法
1.SQl 语句可以单行或多行书写,以分号结尾。
2.可使用空格和缩进进来增强语句的可读性
3.MySQL 数据库的SQl语句不区分大小写,关键字建议使用大写
4.3中注释
* 单行注释:-- 注释内容 或 # 注释内容(mysql特有)
* 多行注释: /* 注释 */
3.SQL分类
1:DDL数据定义语言
用来定义数据库对象:数据库 ,表 ,列等,关键字:create drop ,alter 等。
2:DML数据操作语言
用来对数据库中表的数据进行操作增删改。关键字:insert delete update 等
3:DQL数据查询语言
用来查询数据库中表的记录(数据)。 关键字:select where 等
4:DCL数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT , REVOKE
5:操作数据库:
* 创建数据库 create database 数据库名称。
* 创建数据库,判断不存在,在创建。 create database if not exists 数据库名称。
* 创建数据库,并指定字符集 create database 数据库名称 character set 字符集名;
* 查询某个数据库的字符集:show create database 数据库名称
* 查询所有数据库的名称 show databases;
* 修改数据库的字符集 alter database 数据库名称 character set 字符集名称;
* 删除数据库 drop database 数据库名称;
* 判断数据库存在,存在再删除 drop database if exists 数据库名称。
* 查询当前正在使用的数据库名称 select database();
* 使用数据库 use 数据库名称
6:操作表
* 查询某个数据库中所有的表名称 show tables;
* 查询表结构 desc 表名
* 数据库类型: int double date:日期,只包含年月日 datetime:日期,包含年月日时分秒 varchar timestamp:时间错类型,包含年月日时分秒不赋值默认当前的系统值。
* 删除表 drop table 表名称 drop table if exists 表名
* 修改表名 alter table 表名 rename to 新的表名
* 修改表的字符集 alter table 表名 character set 字符集名称
* 添加一列 alter table 表名 add 列名 数据类型;
* 修改列名称 类型 alter table 表名 change 列名 新列名 新数据类型。
alter table stu modify 列名 新数据类型;
* 删除列 alter table 表名 drop 列名。
7:DML:增删改表中数据
* 添加数据 insert into 表名(列名1......) values(值1......)
* 删除数据 delete from 表名[where 条件]
* TRUNCATE TABLE 表名:推荐使用,效率快
* 修改数据 update 表名 set 列名1 = 值1 ,列名2 = 值2;
4.数据库的备份和还原
* 命令行:备份 mysqldump -u用户名 -p密码 > 保存的路径
* 还原 :
登录数据库
创建数据库
使用数据库
执行文件 source 路径
5.管理用户
* 添加用户:create user '用户名'@'主机名' identified by '密码';
* 删除用户: drop user '用户名'@'主机名';
* 修改密码: update user set password = password('新密码') where user = '用户名';
set password for '用户名'@'主机名' = password('新密码');
* Mysql中忘记root用户的密码
1.cmd --> net stop mysql 停止mysql服务 * 需要管理员来操作
2.使用无验证方式启动mysql服务:MySQL --skip--grant--tables
3.打开新的cmd窗口直接输入mysql命令,敲回车。就可以登陆成功
4.use msyql;(在打开个窗口)
5.update user set password = password('新密码')
6.关闭两个窗口
7.打开任务管理器,手动结束mysql.exe的进程
8.启动mysql服务
9.使用新密码登陆。
6.权限管理:
1.查询权限 Show GRANTS For '用户名'@'主机名';
2.授予权限 grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.撤销权限 revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';