MySql---database notes (complete functions)

###数据库
####数据库简介
- 通过IO流自己对数据进行操作需要写
- 大量的代码,而且不能保证程序的执行效率,IT行业中凡是很常用实现又很麻烦的业务,通常会有完整的解决方案,数据库软件就是对数据增删改查的解决方案,程序员只需要学习如何使用数据库软件即可。
- 什么是DBMS: DataBase数据库Management管理System系统(数据库管理软件),常见的DBMS: MySQL、Oracle、DB2、SQLserver等
####DBMS介绍:
1. MySQL: Oracle公司产品, 08年被SUN公司收购,09年Sun公司被Oracle收购,担心MySQL被闭源,原MYSQL创始人们离开Oracle创建了MariaDB,市场占有率排名第一。
2. Oracle: Oracle公司产品,市场占有率排名第二,性能最高,价格最贵,老板拉力.艾莉森。
3. SQLServer: 微软公司产品,市场占有率排名第三,主要应用在微软的整套解决方案中
	整套解决方案: 开发语言+操作系统+web服务软件+数据库软件
4. DB2: IBM公司产品,一般应用在IBM整套解决方案中
5. SQLite: 轻量级数据库。安装包只有几十k,应用在移动设备和嵌入式设备中
- 开源和闭源区别:
1. 开源: 开放源代码,免费,盈利方式:靠提供服务赚钱,有技术大牛无偿维护升级。
2. 闭源:不公开源代码,收费,盈利方式:靠卖产品和卖服务赚钱,有技术大牛攻击,不过公司有钱可以养一帮人维护。
###SQL
- Structured Query Language:结构化 查询 语言  ,用于程序员和数据库之间的交流,学习数据库主要学习的就是这门语言
####如何连接MySQL数据库软件
1. window:
2. linux:在空白区域右键-》终端-》mysql -uroot -p 回车-》输入密码(没有密码直接敲回车)敲回车
3. 退出指令: exit
####数据库相关SQL
1. 查询所有数据库
- 格式:show databases;
2. 创建数据库并指定字符集
- 格式: create database 数据库名 character set utf8/gbk;
	create database db1 character set utf8;
	show databases;
	create database db2 character set gbk;
3. 查看数据库详情
- 格式: show create database 数据库名;
	show create database db1;
4. 删除数据库 
- 格式: drop database 数据库名;
	drop database db1;
5. 使用数据库
- 格式: use 数据库名;
	use db1;(前提db1已经存在)
- 练习:
	1. 分别创建mydb1和mydb2数据库 第一个是gbk第二个是utf8
	2. 创建完后查询两个是不是都存在
	3. 查询两个字符集是否正确
	4. 先使用mydb1再使用mydb2
	5. 删除两个数据库 
	
####表相关SQL
- 表相关的各种操作必须已经使用了数据库 
	create database db1 character set utf8;
	use db1;
1. 创建表
- 格式: create table 表名(字段名 类型,字段名 类型);
	create table person(name varchar(10),age int);
- 练习: 创建学生表student 字段有: 学号id 姓名name 语文chinese 数学math 英语english
	create table student
	(id int,name varchar(10),chinese int,math int,english int);
2. 查询所有表
- 格式: show tables;	
3. 查看表详情
- 格式: show create table 表名;
	show create table student;
4. 创建表指定字符集
- 格式: create table 表名(字段名 类型,字段名 类型) charset=utf8/gbk;
	create table t1(name varchar(10),age int)charset=gbk;
	show create table t1;
5. 查看表字段
- 格式: desc 表名;
	desc student;
6. 删除表
- 格式: drop table 表名
	drop table t1;
7. 添加表字段 
- 最后添加格式: alter table 表名 add 字段名 类型; 
	alter table person add sal int;
- 最前面添加格式:alter table 表名 add 字段名 类型 first; 
	alter table person add id int first;
- xxx的后面添加格式:alter table 表名 add 字段名 类型 after xxx; 
	alter table person add gender varchar(10) after name;
8. 删除表字段
- 格式: alter table 表名 drop 字段名;
	alter table person drop gender;
9. 修改表字段名和类型
- 格式: alter table 表名 change 原名 新名 新类型;
	alter table person change sal gender varchar(10);
####数据库和表相关练习:
1. 创建数据库mydb1 字符集为utf8   并使用该数据库
	create database mydb1 character set utf8;
	use mydb1;
2. 在mydb1中创建员工表emp  字段有name   字符集为utf8
	create table emp (name varchar(10)) charset=utf8;
3. 添加表字段age在最后面
	alter table emp add age int;
4. 添加id字段在最前面
	alter table emp add id int first;
5. 添加sal字段在name的后面
	alter table emp add sal int after name;
6. 修改字段sal为salary
	alter table emp change sal salary int;
7. 删除age字段  alter table emp drop age;
8. 删除emp表    drop table emp;
9. 删除数据库   drop database mydb1;
####数据相关SQL
create database newdb1 character set utf8;
use newdb1;
create table emp(id int,name varchar(10),age int);
1. 插入数据
- 全表插入格式: insert into 表名 values(1,2,3);
	insert into emp values(1,'Tom',18);
