数据库
学习数据库主要学习的是如何对数据进行增删改查操作.
SQL:Structured Query Language: 结构化查询语言, 通过此语言让程序员和数据库软件进行交流
DBMS
DataBaseManagementSystem: 数据库管理系统(数据库软件)
- 常见的几种DBMS:
- MySQL: Oracle公司产品, 08年被Sun公司收购, 09年Sun公司被Oracle收购. 开源产品 , MaraDB实际上就是MySQL的一个分支使用方式和MySQL一样. 市占率排名第一
- Oracle: Oracle公司产品, 闭源产品 ,性能最强 价格最贵, 市占率排名第二
- SQLServer: 微软公司产品, 闭源产品 , 市占率第三
- DB2: IBM公司产品
- SQLite: 轻量级数据库, 安装包几十K ,只具备最基础的增删改查功能.
如何连接数据库执行SQL语句?
执行SQL语句需要先和数据库软件建立链接之后
从开始菜单中找到MariaDB或MySQL,然后打开找到里面的MySQL Client 打开 , 然后输入密码后回车
退出指令: exit
登录指令: mysql -uroot -p
数据库和表的概念
- 在MySQL数据库软件中保存数据,需要先建库,然后在库里面建表,然后把数据保存到表中
SQL语句格式:
- 以;号结尾
- 关键字不区分大小写
- 可以有空格或换行但一定要以;结尾
数据库相关的SQL语句
1.查询所有数据库
- 格式: show databases;
2.创建数据库
- 格式: create database 数据库名 charset=utf8/gbk;
举例:
create database db1;
create database db2 charset=utf8;
create database db3 charset=gbk;
3.查看数据库信息
- 格式: show create database 数据库名;
举例:
show create database db1;
show create database db2;
show create database db3;
4.删除数据库
- 格式: drop database 数据库名;
举例:
drop database db3;
drop database db2;
show databases;
5.使用数据库
执行表相关和数据相关的SQL语句之前必须先使用了某个数据库
- 格式: use 数据库名;
举例:
use db1;
表相关的SQL语句
执行表相关的SQL语句必须已经使用了某个数据库:例如:use db1;
1.创建表
- 格式: create table 表名(字段1名 类型,字段2名 类型,.......);
举例:
create table person(name varchar(50),age int);
create table student(name varchar(50),chinese int,math int,english int)charset=utf8;
创建一个员工表emp 保存名字,工资和工作
create table emp(name varchar(50),salary int,job varchar(20));
2.查询所有表
- 格式: show tables;
3.查询表信息
- 格式: show create table 表名;
举例:
show create table emp;
4.查询表字段
- 格式: desc 表名;
5.修改表名
- 格式: rename table 原名 to 新名;
举例:
rename table student to stu;
6.删除表
- 格式: drop table 表名;
使用db1数据库 use db1;(续)
1.添加表字段
- 最后面添加格式: alter table 表名 add 字段名 类型;
- 最前面添加格式: alter table 表名 add 字段名 类型 first;
- 在xxx字段后面添加: alter table 表名 add 字段名 类型 after xxx;
举例:
alter table emp add gender varchar(5);
alter table emp add id int first;
alter table emp add dept varchar(20) after name;
2.删除表字段
- 格式: alter table 表名 drop 字段名;
举例:
alter table emp drop dept;
3.修改表字段
- 格式: alter table 表名 change 原名 新名 新类型;
举例:
alter table emp change job dept varchar(5);
UTF8字符集
- 目前utf8 和utf8mb3 一样 ,代表的是 用3个字节表示一个字符 (mb3=most byte 3)
- utf8mb4 最多不超过4个字节表示一个字符
检查自己电脑的MySQL服务是否开启
- 在我的电脑/此电脑上右键->管理 检查MySQL服务服务是否正在运行
表相关SQL语句回顾:
- 创建表 create table t1(name varchar(20),age int) charset=utf8/gbk;
- 查询所有表 show tables;
- 查询表信息 show create table t1;
- 查询表字段 desc t1;
- 删除表 drop table t1;
- 修改表名 rename table t1 to t2;
- 添加表字段 alter table t1 add age int first/after xxx;
- 删除表字段 alter table t1 drop age;
- 修改表字段 alter table t1 change 原名 新名 新类型;
数据相关SQL
操作数据必须保证已经使用了某个数据库并且已经准备好了保存数据的表
- create database mydb5 charset=utf8;
- use mydb5;
- create table person(name varchar(50),age int)charset=utf8;
1.往表中插入数据
全表插入格式: insert into 表名 values(值1,值2);
指定字段插入格式: insert into 表名(字段1名,字段2名)values(值1,值2);
举例:
insert into person values('tom',18);
insert into person(name) values('jerry');
insert into person values('aaa',10),('bbb',20),('ccc',30);
insert into person(name) values('xxx'),("yyy"),("zzz");
数据库相关
查询所有: show databases;
创建: create database db1 charset=utf8/gbk;
查看数据库信息: show create database db1;
删除数据库: drop database db1;
使用数据库: use db1;
表相关
创建: create table t1(name varchar(20),age int)charset=utf8/gbk;
查询所有: show tables;
查看表信息: show create table t1;
表字段: desc t1;
删除表: drop table t1;
修改表名: rename table t1 to t2;
添加字段: alter table t1 add age int first/ after xxx;
删除字段: alter table t1 drop age;
修改字段: alter table t1 change 原名 新名 新类型;
数据相关插入数据: insert into t1(字段1名,字段2名) values(值1,值2),(值1,值2),(值1,值2);
2.查询数据
格式: select 字段信息 from 表名 where 条件;
举例:
insert into person values('刘备',40),('关羽',30),('悟空',20),('八戒',10),('张学友',5);
select name from person;
select name,age from person;
select * from person;
select * from person where age=50;
select age from person where name="悟空";
3.修改数据
格式: update 表名 set 字段名=值 where 条件;
举例:
update person set age=88 where name='刘备';
update person set name='张飞',age=18 where name='关羽';
update person set name='黎明' where age=5;
4.删除数据
格式: delete from 表名 where 条件;
举例:
delete from person where name='张飞';
delete from person where age<30;
delete from person;
主键约束
主键: 表示数据唯一性的字段称为主键
约束: 创建表时给表字段添加的限制条件
主键约束: 限制主键的值 唯一且非空
如何使用:
use day2db;
create table t1 (id int primary key,name varchar(50))charset=utf8;
insert into t1 values(1,"aaa");
insert into t1 values(1,"bbb"); //报错 主键值重复
insert into t1 values(null,"ccc");
主键约束+自增
自增规则: 从历史最大值基础上+1
如何使用: create table t2(id int primary key auto_increment,name varchar(50))charset=utf8;
insert into t2 values(null,"aaa");
insert into t2 values(null,"bbb");
insert into t2 values(10,"ccc");
insert into t2 values(null,"ddd");
delete from t2 where id>=10;
insert into t2 values(null,"eee");