您的位置:首页 > 数据库 > MySQL

MySQL(基础语法)

2019-06-26 21:28 204 查看

SQL:结构化查询语言
1.数据定义语言DDL create,alter,drop针对于数据库对象(数据库,表,视图…)
2.数据查义语言DQL select,查询表中的
3.数据源操作语言DML insert,update,delete,针对于表中的数据
4.数据控制语言DCL grant,revoke

数据定义语言DDL
创建一个自己的数据库
Create database 数据库名;

显示服务器上所有数据库 Show databases;
使用指定的数据库 Use 数据库名;
创建数据表 Create table 表名(
字段 数据类型,
字段 数据类型
);

DML对表的操作
向表中插入数据 Insert into 表名[列明…] values(值…)
修改表结构alter
删除表中的列 Alter table 表名 drop 列名;
修改表中的列(修改列的名称) Alter table 表名 change 被修改的列名 修改后的列名 修改后的数据类型
修改表中的列(修改列的数据类型) Alter table 表名 modify 列名 修改后的数据类型
向表中插入一个新列 Alter table 表名 add 列名 数据类型
表都不要了,直接删除表drop Drop table 表名

主键和外键
1.主键约束 primary key
2.非空约束 not null
3.默认约束 default
主键特征:
1.非空且唯一
2.一个表只能有一个主键,这个主键可以由一列或多列组成,由多列组成的主键称为”复合主键”
添加主键的两种方式
1.创建表时添加主键
Create table stu1(
Stuno int(4) primary key,
Stuname varchar(20)
);

先创建表,在修改表结构
Create table stu2(
Stuno int(4),
Stuname varchar(20)
);
Alter table stu2 add constraint pk_stuno(自己起的主键名) primary key (stuno);

复合主键
Create table stu3(
Stuno int(4),
Stuname varchar(20)
);
Alter table stu3 add constraint pk_stuno2 primary key (stuno,stuname);

非空约束和默认约束只能在创建表时添加
Create table stu4(
Stuno int(4) ptimary key,
Stuname varchar(20) not null,
Gender varchar(2) default ‘男’
);

自动增长列
Create table stu5(
Stuno int(4) primary key auto_increment,
Stuname varchar(20)
);

外键约束要有两张表
其中一张是主键表,另一张是外键表
关系就是一对多,主键是不允许重复(主键表)
外键是可以重复的(外键表)

班级表(主键表)和学生表(外键表)
1.创建主键表,再创建外键表
2.为外键表添加外键约束
3.先为主键表添加测试数据,再为外键表添加测试数据
—如果要是删除,则需要先删除外键表的数据,再删除主键表的数据

创建两表
班级表中clazzid 为主键
学生表中stuno 为主键
为学生表添加外键约束
Alter table student add constraint fk_clazzid(键名自己起) foreign key (clazzid) references clazz(clazzid);

外键的三种策略
1.不允许,想要删除班级,必须手动删除该班级下的学生
2.级联cascade,在删除班级的同时,将学生也删除
3.Set null ,将班级删除,班级所有对应的学生的班级设置为null

Alter table student drop foreign key fk_clazzid(外键名与起的名字对应上);–删除外键

–重新添加外键
Alter table student add constaint fk_clazzid foreign key (clazzid) references clazz(clazzid) on delete set null;–删除外键表中的数据时,外键表中对应的数据设置为null

–重新添加外键约束
Alter table student add constraint fk_clazzid foreign key (clazzid) references clazz (clazzid) on delete set null on update cascade;
添加外键是要求限查看糖糖表中的数据,是否一致,否则添加不成功
级联:删除主键时,外键对所对应的数据也都跟着一起删除
Alter table student add constraint fk_clazzid foreign key(clazzid) references clazz(clazzid) on delete cascade;

DML数据操作语言 insert update delete
Insert:向表中添加测试数据
全部列添加
Insert into 表名 values (值…)
部分添加
Insert into 表名(列名…) values (值…)

Update:修改表中已存在的数据
修改一个值
Update 表名 set 列名=值 [where];
修改多个值
Update 表名 set 列名1 = 值,列名2 = 值…[where];

Delete:删除表中的数据
Oracle:delete [from] 表名[where]
Mysql:delete from 表名[where];

删除全部数据,建议使用truncate table 表名,效率高。注意:是否有外键连接
删除表结构: drop table 表名

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: