mysql安装2基本SQL命令3数据类型

博客介绍了数据库相关知识,包括数据库软件分类、关系型与非关系型数据库特点及选择要点,还阐述了数据库与数据仓库的区别。重点聚焦MySQL数据库,涵盖其安装、启动、连接方法,基本SQL命令的使用规范,以及数据类型等内容。

数据库

  1. 数据库 :存储数据的仓库
    1. 数据库软件分类 :
      1. MySQL,Oracle,SQL Server,MongoDB,DB2,
        MariaDB,Redis…
      2. 分类 :
        根据数据的存储方式不同,划分为 :
        1. 关系型数据库
          采用标准化的行和列构建二维表存储数据,
          表与表之间的逻辑关联称为关系。
          MySQL, Oracle, SQL Server,DB2,MariaDB
        2. 非关系型数据库 (NoSQL-Not Only SQL)
          采用键值对的形式存储数据
          MongoDB,Redis(缓存)
      3. 如何选择
        1. 数据存储方式
        2. 是否开源 :
          开源 :MySQL MariaDB MongoDB
          闭源 :Oracle DB2 ,SQL Server
        3. 是否跨平台 :
          不跨平台 : SQL Server
          跨平台 :…
  2. 数据库与数据仓库
    数据库 :提供数据存储和数据操作的服务(DataBase)
    数据仓库 :存储海量数据,提供数据分析与挖掘
    (Data WareHouse - DW/DWH)
  3. MySQL 数据库
    1. 关系型数据库 :
      1. 数据以二维表形式存储
      2. 表中的每一行,称为一条记录
      3. 表中的每一列,称为一个字段
      示例 :
1. 关系型数据库存储数据
					表1		学生信息表
								姓名	年龄	班级
								星矢	 20		一班
								水冰月 18		二班
					表2   班级信息表
								班级	班主任 人数
								一班	老王		30
								二班	老张		50
				2. 非关系数据库存储数据
						{"姓名":"星矢","年龄":"20"}
	2. 跨平台 :
		 Ubuntu,windows, CentOS, Linux...
	3. 支持多种开发语言 :
		 Python,Java,PHP...

4. MySQL 安装

1. Ubuntu :
		1. 安装服务端
			sudo apt-get install mysql-server
		2. 安装客户端
			sudo apt-get install mysql-client
		3. ubuntu 软件更新
			1. sudo apt-get update
				 访问源列表中的所有网址,读取软件列表,保存
				 到本地(/var/lib/apt/lists/)
			2. sudo apt-get upgrade
				 把本地已安装软件与刚下载的软件列表进行对比
				 如果当前软件版本低,则更新
			3. 修复依赖关系
				 sudo apt-get -f install
2. windows :
	 下载安装包 xxx.msi
3. Mac :
	 下载安装包 8.0
  1. 启动和连接数据库
    1. 服务端启动 :
      1. 查看MySQL状态
        sudo /etc/init.d/mysql status
        连接服务端
        sudo /etc/init.d/mysql start | stop | restart
    2. 连接客户端
      1. 命令格式 :
        mysql -h主机地址 -u用户名 -p密码
        本机 :
        mysql -hlocalhost -uroot -p123456
        mysql -uroot -p123456
  2. MySQL 语句规范
    1. 每一条命令以;结束
    2. SQL命令不区分大小写
    3. 使用/c终止当前命令

7. 基本SQL命令

1. 库的基本操作
	1. 查看已有库
		show databases;
	2. 创建数据库
		create database 库名; (默认字符集为Latin1)
		create database 库名 character set utf8;
		建库的同时指定字符集
	3. 查看创建库的语句(查看字符集)
		show create database 库名;
	4. 查看当前所在库
		select database();
	5. 使用已有库/切换数据库
		use 库名;
	6. 查看当前数据库中的所有表
		show tables;
	7. 删除数据库
		drop database 库名;
2. 库名的命名规范
	1. 库名自定义,由数字,字母,下划线组成,禁止
		 与关键字冲突,禁止使用纯数字,尽量见名知意
	2. 为了区分库名和表名,可以在库名后添加db
			例: studb
	3. 库名和表名大小写敏感
			例: stuDB
3. 练习
	1. 创建数据库testdb ,指定字符集为utf8
			create database testdb character set utf8;
	2. 进入数据库 testdb
			use testdb;
	3. 查看当前所在库
			select database();
	4. 创建数据库testdb2
			create database testdb2;
	5. 查看testdb2的字符集
			show create database testdb2;
	6. 删除testdb和testdb2
			drop database testdb;
			drop database testdb2;
4. 表的基本操作
	1. 创建表
		create table 表名(字段名 数据类型,
		字段名 数据类型,
		字段名 数据类型);
	2. 查看表的字符集
		show create table 表名;
	3. 查看表结构(表中包含哪些字段)
		desc 表名;
	4. 删除表
		drop table 表名;
	5. 练习 :
		1. 创建库 pyDB,指定字符集为utf8
			 create database pyDB character set utf8;
		2. 在数据库中创建表,tab1,指定 id name age
			 三个字段(int char(10) int)
			 use pyDB;
			 create table tab1(id int,name char(10),age int);

		3. 查看表的字符集
			 show create table tab1;
		4. 查看表结构
			 desc tab1;
		5. 删除表,删除库
			 drop table tab1;
			 drop database pyDB;
