第四篇:SQL语法基础

Posted Zcb0812

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四篇:SQL语法基础相关的知识,希望对你有一定的参考价值。

Create database:

 

Create table:

创建完数据库之后,我们就可以去创建表了

创建表的三种方式:

 

 

 

一:传统方式创建表:

 

student 为表名,括号内为表中包含的属性。

temporary 关键字:

 

 

二:复制表结构(不复制数据)的方式创建表(使用like 关键字):

注:主键等信息使用like 也可以复制过来。

 

三:as  ...select 语句  方式创建表:

 

 

 

关于是否为Null:

下面的是不可以的:

因为id 必须得是非空。

 

修改 default 的值:

CREATE TABLE `stu_temp` (
`id` int(11) NOT NULL DEFAULT \'0\',
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB

 

 

 

上面直接 将一个属性定义为 auto_increment 是不行的,一般都是先将其定义为主键,然后可以再定义为自增属性。

如下可以:

 

 

 

Unique 可以允许包含多个null ,但是多个“”则是不可以的,二者有着本质的区别,null代表的是未知!

 

unique key 和 primary key 的主要区别:

Unique key 可以有多个,而 primary key 只能有一个!

 

在现有表上再增加一个字段

 

如何修改字段名字:

 

 

给已有表上的某个字段设置为主键:

Alter table 表名 Add Constraint PrimaryKey Primary Key (主键字段名)

 

 

 

 

关于外键 foreign key:

student 表:

course 表:

 

stu_course_relation表:

 

但是,对于 stu_course_realtion 表,我们确实是可以任意插入数据的,如果想限制其的话,我们创建表的时候就得用到外键了。

 

 

此时,就不可以随意的插入数据了,此时要求所插入的数据必须在 所关联的表中存在。

 

 

 

 

 

 

 

 

Insert 语句:

 

第一种是使用values:

 

第二种是使用set:

 

 

第三种是使用select:

将查询的结果直接插入到表中,

假设有一个 dept_bak 表:

 

 我们现在将 dept 中的数据查询之后 插入到这个表中,

 

此时的dept_bak 中就有数据了,

 

:select 出的数据要和 将要插入的表的字段一致!

 

 

 

 

 

dept 表如下:

如果此时进行如下插入:

 

则会出现,主键冲突,

如果不想让它报错,可以进行如下操作(on duplicate key update),

此时,就仅仅是 update 下dept_name 字段,

dept 表如下:

 

 

 

update 语句:

dept 如下:

 

 

 单纯这样是不行的,会报错,[23000][1062] Duplicate entry \'1002\' for key \'PRIMARY\'

一个很好的解决方案是倒序着来,

如下:

 

此时就不会报错了,修改后的dept 如下:

 

单表修改:

 

update 语句的意义主要是用来修改已经存在的数据。

 

 

 

 

limit 的用法:

其中的limit 一般是 配合 order by 来是用的,limit 用来指定修改几行的数据, 

 

初始为:

 

 

 

 

多表修改:

下表为dept:

下表为dept_temp:

 

现在要将 dept_temp 中的数据update 到 dept 中:

 

执行操作之后的dept表为:

 

 

 

启用回滚机制:

 

 

可以发现 autocommit 自动提交是 默认打开的,

我们可以把它关闭,

 

 

此后如果出现 失误操作我们就可以通过  回滚 来撤销操作了,

 

 

但我们确定了数据是我们要的时候,可以手动 commit 提交,此操作之后,之前的就无法再进行回滚了。

具体的内容到 事务里会 细说!!!

 

以上是关于第四篇:SQL语法基础的主要内容,如果未能解决你的问题,请参考以下文章

第四篇:python基础之条件和循环

C++语法 第四篇 自定义类型

深入理解DOM节点类型第四篇——文档片段节点DocumentFragment

第四篇 函数

Oracle 学习第四篇

一条SQL执行的完整流程解析 - 《从0到1-全面深刻理解MySQL系列-第四篇》