时间:2021-07-01 10:21:17 帮助过:16人阅读
mysql是一种处理文件操作的一款软件,是关系型的数据库,关系型可以理解为“表格的概念”,一个关系型数据库由一个或多个表格组成。
     --表头(header) 每一列的名称;
	    --列  (row) 具有相同数据类型的数据的集合;
	    --行  (col) 每一行用来描述个人或物的信息;
	    --值  (values) 行的具体信息,每个值必须与该列的数据类型相同;
	    --键  (key)  表中用来识别某个特定的人或物的方法,键的值在当前列中具有唯一性;
  	      服务端软件
		      socket服务端
		      本地文件操作
		      解析sql语句
	    客户端软件
		      socket客户端
		      发送指令
		      解析sql语句
		
  PS:
		      DBMS数据库管理系统
		      SQL语句
		
	    其他类似软件:
		      --关系型数据库:sqllite,db2,oracle,access,sql server,mysql
		      --非关系型数据库:MongoDB,redis
Windows下的mysql安装,配置
安装
	    www.mysql.com 官网下载
	    1,安装windowns服务: mysqld --install
	    2,初始化data文件:mysqld -- initialize -insecure
	
	    初始化完后,会有一个默认的root用户,密码是空
	
	    连接mysql服务器: net start mysql
	    关闭mysql服务器:net stop mysql
	    卸载mysql服务器:sc delete mysql
	  使用 mysqladmin 方式:
	    修改密码: mysqladmin -u root -p password 新密码
	     set password for ‘用户名‘@‘IP地址‘ = Password(‘新密码‘)
	
使用mysql
  mysql数据类型:
	    数字:unsigned加上是表示"无符号"
		     
		      整形
			        int
				          有符号:
					            -2147483648 ~ 2147483647
				          无符号:
					            0 ~ 4294967295
			        tinyint
			
				          有符号:
					            -128 ~127
				          无符号:
					            0 ~ 255
			      bigint
				          有符号:
					            -9223372036854775808 ~ 9223372036854775807
				          无符号:
					             0  ~  18446744073709551615
		
		    浮点型
			        float 精度丢失,到了一定长度精度丢失
			        double 精度丢失,比float大一倍左右才会丢失精度
			        decimal 精度最高(可指定长度跟小数点位数)
				          decimal(65,30) 最大值
				          对于精确数值计算时需要用此类型
                             decaimal能够存储精确值的原因在于其内部按照字符串存储。
	    字符串:
		        char  查找速度快
			            用于表示固定长度的字符串,最多255字符
		        varchr 节省空间
			            不固定长度的字符串,最多255字符
		        文本:text ,tinytext,mediumtext,longtext
			            上传大文件:文件存硬盘
						            路径存数据库
		        enum 枚举类型
			            五个列中,只能选择一个
		        set 集合类型
			            create table myset(col("a","b","c","d"))
			            inert into myset (col) values("a",("c")),("d","a");
			            可以多个组合
			
		        二进制(存图片,音乐,视频等):tinyblob, blob,mediumblob
	
	    时间类型:
		        DATE
			          年月日
		        TIME
			          时分秒
		        DATETIME
			          年月日时分秒
		        TIMESTAMP
			          从1970-01-01 00:00:00开始
			
创建用户:
		    --登录:mysql -u 用户名 -p;  (-p是密码)
				    mysql -D 所选的数据库名 -u 用户名 -p
				
	
		    --选择数据库连接:use 数据库名;
		    --必须是登录的root用户
		    --连接mysql数据库
		    create user "用户名"@"IP地址" identifed by "密码";
		
		    root1只能在192.168.0.1这个IP上登录
		    create user "root1"@"192.168.0.1" identifed by "123";
		
		    %是代表所有的ip都能登录
		    create user "root1"@"%" identifed by "123";
  删除用户:
		    drop user "用户名"@"IP地址";
		
  修改用户:
		    rename user "用户名"@"IP地址" to "新用户"@"IP地址";
		
		
  授权:
		    给root1用户在所有的IP都能登录给root1用户 查看,插入, 更新的权限
		    grant select,insert,update on 数据库名 to "root1"@"%";
		
		    给root1用户在所有的IP都能登录,在db这个数据库的所有操作权限
		    grant all privileges on db to "root1"@"%";
		
		
		
		
数据库操作
	
	
	  查看:
		    show databases; 
	   创建:				
		    create database 数据库名 default charset utf8;
		
		    default charset utf8指定字符编码
		
	  删除:
		    drop database 数据库名;
表操作
	
	    查看:
		    show tables;
	  创建:
		    create table 表名(列 类型 auto_increment primary key,
		              列 类型 )engine=innodb default charset utf8;
		
		
		    create table 表名(id int auto_increment primary key,
						            name char(10) not null,
						            age tinyint unsigned not null)engine=innodb default charset utf8;
      解释:
		        auto_increment 自增,
		        primary key 约束(不能重复也不能为空)加速查找速度,
		        两者是在一起用的,给一列数据用,
		        engine=innodb 指定引擎  支持事物,原子性操作,不指定默认myisam
		        not null 指定该列的值不能为空,必须要填
		        null  可为空
		        unsigned 修饰int类型,表示int是无符号
		
		
	  清空表:
		    delete from 表名; 	删除表里的内容,表还存在,
		    truncate table 表名; 	删除表里的内容,表还存在
		
	  删除表:
		    drop table 表名; 	删除整张表
		
创建后表的操作:
	    --添加列:
		     alter table 表名 add 新列名 新列数据类型;
		
		     alter table 表名 add 新列名 新列数据类型 alter 插入位置;
		
	   --修改列:
		
		      修改列名
		        alter table 表名 change 列名 新列名 新数据类型;
		      修改列的数据类型
		        alter table 表名 change 列名 列名 新数据类型;
		
	    --删除列:
		      alter table 表名 drop 列名;
		
	    --重命名表:
		      alter table 表名 rename 新表名;
		
表内文件操作
		  增:
			    插入部分数据
			      insert into 表名(列名1,列名2....) values (值1,值2....)
			
			    插入所有列的数据,表中有几列,就需要添加几个值
			      insert into 表名 values (值1,值2,值3....);
		
		  删:
			    delete from 表名 where 删除条件;
		
		  改:
			    update 表名 set 列名=新值;
			    update 表名 set 列名=新值 where 更新条件;
		
		
		  查:
			    select * from 表名; 查询表内所有信息;
			
			    select 列名1,列名2 from 表名; 两列的信息;
			
			    select * from 表名 where age>20; 从表中找出age>20的所有信息
			     > = < >= <= != or and》等等
初识-------------MySql-----------------------------
标签:null 登录 install oat 事物 roo char where man