5. 表记录管理
	1. 插入记录
		insert into 表名 values (字段值,字段值),(字段值,字段值);
		指定字段插入数据:
		insert into 表名(字段1,字段2) values(字段值,字段值);
	2. 查询记录
		select * from 表名; (查询所有数据)
		select 字段名,字段名 from 表名; (查询指定字段)
		指定查询条件
		select * from 表名 where 条件;
	3. 练习
		1. 查看所在库,查看已有库
		2. 创建新库,userdb
		3. 在新库中创建表 userInfo,设置字符集为utf8,
			 设置字段 id name age
		4. 查看表结构
			 desc userInfo;
		5. 在表中插入几条记录
		6. 在表中针对name,age两个字段插入两条数据
		7. 查询表中所有数据
		8. 查询表中所有姓名
		9. 查询表中所有年龄大于20的姓名信息
			 select name from userInfo where age>20;
6. 更改数据库默认字符集
		1. 方法 :修改数据库的配置文件
		2. 步骤 :
			1. 获取root权限
					sudo -i
			2. cd /etc/mysql/mysql.conf.d/
			3. 文件备份(必须执行)
				 cp mysqld.cnf mysqld.cnf.bak
			4. 修改配置文件
					subl mysqld.cnf
					找 :
						[mysqld]
					添加
						character_set_server = utf8
			5. 保存文件,重启服务
					sudo /etc/init.d/mysql restart
			Mac :
				/etc/my.cnf
  1. 客户端的连接与断开
    连接 : mysql -h主机名 -u用户名 -p密码
    只有连接成功,才可以使用数据库服务,书写
    SQL语句
    断开 :
    exit; | quit; | \q;
    断开与客户端的链接,并不会结束服务
    结束服务使用 :
    sudo /etc/init.d/mysql stop

9. 数据类型

1. 数值类型
	1. 整数
		1. int (大)整型 (占据4个字节)
			 取值范围 :
			 无符号整型(unsigned) :0 ~ 2(32)-1
			 有符号整型(signed 默认为有符号) : -2(31)~2(31)-1
		2. tinyint 微小整型 (占据1个字节)
			 有符号整型 :-128 ~ 127
			 无符号整型 :0 ~ 255
			 例 :
					age tinyint unsigned
		3. smallint 小整型 (占据2个字节)
		4. bigint		(极)大整型 (占据8个字节)
	2. 浮点数
		1. float (4个字节,最多表示小数点后7位)
				用法 :
					字段名 float(m,n)
					m表示总位数,n表示小数位的位数
		2. double(8个字节,最多表示小数点后15位)
		3. decimal 最多表示到小数点后28位
				用法 :
					decimal(m,n)
	3. 练习
		1. 创建库 studb,在库中创建表stuInfo,要求
				id   大整型(int)
				name 字符型 char(10)
				age  无符号微小整型
				height 浮点型表示,2位小数位,3位整数位
				weight 浮点型,3位整数位,3位小数位
				---------------------------------
				create table stuInfo(
				id int,
				name char(10),
				age tinyint unsigned,
				height float(5,2),
				weight decimal(6,3)
				);
		2. 查看表结构
		3. 查看字符集
		4. 插入一条完整记录
		5. 在 id name两个字段下插入两条数据
		6. 查询所有学生的id和姓名
	4. 浮点型使用注意 :
		1. 如果插入的是整数数据,小数位会自动补0
		2. 如果插入数据的小数位超出指定位数,会自动
			 四舍五入
		3. 整数位超出限制,插入失败
2. 字符类型
	1. 定长 char(长度)
		 长度取值范围 :1 ~ 255
	2. 变长 varchar(长度)
		 长度取值范围 :1 ~ 65535
		 定长与变长的区别 :
		 定长 :根据指定的长度固定分配存储空间
							char(10)
							存储'a',也要分配10个字符的空间
						优点 :效率高,速度快
						缺点 :浪费存储空间

		 变长 :在不超过指定长度的情况下,动态分配存储
						空间
							varchar(10)
							存储'a',动态根据数据的字符长度分配空间
						优点 :节省存储空间
						缺点 :效率比定长存储要低
		 共同点 :
			 给出的长度,就是最大输入的字符数,超出则
			 无法存储
			 例 :
					name varchar(10)
					"wangzhaojun" 超出无法存储
	3. 长文本存储
			text
			longtext (4G)
	4. 二进制数据存储
			blob
			longblob (4G)
	5. 数值类型的显示宽度与字符型的最大字符数
			int(11) 显示宽度与存储空间无关
				借助zerofill关键字,查看整型的显示宽度
				例 :
					id int(5) zerofill
					存储数据 :
					insert ... (5)  ->显示00005
					insert ... (1234567)  -> 显示1234567
					insert ... (123456789012345):
						error : 超过了当前数据类型的表示范围
						int unsigned : 2(32) - 1 (42亿多)

			char(10)设置数据的存储空间,超出则无法存储
3. 枚举类型
		1. enum 类型 (表示单选)
			枚举是一个字符串对象,可以将一些
			不重复的字符串存储成一个预定义的集合,字段存储
			数据时,必须从集合中选择,不在集合范围的都是非法值
			例 :
				gender enum('男','女','保密');
				枚举类型会自动为集合中的字符串选项分配下标
				查询时,可根据下标表示对应的值
				select * from ...where gender="男";
				等价于
				select * from ...where gender=1;
		2. set 类型 (实现多选)
			特殊的枚举类型,用法与enum一致,提供字符串类型
			的集合(选项)
			例 :
				sportcourse set('篮球',"足球");
				inert ... values(1,"zhangsan","篮球,足球");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值