mysql整理

一、数据库的概念
1.DB和DBMS的概念

DB是数据库集合   
DBMS是数据库管理系统,可以对数据库进行控制
2 数据库的分类:
		-关系型数据库: Oracle mysql  db2 SQL server
		-非关系型数据库: Nosql

二、MySQL的安装与卸载

	-安装路径不要有中文特殊符号
	-卸载用remove 不要直接删除 

三、mysql的服务与登录

	-服务启动和关闭(管理员运行cmd)
		1) net start  mysql
		2)net stop mysql
	-登陆的三种方式
		1)命令提示符
				mysql -h hostname -P port -u username -p 
			2)	客户端(可视化图形工具)
			3)编程语言  jdbc等

四、密码的修改

	-进入mysql后有三种方式
		1)alter user username@ip identified by '新密码';
		2)set password for username@ip=password('新密码');
		3)修改mysql库里的user表中的密码字段
		->use mysql
		->update user set authentication_string=password('新密码') where user='root' and host='localhost';
		->flush privileges;
	-不进入mysql
		mysqladmin -u username -pOldPassword password newPassword	
		-忘记密码
		停止服务,进入my.ini ,加入skip-grant-tables(跳过权限检查)  启动服务 按照第三种修改密码的方法进行操作,修改完关闭服务,进入my.ini 删除掉skip-grant-tables,启动服务, 成功修改密码

五、sql语言的概念和分类

	-结构化查询语言,在DBMS中管理和维护DB的
	-五类
		DDL DML DQL DCL TCL

六、DDL之库操作

	-创建数据库
1)	create database 库名;
2) create database 库名 character set utf8;
	-修改数据库的字符集
	alter database 库名 character set utf8;
	-查看数据库
		1)查询所有数据库
		show databases;
		2)查询当前数据库
		select database();
		3)查看建库语句
		show create database 库名;
	-切换数据库
	use 库名;
	-删除数据库
	drop database 库名;(若有表能否删除成功?)
	-查看字符集:show variables like 'character%';
	-查看数据库的数据文件的路径(数据目录的位置)
				show variables like 'datadir%';

七、DDL之表操作

	-创建表(可以同时指定字符集)create table [if not exists] tableName () character  set charName;
	-查看表
		1)查看表结构
		desc tablename;
		2)查看建表语句
		SHOW CREATE TABLE  tablename;
		3)查看库里的所有表
		show tables;
	-修改表结构
		1)添加字段
		alter table tabname add  sex  varchar(5);
		2)修改字段类型
		alter table tabname  modify sex char(1);
		3)修改字段名称
		alter table tabname change sex sex1 char(1);
		4)删除字段 
		ALTER TABLE t_users DROP sex1;
	-重命名表名 rename table oldTableName to newTableName
	-克隆表结构 create table tableName like oldTableName
	-复制表		 create table tableName as select [colName......] from  oldTableName [condition];
	-truncate关键字:把表删除后,重建(无法找回)
	DELETE 和 TRUNCATE
		1. delete删除表中的数据,表结构还在;删除的数据可以恢复。
		2. truncate是直接将表DROP掉,然后再按照原来的结构重新创建一张表。数据不可恢复。
		3. truncate删除效率比delete高。

八、DML操作

	-insert into
		1)给所有字段赋值写法
		insert into tableName values (...,.....);
		2)给指定字段赋值写法
		insert into tableName (colName, ......) values (........);
		3)如果没有非空约束,那么所有字段值都可以是null,默认也是null
	-delete
       	# 删除数据 DELETE FROM t_student;
 	    # 按照条件进行删除 WHERE DELETE FROM t_student WHERE sname = '韦一笑'; 
        # 删除掉表中所有的数据 TRUNCATE TABLE t_student;
	-update 修改数据
	UPDATE t_student SET score_mysql = score_mysql + 10 where sname = '灭绝师太';
	-null值操作
		-在where中
		-在set中

九、DQL操作

-基本查询语句的子句组成
-select关键字可以做运算操作: select empno,ename,sal(ifnull(comm,0)  '收入' from emp;
-子句的执行顺序
	1. 先执行from子句:基于表进行查询操作
	2. 再执行where子句:进行条件筛选或者条件过滤 
	3. 再执行group by子句:对剩下的数据进行分组查询。 
	4. 再执行having子句:分组后,再次条件筛选或过滤 
	5. 然后执行select子句:目的是选择业务需求的字段进行显示 
	6. 再执行order by子句:对选择后的字段进行排序 
	7. 最后执行limit子句:进行分页查询,或者是查询前n条记录
-where子句
	-关系表达式 >,>=,<,<=,=,!=,<>
	-条件连接符 and,or, [not] between ..and..
	-集合操作:[not] in (set)
						>all(set).....
	-模糊查询:like
		占位符:_
		多字通配符:%
-分组查询
		-通常和聚合函数一起用
		-聚合函数有忽略空值的特点 要考虑avg   ifnull(colName,value);
		-聚合函数(五个)
		注意:
		 - 所有的聚合函数,都会忽略字段为null的那条记录。 
		- count(*),不会忽略null值所在的行记录,即通常用于统计总行数。
-having子句
	分组后过滤, 多数情况下和关系表达式结合
-order by 子句
	用于排序,可以指定多个字段进行排序,会先按照第一个字段排序 相同则找第二个进行排序
-limit 分页
	-真分页和假分页(假分页一次性从数据库查询所有,在内存中分页 容易造成内存溢出)
	-limit [m,] n
			m 表示从第几条记录开始查询,没m,表示从0开始查询n条
			n是查询的记录数
	-mysql的记录的下标是从0开始
-去重关键字 distinct

十一、多表查询(关联查询)

-概念
-写法:
 	-第一种是在from子句中,直接写多个表名,表名之间使用逗号分隔开,如: select A.*,B.*,C.* from A,B,C where 关联条件 
	-第二种是在from子句中,多个表名之间使用join关键字连接,并在on关键字后面添加关联条件。 
		- select A.*,B.*,C.* from A join B on 关联条件 
		- select A.*,B.*,C.* from A join B on AB关联条件 join C on AC或BC关联条件 
		- select A.*,B.*,C.* from A join B join C on AB的关联条件 and BC或AC关联条件
-笛卡尔积(无意义)
-join连接
	1)内连接 (和等值连接效果一样,度娘说join快where)
	2) 外连接: 驱动表的概念 全显示驱动表值(包括null)
		-左外连接
		-右外连接
		-全外连接用union 连接两个select语句
	3)自连接

连接图
十一、子查询

-概念
-在where子句中
-在from子句中
-在having子句中
-在select子句中
-扩展
	case when语句
	case [colName] when 条件或者固定值 then 值
							when 条件或者固定值 then 值
							。。。。
							else 值
							end
	if(condition,value1,value2)

十二、约束

-概念
-NN
-UK
-PK
-FK
-CK: MySQL中语法通过,但是ck失效 可以使用enum

十三、函数

-日期函数
-字符串函数
-数值函数

十四、DCL操作

-用户操作
	1)创建用户
	2)修改用户密码
	3)删除用户
-权限操作
	1)授权
	2)撤销权限
	3)刷新权限

十五、数据库备份

-mysqldump命令

十六、exists关键字的使用

-用途:遍历左表中的数据是否存在,存在就返回该值,直接break执行下一次扫描,比in快 (根据对右表的查询的结果来判断,左表和右表必须有关联)
-[not] exists
-必须放在where关键字后

十七、sql模式(5.6与5.7存在某些差别)

select @@sql_mode; 

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值