- 指定字段格式:insert into 表名(字段名1,字段名2)values(1,2);
	insert into emp(name,age) values('Jerry',15);
- 批量插入数据格式:
	insert into emp values(4,'悟空',500),(5,'八戒',300),(6,'沙僧',200);
	insert into emp(name,age) values('刘备',25),('关羽',23),('张飞',18);
- 中文问题:
	insert into emp values(3,'刘德华',25);
	如果有同学执行以上SQL语句报错的话执行以下SQL语句即可
	set names gbk;
2. 查询数据
- 格式: select 字段信息 from 表名 where 条件;
- 举例:
	1. 查询所有的员工姓名   select name from emp;
	2. 查询所有员工的所有信息  select * from emp;
	3. 查询年龄小于100岁的员工姓名和年龄 
		select name,age from emp where age<100;
	4. 查询悟空的信息
		select * from emp where name='悟空';
3. 修改数据
- 格式: update 表名 set 字段名=,字段名=where 条件;
- 举例:
	1. 修改悟空名字为孙悟空
		update emp set name='孙悟空' where name='悟空';
	2. 修改刘备年龄为50update emp set age=50 where name='刘备';
	3. 修改30岁以下的员工年龄为10update emp set age=10 where age<30;
4. 删除数据
- 格式: delete from 表名 where 条件;
- 举例:
	1. 删除Tom
		delete from emp where name='Tom';
	2. 删除年龄10岁的员工
		delete from emp where age=10;
	3. 删除所有数据
		delete from emp;
####练习:
1. 创建hero表 id  名字name  类型type  价格money
	create table hero(id int,name varchar(10),type varchar(10),money int);
2. 保存以下数据
	insert into hero values
	(1, '诸葛亮', '法师', 18888),   (2, '周瑜', '法师', 13888),
	(3, '孙悟空', '打野', 18888),   (4, '小乔',  '法师', 13888),
	(5, '黄忠',   '射手', 8888),    (6, '刘备',  '战士', 6888);
3. 修改所有1888828888  
	update hero set money=28888 where money=18888;
4. 修改所有法师为战士 
	update hero set type='战士' where type='法师';
5. 删除价格为6888的英雄 delete from hero where money=6888;
6. 修改小乔为猪八戒 
	update hero set name='猪八戒' where name='小乔';
7. 删除价格低于15000的英雄 delete from hero where money<15000;
8. 添加性别gender字段在name的后面
	alter table hero add gender varchar(10) after name;
9. 修改所有英雄的性别为男 udpate hero set gender='男';
10. 删除所有数据  delete from hero;
11. 删除表  drop hero;

####数据类型
1. 整数: int(m)bigint(等效java中的long) ,m代表显示长度 需要结合zerofill关键字使用
	create table t_int(id int,age int(10) zerofill);
	insert into t_int values(1,20);
	select * from t_int;
2. 浮点数: double(m,d)  m代表总长度 d代表小数长度  m=5 d=3  23.456,超高精度浮点数decimal(m,d) 只有涉及到超高精度运算时使用
3. 字符串: 
- char(m): 固定长度 m=5 "abc" 所占长度为5,执行效率略高 ,最大长度255
- varchar(m):可变长度m=5 "abc" 所占长度为3,节省空间,最大长度65535 超过255建议使用text
- text(m):可变长度  最大长度65535
4. 日期:
- date: 只能保存年月日
- time: 只能保存时分秒
- datetime:年月日时分秒  默认值null  最大值9999-12-31
- timestamp:时间戳   默认值当前系统时间 最大值2038119
		
		create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);
		insert into t_date values('2019-9-5',null,null,null);
		insert into t_date values(null,'17:37:28','2019-9-5 17:37:28',null);



###课程回顾:
1. 数据库相关SQL
- show databases;
- create database db1 character set utf8/gbk;
- show create database db1;
- drop database db1;
- use db1;
2. 表相关SQL
- create table t1(id int,name varchar(10)) charset=utf8/gbk;
- show tables;
- show create table t1;
- desc t1;
- drop table t1;
- alter table t1 add age int first/   after xxx;
- alter table t1 drop age;
- alter table t1 change 原名 新名 新类型;
3. 数据相关SQL
- insert into t1(字段名1,字段名2) values('值1','值2'),('值1','值2');
- select 字段信息 from t1 where 条件;
- update t1 set xxx=xxx where 条件;
- delete from t1 where 条件;
4. 数据类型
- 整数:  intbigint  
- 浮点数: double(m,d) m总长度 d小数长度  超高精度decimal(m,d)
- 字符串: char 固定长度 最大255 varchar 可变长度最大65535 超高255建议使用text    text 可变长度最大65535
- 日期:  date  time  datetime 最大9999-12-31 默认null   timestamp最大2038-1-19  默认值当前系统时间




html 
css 
JavaScript
jQuery
Bootstrap 
MySQL

There are many fan-exclusive files, tutorials and source codes in the personal files

Guess you like

Origin blog.csdn.net/weixin_44182157/article/details/108943154