数据库的增删选查 • 查看数据库:show databases;
• 创建数据库:create database 数据库名称;
数据库名称不能与SQL关键字相同,也不能重复
• 选择使用数据库:use 数据库名称;
• 删除数据库:drop database 数据库名称;
数据库基本结构
• 数据库:组织、存储和管理相关数据的集合,同一个数据库管理系统中数据库名必须唯一
• 表:由固定列数和任意行数构成的二维表结构的数据集,同一个数据库中表名必须唯一
• 字段:一列即为一个字段,同一个表中字段名必须唯一
• 记录:一行即为一条记录
• 以字段为基本存储和计算单位,每个字段的数据类型必须一致
数据表的增删改查 • 创建数据表:create table 表名(…);
建表之前要先选择进入数据库:use 数据库名称;
建表时可以不指定约束条件,但是必须指定表名、字段名及每个字段的数据类型
表名不能与SQL关键字相同,同一个数据库下的表名不能重复
• 查看当前数据库中所有表: show tables;
• 查看表结构:desc 表名;
• 删除数据表: drop table 表名;
MySQL常用数据类型 • int:大整数型,有符号大小-2147483648~2147483647, 无符号大小0~4294967295,默认长度最多为11个数字,如int(11)
• float:单精度浮点型,默认float(10,2),表示最多10个数字,其中有2位小数
• decimal:十进制小数型,适合金额、价格等对精度要求较高的数据存储。默认decimal(10,0),表示最多10位数字,其中0位小数。
• char:固定长度字符串型,长度为1-255。如果长度小于指定长度,右边填充空格。如果不指定长度,默认为1。如char(10),‘abc ’
• varchar:可变长度字符串型,长度为1-255。必须指定长度,如varchar(10),‘abc’
• text:长文本字符串型,最大长度65535,不能指定长度
• date:日期型,‘yyyy-MM-dd’
• time:时间型,‘hh:mm:ss’
• datetime:日期时间型,‘yyyy-MM-dd hh:mm:ss’
• Timestamp:时间戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之间,如1973-12-30 15:30,时间戳为:19731230153000
字符串类型和日期时间类型都需要用引号括起来
约束条件 • 约束条件是在表上强制执行的数据检验规则
• 用来保证创建的表的数据完整性和准确性
• 主要在两方面对数据进行约束:空值和重复值
MySQL数据库常用约束条件
主键约束(primary key)
• 每个表中只能有一个主键
• 主键值须非空不重复
• 可设置单字段主键,也可设置多字段联合主键
联合主键中多个字段的取值完全相同时,才违反主键约束
• 添加主键约束:
列级添加主键约束:create table
表级添加主键约束:create table
primary key(字段名1[,字段名2,...字段名n]));
唯一约束(unique)
• 指定字段的取值不能重复,可以为空,但只能出现一个空值
• 添加唯一约束:
列级添加唯一约束:create table
表级添加唯一约束:create table
(字段名1[,字段名2...字段名n]));
自动增长列(auto_increment)
• 指定字段的取值自动生成,默认从1开始,每增加一条记录,该字段的取值会加1
• 只适用于整数型,配合主键一起使用
• 创建自动增长约束:create table
非空约束(not null)
• 字段的值不能为空
• 创建非空约束:create table
默认约束(default)
• 如果新插入一条记录时没有为该字段赋值,系统会自动为这个字段赋值为默认约束设定的值
• 创建默认约束:create table
外键约束(foreign key)
在一张表中执行数据插入、更新、删除等操作时,DBMS都会跟另一张表进行对照,避免不规范的操作,以确保数据存储的完整性。
• 某一表中某字段的值依赖于另一张表中某字段的值
• 主键所在的表为主表,外键所在的表为从表
• 每一个外键值必须与另一个表中的主键值相对应
• 创建外键约束:create table
foreign key(字段名) references
修改数据表
修改数据库中已经存在的数据表的结构
• 修改表名:alter table 原表名 rename 新表名;
• 修改字段名:alter table 表名 change 原字段名 新字段名 数据类型 [自增/非空/默认] [字段位置];
• 修改字段类型:alter table 表名 modify 字段名 新数据类型 [自增/非空/默认] [字段位置];
• 添加字段:alter table 表名 add 新字段名 数据类型;
• 修改字段的排列位置:
alter table 表名 modify 字段名 数据类型 first;
alter table 表名 modify 要排序的字段名 数据类型 after 参照字段;
• 删除字段:alter table 表名 drop 字段名;
- 查看系统中有哪些数据库
show databases;
-- 创建test数据库
create database testt;
-- 选择进入数据库
use testt;
-- 删除数据库(慎用)
-- 创建数据表
create table department(deptno int,dname varchar(10),loc varchar(10));
-- 查看当前数据库中有哪些表
show tables;
-- 查看表结构
describe department;
-- 删除数据表(慎用)
-- 创建带有约束条件的表(因为两张表中有主外键约束,所以需要先创建主键所在的dept,再创建外键所在的emp)
create table dept(deptno int primary key,dname varchar(10),loc varchar(10));
create table employee(empid int primary key auto_increment,
ename varchar(10) unique,
job varchar(10) not null,
mgr int,
hiredate date,
sal float default 0,
comm float,
deptno int,
foreign key(deptno) references dept(deptno));
show tables;
desc employee;
-- 修改表名
alter table employee rename emp;
show tables;
-- 修改字段名
alter table emp change empid empno int;
desc emp;
-- 修改字段类型
alter table emp modify sal decimal default 0;
desc emp;
-- 添加字段
alter table emp add address varchar(20) not null default '不详' first;
desc emp;
-- 修改字段的排列位置:
alter table emp modify address varchar(20) after deptno;
-- 删除字段
alter table emp drop address;
三个资料Q群下载不了也转发不了,先放这里Fine_tuning.zipLangChain.zipdata_clear.rar
在第一节基础上 更新了函数和执行顺序:实操了字符数函数、时间函数、字段截取函数、interval函数等,除最后顺序实操因未导入数据库,导致无法执行