【数据库-MySQL-从入门到精通】【学习笔记】

数据库-01

  • 1.MySQL安装
    • 1.1 官网下载
    • 1.2 安装
      • 1.2.1 安装失败解决方案:
  • 2.MySQL初学
    • 2.1 数据库基础-命令行形式
    • 2.2 MySQL操作数据库和数据表
    • 2.3 MySQL数据表基本数据类型

鸣谢:
参考文章:https://www.cnblogs.com/wupeiqi/articles/5713315.html

1.MySQL安装

1.1 官网下载

http://dev.mysql.com/downloads/mysql/
【数据库-MySQL-从入门到精通】【学习笔记】_第1张图片
【数据库-MySQL-从入门到精通】【学习笔记】_第2张图片

1.2 安装

初始化:
服务端
mysqld --initialize-insecure
root 无密码

2023-01-08T07:39:59.576240Z 0 [System] [MY-013169] [Server] D:\softwareWork\MySQL\mysql-8.0.31-winx64\bin\mysqld.exe (mysqld 8.0.31) initializing of server in progress as process 11524
2023-01-08T07:39:59.631242Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-08T07:40:12.726847Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-08T07:42:34.297497Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: %o)ywRVqo1>#

启动服务端:
net start MySQL
net stop MySQL
登录:
mysql -u root -p

1.2.1 安装失败解决方案:

https://blog.csdn.net/qubernet/article/details/119677161
https://www.cnblogs.com/zcl789456/p/16586105.html
密码设置:
https://blog.csdn.net/wingrez/article/details/99825144
大小写敏感设置:
https://blog.51cto.com/jeecg/3196966

2.MySQL初学

2.1 数据库基础-命令行形式

连接:
	show databases;
	use {数据库名称};
	show tables;
	select * from 表名;
	默认:用户root
创建用户:
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';
授权:
	权限 人
	grant select,insert,update on db1.t1 to 'alex'@'%'
	

2.2 MySQL操作数据库和数据表

3、学习SQL语句规则
	操作文件夹(数据库)
		create database db2; // 创建db2这个数据库
		create database db3 default charset utf8; // 创建db2这个数据库,并且设置字符编码为utf8,中文编码(新版本的mysql已经默认支持了,不用特地添加配置)

		show databases;
		drop database db2;  // 删除db2这个数据库
	操作文件(数据表)
		show tables;
		create table t1(id int, name char(10));
		create table t1(id int, name char(10)) default charset=utf8;
		create table t1(id int, name char(10)) engine=innodb default charset=utf8;

		// 是否可空,null表示空,非字符串
		create table t1(
			列名 类型 null, //表示,- 不可空
			列名 类型 not null, //表示,- 可空
		)

		// 默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值
		create table t1(
			列名 类型 not null auto_increment, //自增
			列名 类型 not null default, //表示,- 可空
		)
		// auto_increment 表示自增的,但是必须同时是key,
		// primary key主键:表示约束(不能重复且不能为空);加速查找
		create table t3(id int auto_increment primary key, name char(10)) engine=innodb default charset=utf8;
		create table t2(
			id int not null auto_increment primary key,
			name char(10)
		)engine=innodb default charset=utf8;

		innodb 支持事务
		myisam 不支持事务,全局索引速度快

	清空表:
		delete from t2; // 清空后,自增ID不归零。速度慢
		insert into t2(name) value ('alex');
		truncate table t2; // 清空后,自增ID归零。速度快
	删除表:
		drop table t1;

		select * from t1;
		插入数据;
		insert into t1(id,name) value (1,'alex');
		insert into t1(id,name) value (1,'爱丽丝');

2.3 MySQL数据表基本数据类型

数据类型:
	数字:
		tinyint
		int
		bigint
		
		FLOAT
		DOUBLE
		decimal 精准的小数(底层实现是字符串实现)
	create table t1(
		id int not null auto_increment primary key,
		num decimal(10,5), //
		name char(10)
	)engine=innodb default charset=utf8;
	// decimal[(m[,d])] [unsigned] [zerofill]
    // 准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。
	字符串:
		char(10) //速度快
		// char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中m代表字符串的长度。
        // PS: 即使数据小于m长度,也会占用m长度
		varchar(10) //好处节省空间
		// varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
		// 注:虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡
	// 定长字段放表前面,找起来速度快
		text
		// text数据类型用于保存变长的大字符串,可以组多到65535 (2**16 − 1)个字符。
		mediumtext
        // A TEXT column with a maximum length of 16,777,215 (2**24 − 1) characters.
        longtext
        // A TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 − 1) characters.
        上传文件:
        	文件存硬盘
        	db存路径
	时间类型:
		DATETIME
        // YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)
	
	其他:
        enum
        // 枚举类型,
        // An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)
           示例:
               CREATE TABLE shirts (
                   name VARCHAR(40),
                   size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
               );
               INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');

       set
       // 集合类型
       // A SET column can have a maximum of 64 distinct members.
           示例:
               CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
               INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

你可能感兴趣的:(数据库,mysql)