数据库MYSQL(1)

####MySQL
###数据库简介
-之前通过流操作文件方式保存数据的弊端:
1.效率低、 1000000 989949
2.实现过程比较复杂 开发效率低 update user sal=2000 where id=2000;
3.一般只能保存小量数据
4.只能保存文本
####什么是DB
DateBase :数据库, 数据库是一个文件集合
###什么是DBMS
DateBaseManagemengtSystem:数据库管理系统(软件):用于管理数据库文件
常见的DBMS有那些?oracle MySQL DB2 SQLserver Sqlite
###数据库的分类
1.关系型数据库
以表为数据库存存储数据的单位,关系型数据库是经过数学理论验证可以
保存现实生活中任何关系型的数据
2.非关系型数据库
主要应用在一些特定场景,解决某些具体问题比如解决高并发访问时的数据缓存
,(redis数据库属于非关系型数据库,redis内部以键值对的形式保存数据)
name=xxx age=xxx
###主流关系型数据库的介绍
1.MySQL:Oracle公司产品,08年被sun公司收购,09年sun公司被Oracle收购
开源产品、MySQL被收购后性能大幅度提高,面临闭源风险,原MySQL程序员离开
Oracle 创建了MariaDB,MariaDB和MySQL区别不大
2.Oracle:闭源产品 价格最贵性能最高 市场排名第二,拉里艾莉森 32
3.DB2 :IBM公司产品,闭源 主要应用再IBM公司整套解决方案中
4.SqlServer:微软公司产品,闭源,主要应用在微软公司整套解决方案中
5.Sqlite:轻量级数据库 安装包只有几十K,主要应用在嵌入式设备中或移动设备中

####开源和闭源
开源:公开源代码 ,靠卖服务盈利 ,有大牛程序员无偿维护升级
闭源:不公开源代码,靠卖产品盈利,有大牛攻击找漏洞
###什么是SQL
Structured Query Language :结构化查询语言,用于程序员和DBMS(数据库管理软件)进行交互
###连接数据库
Linux系统:mysql -uroot -p
window系统:开始菜单-》所有程序-》MySQL/MariaDB-》MySQL Client
###数据库相关的SQL
1.查看所有数据库
show databases;
2.创建数据库
create database 数据库名称;
create database db1;
3.删除
格式:drop database 数据库删除
4.查看数据库详情
格式:show create database 数据库名称;
show create database db1;
5.创建数据库指定字符集
格式:create database 数据库名称 character set utf8/gbk;
create database db2 character set gbk;
6.使用数据库
格式: use 数据库名称
use db1;

####表相关SQL
什么是表,表是数据库中保存数据的单位
1.创建表
格式:create table 表名(字段名 字段类型,字段2名 字段2类型,…);
创建一个person表 保存名字、性别、年龄、工资
create table person(name varchar(10),gender varchar(5),age int,sal int);
2.查看所有表:
show tables;
3.查看表详情
格式:show create table 表名;
show create table person;
4.创建表指定引擎和字符集;
格式:create table 表名(字段名 字段类型,字段2名 字段2类型,…)
create table t1(name varchar(10),age int)
engine=myisam charset=gbk;
show create table t1;
create table t1(nama varchar(10),age int) engine=myisam charset=gbk;
show create table t1;

5.查看表字段信息
格式:desc 表名;
desc person;
6.修改表名
格式:rename table 原名 to 新名;
rename table person to t_person;
7.修改表引擎和字符集
格式:alter table 表名 engine=myisam/innodb charset=gbk/utf8;
alter table t_person engine=myisam charset=gbk;

8.添加表字段
格式1:alter table 表名 add 字段名 字段类型;最后
格式2:alter table 表名 add 字段名 字段类型first;最前面
格式3:alter table 表名 add 字段名 字段类型 after xxx;
alter table ft1 add gender varchar(5);这就是添加到最后
alter table t1 add id int first;
alter table t1 add sal int after age;
9.删除表字段
格式:alter table 表名 drop 字段名
alter table t1 drop sal;
10.修改字段名称和类型
格式:alter table 表名 change 原字段名 新类型;
alter table t1 change name nama varchar(5);
11.修改字段类型和位置
格式:alter table 表名 modify 字段名 新类型 first/after xxx
alter table t1 modify name varchar(10) after age;
12.删除表格
drop 表名;

###数据表的引擎
1.innodb:支持数据库的复杂操作,包括外键、事务等
2.myisam:只支持数据基础的增删改查操作
create table hero(id int ,name varchar(10),gender varchar(5));
1.插入数据
insert into hero values(1,‘Tom’,‘Man’);
指定字段插入:insert into hero(name,gender) values(‘张飞’,‘男’);
批量插入数据:insert into hero values(5,‘唐僧’,‘男’),(6,‘悟空’,‘男’),(7,‘八戒’,‘男’);
insert into hero (name) values(‘李雷’),(‘韩梅梅’),(‘Lucy’);
2.查询数据
格式:select 字段信息 from 表名 where id<5;
select from hero;
select name,gender from hero;//查询所有的名字和性别;
select
from hero where name=‘悟空’;//查询悟空的所有信息
3.修改数据
格式:update 表名 set gender=‘女’ where id=1;
update hero set gender=‘女’ where id=1;
修改id小于5的性别为女
update hero set gender=‘女’ where id<1;
修改八戒的名字为悟能
update hero set name=‘悟能’ where id=7;
4.删除数据;
格式 delete from 表名 where 条件;
delete from hero where name=‘张飞’;
删除id 小于3的 信息
删除表中所有数据 delete from hero;
/////////////////////////////////////////////////////////////////////////
8. 练习:创建员工emp表 字段有id,name,sal,dept(部门) create table emp (id int,name varchar(10),sal int, dept varchar(10));
9. 插入以下数据
insert into emp values(1,‘李白’,3000,‘打野部门’),(2,‘刘备’,4000,‘打野部门’),(3,‘诸葛亮’,6000,‘法师部门’),(4,‘周瑜’,5500,‘法师部门’),(5,‘程咬金’,2000,‘战士部门’);
10. 查询打野部门的员工姓名 select name from emp where dept=‘打野部门’;
11. 修改诸葛亮的名字为卧龙 update emp set name=‘卧龙’ where id=3;
12. 修改程咬金的工资为3500 update emp set sal=3500 where id=5;
13. 删除工资低于4000的员工 delete from emp where sal<4000;
14. 删除打野部门的所有员工 delete from emp where dept=‘打野部门’;
####数据库表的引擎

  1. innodb:支持数据库的复杂操作,包括外键、事务等
  2. myisam:只支持数据基础的增删改查操作
    ####字符编码问题
    如果使用Windows电脑SQL语句中写中文报错的话 通过以下指令解决 set names gbk;

猜你喜欢

转载自blog.csdn.net/qq_43165760/article/details/86137915
今日推荐