前言
本文是博主更新Mysql语言的第一篇,后面会定时更新完整,希望大家多多点赞收藏交流
作者介绍
? 作者简介:KJ.JK,CSDNJava领域新星作者
? 参加获奖过蓝桥杯、中国软件杯云计算、互联网+、创新创业大赛银奖
? 本文收录在数据库MYSQL基本语法
? 欢迎大家 点赞👍 收藏💖 关注🔒
一、MySQL数据库基本操作-DDL
1、什么是DDL
DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容:
*对数据库的常用操作
*对表结构的常用操作
*修改表结构
2、常用的DDL命令
🔸 show databases; 查看所有数据库
🔸create database 数据库名字 库选项; 创建数据库
范例: create database mydb1;
🔸 use+空格+数据库名字; 使用该数据库
范例: use mydb1;
🔸 drop database 数据库名字; 删除数据库
范例: drop database mydb1;
🔸 alter database 数据库名 字符集编码; 修改数据库编码
范例: alter database mydb1 character set utf8;
🔸 创建表格式
create table [if not exists]表名(
字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];
范例:
create table student(
sid int ,
name varchar(20),
gender varchar(20),
age int,
birth date,
address varchar(20)
);
🔸 常见的数值类型
🔸 数值类型
🔸 字符串类型
🔸 日期类型
🔸 show tables; 查看当前数据库的所有表名称
🔸 show create table 表名; 查看指定某个表的创建语句
范例: show create table student;
🔸 desc 表名; 查看表结构
* 范例: desc student;
🔸 drop table 表名; 删除表
* 范例: drop table student;
🔸 alter修改表添加列
* 语法1: alter table 数据表名 add 新字段名 字段类型[first/after 字段名];
* 范例1: alter table student add dept varchar(20); -- 添加表中的一列
* 语法2: alter table 数据表名 add (新字段名1 字段类型1,新字段名2 字段类型2,......):
🔸 change修改列名和类型
* 语法: alter table 表名 change 旧列名 新列名 类型(长度) 约束;
* 范例: alter table student change dept department varchar(30); -- 修改列名和类型
🔸 modify修改类型
* 语法: alter table 数据表名 modify 字段名 新类型 [字段属性];
🔸alter修改表删除列
* 语法: alter table 表名 drop 列名
* 范例: alter table student drop department; -- 删除表
🔸alter修改表名
* 语法1: rename table student to stu; -- 语法:修改表名,简便方法
* 语法2: alter table 旧表名 rename [to/as ] 新表名;
* 语法3: alter table 旧表名1 to 新表名1,旧表名2 to 新表名2.....;
二、MySQL数据库基本操作-DML
1、什么是DML
DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新
关键字:
* 插入insert
* 删除delete
* 更新update
2、常用的DML命令
🔹insert插入数据
* 语法1: insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...);
* 范例1:
insert into stu (sid,name,gender,age,birth,address,score) values
(1001,'张三','男',18,'2001-12-23','北京',85.5); -- 插入一项数据
* 语法2: insert into 表 values (值1,值2,值3...);
* 范例2: insert into stu values(1006,'张华','女',21,'1999-01-08','广州',79);
🔹update更新数据
*语法1: update 表名 set 字段名=值,字段名=值...;
*范例1: update student set address = '重庆’;
*语法2: update 表名 set 字段名=值,字段名=值... where 条件;
*范例2: update student set address = '北京' where id = 1004
update stu set address='北京',score=100 where id=1005; -- 更改多列
🔹delete删除数据 与 truncate删除数据
*语法格式:
* 语法: delete from 表名 [where 条件];
* 范例: delete from stu where sid=1004;
delete from student;
* 语法: truncate table 表名 或者 truncate 表
* 范例:
truncate table student;
truncate student;
三、MySQL约束
1、概念
约束英文:constraint
约束实际上就是表中数据的限制条件
2、作用
* 表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,
* 比如用户表有些列的值(手机号)不能为空,有些列的值(身份证号)不能重复
3、分类
* 主键约束(primary key) PK
* 自增长约束(auto_increment)
* 非空约束(not null)
* 唯一性约束(unique)
* 默认约束(default)
* 零填充约束(zerofill)
* 外键约束(foreign key) FK
四、MySQL约束—主键约束
1、概念
* MySQL主键约束是一个列或者多个列的组合,"其值能唯一地标识表中的每一行,方便在RDBMS中尽快的找到某一行"
* 主键约束相当于 "唯一约束 + 非空约束" 的组合,主键约束列不允许重复,也不允许出现空值。
* 每个表最多"只允许一个主键"
* 主键约束的关键字是:"primary key"
* 当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引
* 主键的作用: 主键约束的列非空且唯一
2、操作—添加单列主键
"创建单列主键有两种方式":
方式1: "一种是在定义字段的同时指定主键" (在创建表的时候,直接在字段之后,跟"primary key关键字")
方式2: "一种是定义完字段之后指定主键" (在创建表的时候,在所有的字段之后,使用"primary key关键字")
方式1:在定义字段的同时指定主键
*语法格式:
create table 表名(
...
<字段名> <数据类型> primary key
...
);
*范例:
create table emp1(
eid int primary key, -- 添加主键的方式1
name varchar(20),
deptid int,
salary double
);
方式2:在定义字段之后再指定主键
* 语法格式:
create table 表名(
...
[constraint <约束名>] primary key [字段名]
);
* 范例:
create table emp2(
eid int,
name varchar(20),
deptid int,
salary double,
constraint pk1 primary key(eid)
-- 添加主键的方式2
-- constraint pk1 可以不写,pk1为主键的约束名
-- constraint 可以给主键写名字
);
3、操作—添加多列主键(联合主键)
* 所谓的联合主键,就是这个主键是由"一张表中多个字段组成的"
"注意":
1. "当主键是由多个字段组成时","不能直接在字段名后面声明主键约束"
2. 一张表只能有一个主键,"联合主键也是一个主键"
------------------------------------------------------------------------------------------------------------
* 语法格式:
create table 表名(
...
primary key (字段1,字段2,…,字段n)
);
* 范例:
create table emp3(
name varchar(20),
deptid int,
salary double,
constraint pk2 primary key(name,deptid) -- 联合主键
);
4、通过修改表结构添加主键(追加主键)
"主键约束不仅可以在创建表的同时创建,也可以在修改表时添加"
-----------------------------------------------------------------------------------------------------------
* 语法格式:
alter table <表名> add primary key(字段列表);
* 范例:
alter table emp4 add primary key(eid); -- 追加单列主键
alter table emp5 add primary key(name,deptid); -- 追加多列主键
5、更新主键和删除主键
(1)更新主键
* 不能更新,主键必须先删除,才能更新
(2)删除主键
"一个表中不需要主键约束时,就需要从表中将其删除"
------------------------------------------------------------------------------------------------------------
*格式:
alter table <数据表名> drop primary key;
*范例:
alter table emp1 drop primary key; -- 删除单个主键与多个主键都是一样的,因为只有一个主键而已
五、MySQL约束—自增长约束(auto_increment)
1、概念
*在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,
而由数据库系统根据定义"自动赋值"。每增加一条记录,主键会自动以相同的步长进行增长。
*通过给字段添加 "auto_increment" 属性来实现主键自增长
2、自增长的语法格式
* 语法: 字段名 数据类型 auto_increment
* 范例:
create table t_user1(
id int primary key auto_increment, -- 主键自增长约束
name varchar(20)
);
3、自增长的注意事项
* "默认情况下,auto_increment的初始值是 1", 每新增一条记录,字段值自动加 1
* 一个表中"只能有一个字段使用 auto_increment约束",且该字段必须有唯一索引,以避免序号重复(即为主键或主键的一部分)
* auto_increment约束的字段必须具备 NOT NULL 属性
* auto_increment约束的字段"只能是整数类型"(TINYINT、SMALLINT、INT、BIGINT)等
* auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,auto_increment就会失效
4、指定自增字段初始值
*如果第一条记录设置了该字段的初始值,那么新增加的记录就从这个初始值开始自增
*例如,如果表中插入的第一条记录的 id 值设置为 5,那么再插入记录时,id 值就会从 5 开始往上增加
(1) 方式1:创建表时指定
* 范例:
create table t_user2(
id int primary key auto_increment,
name varchar(20)
)auto_increment=100;
insert into t_user2 values(null,'张三'); -- id 初始为100
insert into t_user2 values(null,'张三'); -- id 自增为101
(2)方式2:创建表之后追加
*范例:
create table t_user3(
id int primary key auto_increment,
name varchar(20)
);
alter table t_user3 auto_increment=200;
insert into t_user3 values(null,'张三'); -- id 初始为200
insert into t_user3 values(null,'张三'); -- id 自增为201
5、 修改自增长
"自增长如果是涉及到字段的改变,必须先删除自增长,后增加"
----------------------------------------------------------------------------------------------------------
* 修改当前自增长已经存在的值:
alter table 表名 auto_increment =值;
* 修改每次自增长增加多少 :
set auto_increment_increment=数字
6、删除自增长
* 语法: alter table 表名 modify 字段 类型;
7、delete和truncate在删除后自增列的变化
(1)delete的变化
-- delete 删除数据之后,自增长还是在最后一个值基础上加1
-- 有起始值也一样从你上次断开的时候开始
(2)truncate的变化
--truncate数据之后自动增长从默认起始值开始
六、MySQL约束—非空约束(not null)
1、概念
* MySQL 非空约束(not null)指字段的值不能为空
对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错
2、非空约束的语法格式
?
(1)方式1:创建表时指定
* 语法: <字段名><数据类型> not null;
* 范例:
create table t_user6(
id int,
name varchar(20) not null, -- 指定非空约束
address varchar(20) not null -- 指定非空约束
);
(2)方式2:创建表之后追加
* 语法: alter table 表名 modify 字段 类型 not null;
* 范例:
alter table t_user7 modify name varchar(20) not null;
3、删除非空约束
* 语法: alter table 表名 modify 字段 类型
* 范例: alter table t_user7 modify name varchar(20);
作者:KJ.JK
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习
|