MySQL数据库(一)

数据库

数据库简介
  • 之前通过io流操作文件的方式对数据进行增删改差的弊端
    1. 代码量大 导致开发效率低 有现成的肯定用现成的数据库软件
    2. 执行效率低
    3. 一般只能保存字符串数据
  • 什么是DB DataBase数据库,指保存数据的文件集合
  • 什么是DBMS DataBaseManagementSystem 管理数据库文件的软件系统 ,常见的DBMS有:Oracle、MySQL、SQLServer、DB2等
数据库分类
  1. 关系型数据库: 经过数学理论验证可以保存现实生活中的任何关系,关系型数据库以表为单位保存数据

  2. 非关系型数据库: 一般以键值对的形式保存数据,可应用在数据缓存 ,Redis数据库就是非关系型数据库用于数据缓存,保存数据的方式就是键值对。

常见的关系型数据库
  • MySQL: 开源数据库,08年被Sun收购,09年Sun被Oracle收购,现在属于Oracle公司, 被Oracle收购后性能大幅提升,面临闭源的风险,原MySQL程序员离开Oracle创建了MariaDB(创始人女儿名字叫maria) ,市场占有率排名第一
  • Oracle: 创始人拉里.艾莉森 32岁创办Oracle,性能最高价格最贵,市场占有率排名第二 闭源数据库
  • SQLServer: 微软公司产品 闭源产品 市场占有率排名第三 应用在微软整套解决方案中(包括:操作系统、webServer、开发语言、数据库软件等)
  • DB2:IBM公司产品、 闭源产品, 应用在IBM整套解决方案中,安全性高一般应用在银行等需要安全性较高的环境中
  • Sqlite: 轻量级数据库,应用在嵌入式设备或移动设备上
开源和闭源
  1. 开源: 开放源代码,开源产品一般靠卖服务赚钱,开源产品有大牛程序员无偿维护和升级
  2. 闭源:不公开源代码,闭源产品靠卖产品+卖服务来钱快,闭源产品可能会存在被攻击的风险
SQL
  • Structured Query Language: 结构化查询语言
  • 学习SQL语句主要学习的就是如何让数据库软件对数据进行增删改查操作

如何连接数据库

  • 格式: mysql -uroot -p 敲回车
  • 退出格式: exit

SQL语句格式

  1. 以;结尾(英文分号)
  2. 关键字之间有空格 一般一个空格 但是写多个也可以
  3. SQL语句中可以有1或多个换行
  4. 关键字不区分大小写
数据库相关SQL
  1. 查询所有数据库
  2. 格式: show databases;
  3. 创建数据库
  4. 格式: create database 数据库名称; create database db1;
  5. 查看数据库详情
  6. 格式: show create database 数据库名称; show create database db1;
  7. 创建数据库指定字符集
  8. 格式: create database 数据库名称 character set utf8/gbk; create database db2 character set gbk; show create database db2;
  9. 删除数据库
  10. 格式: drop database 数据库名称; drop database db2;
  11. 使用数据库
  12. 格式: use 数据库名称; use db1;
  13. 练习:创建mydb1和mydb2 其中mydb2字符集是gbk 使用mydb2 最后删除mydb1和mydb2 create database mydb1; create database mydb2 character set gbk; use mydb2; drop database mydb1; drop database mydb2;
表相关SQL
  • 执行表相关SQL时切记一定是已经使用了数据库 不然会报错
  • 创建表
  • 格式:create table 表名(字段名1 字段1类型,字段名2 字段2类型…); create table person(name varchar(50),age int);
  • 练习:
    1. 创建员工表emp 有姓名name 性别gender 年龄age 工资sal 这几个字段 create table emp(name varchar(10),gender varchar(2),age int,sal int);
    2. 创建学生表student 有学号id 姓名name 语文chinese 数学math 英语english 这几个字段 create table student(id int,name varchar(10),chinese int,math int,english int);
    3. 创建商品表item 有商品标题title 商品单价price 库存num 字段 create table item(title varchar(20),price int,num int);
  • 查看所有表
  • 格式: show tables;
  • 查看表详情
  • 格式: show create table 表名; show create table person;
  • 表引擎
    1. innodb(默认):支持数据库的高级操作(外键,事务等)
    2. myisam:不支持数据的高级操作,只支持基本的数据增删改查操作
  • 创建表时指定引擎和字符集
  • 格式: create table 表名(字段名1 字段1类型,字段名2 字段2类型…) engine=innodb/myisam (default?) charset=utf8/gbk; create table t1(name varchar(10),age int)engine=myisam charset=gbk; show create table t1;
  • 查看表字段
  • 格式: desc 表名; desc person;
  • 删除表
  • 格式: drop table 表名; drop table emp; drop table person;
修改表相关操作
  1. 修改表名
  2. 格式: rename table 原名 to 新名; create table t_emp(name varchar(10)); rename table t_emp to emp; show tables;
  3. 修改表引擎和字符集
  4. 格式: alter table 表名 engine=innodb/myisam charset=utf8/gbk; alter table emp engine=myisam charset=gbk;
  5. 给表添加字段
  6. 最后添加:alter table 表名 add 字段名 字段类型;
  7. 最前面添加:alter table 表名 add 字段名 字段类型 first;
  8. xxx的后面:alter table 表名 add 字段名 字段类型 after xxx; alter table emp add sal int;//最后添加 desc emp; alter table emp add id int first;//最前面 desc emp; alter table emp add gender varchar(2) after name;//名字后面 desc emp;
  9. 删除表字段
  10. 格式: alter table 表名 drop 字段名; alter table emp drop gender;
  11. 修改字段名和类型
  12. 格式: alter table 表名 change 原名 新名 新类型; alter table emp change sal salary int;
  13. 修改字段类型和位置
  14. 格式: alter table 表名 modify 字段名 新类型 first / after xxx; alter table emp modify salary int first; //最前面 alter table emp modify salary int after id;//id的后面

create table t1(name varchar(10),age int) engine=innodb/myisam charset=utf8/gbk; show tables; show create table t1; desc t1; drop table t1; rename table t1 to t2; alter table t1 add 字段名 字段类型 first、after xxx; alter table t1 drop 字段名; alter table t1 change 原名 新名 新类型 alter table t1 modify 字段名 新类型 first/after xxx; alter table t1 engine=innodb/myisam charset=utf8/gbk;

  • 练习:
  • 创建数据库db3 并使用 create database db3; use db3;
  • 在db3里面创建hero表 字段有id、姓名name、类型type(字符串类型) ,引擎为myisam 字符集为gbk create table hero(id int,name varchar(10),type varchar(5)) engine=myisam charset=gbk;
  • 修改表引擎为innodb、字符集为utf8 alter table hero engine=innodb charset=utf8;
  • 给表添加一个money字段 添加在name字段的后面 alter table hero add money int after name;
  • 修改表名为heros rename table hero to heros;
  • 修改name字段到最后面 alter table heros modify name varchar(10) after type;
  • 添加字段性别gender在id的后面 alter table heros add gender varchar(2) after id;
  • 修改type字段名为hero_type alter table heros change type hero_type varchar(5);
  • 删除money字段 alter table heros drop money;
  • 删除hero表 drop table heros;
  • 删除db3数据库 drop database db3;
数据相关SQL
	 create database db4 character set utf8;
	 
	 use db4;
	 
	 create table emp(name varchar(10),age int,sal int) engine=innodb charset=utf8;
    
  1. 添加数据

  2. 全表插入格式: insert into 表名 values(值1,值2); values里面的值的数量和顺序 一定要和表字段一致 insert into emp values(‘Tom’,18,5000);

  3. 指定字段插入格式: insert into 表名 (字段名1,字段名2) values(值1,值2); values里面的值得数量和顺序 和values前面指定的要一致 insert into emp (name,age) values(‘Jerry’,20);

  4. 批量插入 insert into emp values(‘刘备’,30,15000),(‘关羽’,25,10000),(‘张飞’,15,100); insert into emp (name) values(‘悟空’),(‘八戒’),(‘沙僧’);

  5. SQL语句中出现中文报错 该错误 由于终端的编码字符集和数据库服务器解码的字符集不一致导致 通过以下命令统一字符集 set names gbk;

  6. 查询数据

  7. 格式: select 字段信息 from 表名 where 条件; select name from emp; //查询所有员工的姓名 select name,age from emp where age>20;//查询大于20岁的员工姓名和年龄 select * from emp;//查询emp表中的所有数据

  8. 修改数据

  9. 格式: update 表名 set 字段名=值 where 条件; update emp set age=50 where name=‘Tom’;

  10. 删除数据

  11. 格式: delete from 表名 where 条件; delete from emp where age<20;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值