标签:text 代码 data 学习 技能 insert like 授权 建表
MySQL
	
	单机程序(自己DB)
	
	单机程序(公用DB)
	MySQL:是用于管理文件的一个软件
		- 服务端软件
			- socket服务端
			- 本地文件操作
			- 解析指令【SQL语句】
		- 客户端软件(各种各样)
			- socket客户端
			- 发送指令
			- 解析指令【SQL语句】
		
		PS:
			- DBMS数据库管理系统
			- SQL语句
			
	技能:
		- 安装 服务端和客户端
		- 连接
		- 学习SQL语句规则;指示服务端做任意操作
		
	其他类似软件:
		关系型数据库:sqllite,db2,oracle,access,sql server MySQL
		非关系型数据库:MongoDB,redis
	
1. MySQL安装
	
	Windows:
		可执行文件
			点点点
		压缩包
			放置任意目录
			初始化
				服务端:E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --initialize-insecure
					    # 用户名 root 密码:空
			启动服务端:
				E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysqld
				
			客户端连接:
				E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysql -u root -p 
				
				发送指令:
					show databases;
					create database db1;
				
			环境变量的配置:
				E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin
				mysqld
				
			windows服务:
				E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --install
				net start MySQL
				
				E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --remove
				
				net start MySQL
				net stop MySQL
	
2. 关于连接
	
	文件夹【数据库】
		文件【表】
			数据行【行】
			数据行
			数据行
		
	连接:
			
		默认:用户root
		
		
		show databases;
		
		use 数据库名称;
		
		show tables;
		
		select * from 表名;
		
		select name,age,id from 表名;
		
		mysql数据库user表
		use mysql;
		select user,host from user;
	
		创建用户:
			  create user ‘alex‘@‘192.168.1.1‘ identified by ‘123123‘;
			  create user ‘alex‘@‘192.168.1.%‘ identified by ‘123123‘;
			  create user ‘alex‘@‘%‘ identified by ‘123123‘;        # %代表所有IP地址
		授权:
			  权限  人
			  
			  grant select,insert,update  on db1.t1 to ‘alex‘@‘%‘;
			  grant all privileges  on db1.t1 to ‘alex‘@‘%‘;
			  
			  revoke all privileges on db1.t1 from ‘alex‘@‘%‘;    # 删除权限
			  
		DBA: 用户名密码
	
3. 学习SQL语句规则
	操作文件夹
		create database db2;
		create database db2 default charset utf8; *****    # 默认编码设置为utf8
		show databases;
		drop database db2;
	
	操作文件
		show tables;
		create table t1(id int,name char(10)) default charset=utf8;
		create table t1(id int,name char(10))engine=innodb default charset=utf8;  # engine=innodb  原子操作,意外断开会回复初始状态
		create table t3(id int auto_increment,name char(10))engine=innodb default charset=utf8;  *****
		 
		create table t1(
			列名 类型 null,
			列名 类型 not null,
			列名 类型 not null auto_increment primary key,  # auto_increment 自增
			id int,
			name char(10)
		)engine=innodb default charset=utf8;
			# innodb 支持事务,原子性操作
			# myisam myisam
			
			auto_increment 表示:自增
			primary key:  表示 约束(不能重复且不能为空); 加速查找
			not null: 是否为空
			数据类型:
				
				数字:
					tinyint
					int
					bigint
					
					FLOAT
						0.00000100000123000123001230123
					DOUBLE
						0.00000000000000000000100000123000123001230123
						0.00000100000123000000000000000
					decimal      # 准确,支持自选精度
						0.1
					
				字符串:
					char(10)      速度快()
						root      
						root     
					varchar(10)   节省空间
						root
					PS: 创建数据表定长列往前放
					
					text
					
					上传文件: 
						文件存硬盘
						db存路径
				时间类型
					DATETIME
			
				enum
				set
				
				
			create table t1(
				id int signed not null auto_increment primary key,
				num decimal(10,5),
				name char(10)
			)engine=innodb default charset=utf8;
		
		清空表:
			delete from t1;    # 清空后自增继
			truncate table t1;  # 清空后主键ID清零
		删除表:
			drop table t1;
		
	操作文件中内容
		插入数据:
			insert into t1(id,name) values(1,‘alex‘);
		删除:
			delete from t1 where id<6
		修改:
			update t1 set age=18;
			update t1 set age=18 where age=17;
		查看数据:
			select * from t1;
	
	外键:
	
		create table userinfo(
			uid int auto_increment primary key,
			name varchar(32),
			department_id int,
			xx_id int,
			constraint fk_user_depar foreign key (department_id) references color(id)
		)engine=innodb default charset=utf8;
		
当外键的表两列组成一个主键,括号里可以使两个列名
		create table department(
			id bigint auto_increment primary key,
			title char(15)
		)engine=innodb default charset=utf8;
innodb原子操作
对于自增:
desc t10; 查看表的属性
show create table t10 \G; 查看创建表的代码属性等
alter table t10 AUTO_INCREMENT = 20; 设置表的下一次自增从20开始
MySQL自增步长:
基于会话级别:登陆期间修改的话有效,退出登录后步长失效
基于会话级别:
				show session variables like ‘auto_inc%‘;	查看全局变量
                set session auto_increment_increment=2; 	设置会话步长
				# set session auto_increment_offset=10;
			基于全局级别:
				show global variables like ‘auto_inc%‘;	    查看全局变量
                set global auto_increment_increment=2; 	    设置会话步长
				# set global auto_increment_offset=10;
标签:text 代码 data 学习 技能 insert like 授权 建表
原文地址:https://www.cnblogs.com/Mr-Feng/p/10914918.html