Mysql基本语句–自学总结
1、查看现有数据库
show databases;
2、创建库、删除库
-- 创建库
CREATE DATABASE 数据库名;
-- 删除库
drop database 数据库名;
3、切换数据库
use 数据库名;
4、创建表、删除表
-- 创建表
create table 表名(
列名1 数据类型,
列名2 数据类型
...
);
-- 删除表
drop table 表名;
-- 删除多表
drop table 表名1,表名2..;
5、修改表
-- 添加列:
alter table 表名 add 属性名 数据类型;
-- 删除列
alter table 表名 drop 属性名;
-- 修改列的数据类型
alter table 表名 modify 列名 新的数据类型;
-- 修改列名:
alter table 表名 change 旧字段名 新字段名 数据类型;
6、显示表结构
desc 表名;
7、主键约束
(唯一、不重复、不能为空 primary key 一个表中有且只有一个主键约束)
**-- 创建表的同时创建主键约束**
-- 格式一:
create table 表名(
列名 数据类型 primary key,
列名2 数据类型
);
-- 格式二: 主键约束名字的写法:PK_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字 primary key(列名1)
),
-- 格式三:
create table 表名(
列名1 数据类型,
列名2 数据类,,
primary key(列名)
);
**-- 针对已经存在的表,添加主键约束**
-- 格式一:
alter table 表名 modify 列名 数据类型 primary key;
-- 格式二:
alter table 表名 add primary key(列名);
-- 格式三:
alter table 表名 add constraint 主键约束的名字 primary key (列名);
**-- 删除主键约束**
alter table 表名 drop primary key;
-- **联合主键**:指的是把两个列看成是一个整体,这个整体是不为空,唯一,不重复
-- 创建表的同时创建联合主键
-- 格式一:主键约束名字的写法:PK_列名
create table 表名(
列名1 数据类型,
列名2 数据类型,
constraint 主键约束的名字 primary key(列名1,列名2)
);
-- 格式二:
create table 表名9
列名1 数据类型,
列名2 数据类型,
primary key9列名1,列名2)
);
8、唯一约束
(1)、不允许有重复的值,保证数据的唯一性
(2)、可以有空值
(3)、在一个表中可以有多个唯一约束
(4)、默认情况下,唯一约束名字和列名保持一致
(5)、添加唯一约束的列,系统也会默认给这个列添加一个唯一索引
-- 创建表的同时创建唯一约束 UN_列名
-- 格式一:
create table 表名(
表名一 数据类型,
列名2 数据类型,
constraint 唯一约束名字 unique (列名1)
);
-- 格式二
create table 表名(
表名一 数据类型 unique,
列名2 数据类型 unique,
列名3 数据类型
);
-- 一个表中可存在多个约束
-- 针对已经存在的表,添加唯一约束
alter table 表名 add unique (列名,[列名2]);
例:ALTER TABLE student add UNIQUE (学号,姓名);
-- 删除唯一约束
alter table 表名 drop index 唯一约束的名字;
9、默认约束
(default 当默认约束来修饰某个列的时候,修饰的列即使不写数据也会默认一个值)
-- 创建表的同时创建默认约束
create table 表名(
列名1 数据类型 default '字符串类型或者日期类型的默认值',
列名2 数据类型 default 数值,
列名3 数据类型
);
-- 针对已经存在的表,添加默认约束
alter table 表名 modify 列名 数据类型 default '值';
-- 删除默认约束
alter table 表名 modify 列名 数据类型;
10、非空约束
(not null 当前列必须有值)
-- 在创建表的同时创建非空约束
create table 表名(
列名1 数据类型 not null,
列名2 数据类型 not null,
);
-- 针对已存在的表,添加非空约束
alter table 表名 modify 列名 数据类型 not null;
-- 删除非空约束
alter table 表名 modify 列名 数据类型;
11、外键约束
foreign key
注意:
外键约束是建立在从表;
当从表的列参照主表的列,列名可以不一样,但是列里面的数据类型和内容要保持一致;
从表引用主表的列,要求主表的列必须有主键约束或者唯一约束;
当主表的数据,被从表引用,主表的数据是没办法进行删除;
当从表中的数据想做操作的时候,先询问主表的意见,主表有的,运行从表操作,主表没有,拒绝从表操作。
-- 创建表的同时创建外键约束
--主表(接下来再创建表的时候,要参照的表)
create table 主表(
列名1 数据类型 primary key,
列名2 数据类型
);
-- 从表(外键约束所在的表) FK_列名
create table 从表表名(
列名1 数据类型,
列名2 数据类型,
constraint 外键约束的名字 foreign key (从表的列名1) references 主表表名1(主表的列名1)
);
-- 注意:关于引用的列的要求是:从表的列和主表的列,列名可以不一样,但数据类型和内容必须保持一致。
-- 针对已存在的表,添加外键约束
alter table 从表表名 add constraint 外键约束的名字 foreign key (从表的列名1)references 主表表名(主表的列名);
-- 删除外键约束
alter table 表名 drop foreign key 外键约束的名字;