数据库
- 学习如何对数据进行增删改查操作
SQL
- Structured Query Language 结构化查询语言, 此语言是用于程序员和数据库软件进行交流的语言
insert into user values("刘德华",50);
如何连接数据库执行SQL语句
- 执行SQL语句之前需要先和数据库软件进行链接
- 从开始菜单中找到MariaDB或MySQL文件夹 展开后找到 MySQL Client 然后输入密码回车
- 如果使用的Linux或苹果系统 打开终端 然后输入 mysql -uroot -p 回车 然后输入密码回车
- 显示下图内容 代表成功
4.退出命令 exit;
数据库中如何保存数据
- 数据库中以表为单位保存数据,表是存在于数据库之中, 保存数据则需要先建库再建表
SQL语句格式要求:
- 以;结尾
- 不区分大小写
- 可以包含空格和换行
数据库相关SQL
- 查询所有数据库
- 格式: show databases;
- 创建数据库
- 格式: create database 数据库名 charset=utf8/gbk;
- 举例:
- create database db1;
-
- create database db2 charset=utf8;
-
- create database db3 charset=gbk;
-
- show databases;
- 查看数据库信息
- 格式: show create database 数据库名;
- 举例:
- show create database db1;
-
- show create database db2;
-
- show create database db3;
- 删除数据库
- 格式: drop database 数据库名;
- 举例:
- drop database db2;
-
- drop database db3;
- 使用数据库
- 执行表相关和数据相关的SQL语句之前必须使用了某一个数据库 否则会报错.
- 格式: use 数据库名;
- 举例:
- use db1;
表相关的SQL语句
- 执行表相关的SQL语句必须提前使用了某个数据库,否则会报错
use db1;
- 查询所有表
- show tables;
- 创建表
- 格式: create table 表名(字段1名 类型,字段2名 类型)charset=utf8/gbk;
- 举例:
- create table person(name varchar(50), age int);
-
- create table hero(name varchar(50),money int,type varchar(10))charset=utf8;
-
- create table student(name varchar(50),chinese int,math int,english int)charset=gbk;
-
- show tables;
- 查看表信息
- 格式: show create table 表名;
- show create table student;
- 删除表
- 格式: drop table 表名;
- drop table student;
- 修改表名
- 格式: rename table 原名 to 新名;
- 举例:
- rename table person to p;
- 查看表字段
- 格式: desc 表名; desc = description 描述
- 举例:
- desc p;
表相关SQL(续)
use db1;
create table emp(name varchar(50));
- 添加表字段
- 最后面添加格式: alter table 表名 add 字段名 类型;
- 最前面添加格式: alter table 表名 add 字段名 类型 first;
- 在xxx字段的后面添加格式: alter table 表名 add 字段名 类型 after xxx;
- 举例:
- alter table emp add age int;
-
- alter table emp add id int first;
-
- alter table emp add gender varchar(5) after name;
-
- desc emp;
- 删除表字段
- 格式: alter table 表名 drop 字段名;
- 举例:
- alter table emp drop gender;
-
- alter table emp drop age;
- 修改表字段
- 格式: alter table 表名 change 原名 新名 新类型;
- 举例:
- alter table emp change name age int;
-
- alter table emp change id name varchar(50);
数据类型
- 整数: int(m) 和 bigint(m) , bigint等效java中的long, m代表显示长度,举例m=5,存18 查询到 00018 , 需要补零的话必须使用zerofill关键字
create table t1(age int(5) zerofill);
insert into t1 values(18);
select * from t1;
- 浮点数: double(m,d) m代表总长度,d代表小数长度 54.432 m=5 d=3
create table t2(price double(5,3));
insert into t2 values(45.2312312123);
insert into t2 values(455.231); //报错
- 字符串
- char(m): 固定长度字符串 , m=5 存abc 占5个字符长度 , 应用场景: 当存储长度固定时,比如存储性别char(1) , 最大字符长度255
- varchar(m):可变长度字符串, m=5 存abc 占3个字符长度, 最大值65535但是建议保存255以内长度的数据
- text(m):可变长度字符串, 最大值65535 建议保存长度大于255的数据
- 日期
- date: 只能保存年月日
- time: 只能保存时分秒
- datetime: 保存年月日时分秒, 最大值9999-12-31, 默认值为null
- timestamp(时间戳:保存1970年1月1日到现在的毫秒数):保存年月日时分秒, 最大值2038-1-19 , 默认值为当前系统时间(当赋值为null时触发默认值)
- 举例:
create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp);
insert into t_date values("2022-06-09",null,null,null);
insert into t_date values(null,"16:16:20","2011-11-22 10:20:30",null);
select * from t_date;
主键约束 primary key
- 约束: 创建表时给表字段添加的限制条件
- 主键: 表示数据唯一性的字段称为主键
- 主键约束: 限制主键的值唯一且非空
- 举例:
create table t5(id int primary key,name varchar(30));
insert into t5 values(1,"a");
insert into t5 values(2,"b");
insert into t5 values(2,"c"); //重复报错
insert into t5 values(null,"d"); //不能为null 报错
主键约束+自增 primary key auto_increment
- 当字段设置为自增后 插入null值时会触发自增
- 自增规则: 从历史最大值+1
- 举例:
create table t6(id int primary key auto_increment,name varchar(50));
insert into t6 values(null,"a");
insert into t6 values(null,"b");
insert into t6 values(10,"c");
insert into t6 values(null,"d");
delete from t6 where id>=10;
insert into t6 values(null,"e");