MYSQL语法篇之:“建”、“增”

MYSQL学习之语法篇

本章学习目标

  1. SQL语句之“建”

  2. SQL语句之“增”

数据的存储过程

有一个数据库

在数据库中创建表格

在表格当中插入数据

完成以上三步就完成了一整个数据存储过程。

所以我们要学习的两个点:

创建:“建”

增加:“增”

  1. SQL语句之“建”

创建数据库语法:

create database database_name;

在创建数据库的时候还可以加入条件判断语句:

create database [if not exists] databses_name;

创建表语法:

这里需要注意的是要创建表要进入数据库内才能创建表

创建表格时候需要给表格添加约束条件

约束条件就是前面提到的:

数据类型

主键:唯一、不为空是主键的两个特点

外键

索引

所以我们需要先去了解MYSQL当中的这些约束(Constraints)条件。

(1)MYSQL当中的数据类型:

主要分为三大类

1、Text(文本)

Char(size):固定长度的字符串(包含字母、数字、特殊符号)。*括号中指定字符串的长度,最多为255个字符*

Varchar(size):可变长度字符串,*括号中指定字符串的长度,最多为255个字符。*如果超过255个字符则被转换为Text类型。

TinyText:存放最大长度为255个字符串。

Text:存放最大长度为65535个字符串

Blob(Binary Lange Object):专门存放二进制数据的数据类型对象最多存放65535字节的数据

Mediumtext:存放最大长度为16777215个字符的字符串

Mediumblob:存放最大长度为16777215字节的数据

Longtext:存放最大长度为4294967295个字符的字符串

Longblob:存放最多为4294967295字节的数据

2、Number(数字)

tinyint(size):带符号:-127到128

无符号:0-255

smallint(size_default=6):带符号:-32768到32767

无符号:0到65535

mediumint(size_default=9):带符号:-838608到8388607

无符号:0到16777215

int(size_default=11)

bigint(size_default=20)

float(size,d)(浮点型的小数字):size规定:显示最大为数

d规定:小数点右侧的最大位数

double(size,d)(浮点型的大数字):size规定:显示最大为数

d规定:小数点右侧的最大位数

decimal(size,d):字符串储存的double类型,允许固定小数点。 size规定:显示最大为数

d规定:小数点右侧的最大位数

这里需要注意:*int(size)并不是存储在数据库中的具体长度*,int(3)/int(4)/int(5)在数据库中所占的存储空间都一样大,只是*显示给用户的方式有不同*

3、Date(日期)

date( ) :日期

格式:YYYY-MM-DD

范围:1001-01-01到1999-12-31

datetime( ) :日期、时间组合

格式:YYYY-MM-DD HH:MM:SS

time( ) :时间

格式:HH:MM:SS

year( ) :年--2位 or 4位

(2)主键

Primary key

(3)外键

Foreign key

(4)索引

Index

(5)保证某列的每行必须有唯一的值

Unique

(6)保证列中得值符合指定的条件

Check

(7)规定没有给列赋值时的默认值

Default

有了以上知识铺垫以后可以来说说我们的表格创建语法:

创建表格语法:

create table table_name (

column_name1 data_type(size)(数据类型)constraint_name,

column_name2 data_type(size) constraint_name,

column_name3 data_type(size) constraint_name

......

);

可能有小伙伴看不明白上面啥意思可以举一个实例:

创建一个雇员表(employee),字段名包括:雇员ID(empid),名字(name),性别(sex),标题(title),生日(birthday),部门ID(depid)

雇员ID数字类型为整数型,设置为主键

姓名数字类型为可变字符串型,设置不能为空

性别数字类型设置为固定字符串型,设置选择“男” 或者 “女”

标题数字类型设置为可变字符串型,设置能为空

生日数字类型设置为日期型,设置唯一

部门ID数字类型设置为整数型,设置默认值为1

create table employee(

empid int(10) primary key,

name varchar(32) not null,

sex char(4) check ('男' or '女'),

title varchar(32) null,

birthday date unique,

depid number() default '1');

下面会举例创建每个约束条件

(1)创建主键约束:

首先我们需要去了解主键的特征:

1、约束唯一标识数据库表中每条记录

2、主键必须包含唯一的值

3、不能包含NULL值

4、每表应有一个主键

5、每表只能有一个主键

创建主键约束的语法:

create table table_name(

column_name1 datetype primary key);

在已建好的表中增加主键约束的语法(前提是该表之前没有主键约束):

alter table table_name add primary key (column_name);

撤销已建好的表中的主键约束的语法:

alter table table_name drop primary key (column_name);

(2)创建外键约束:

外键约束的特征:

一个表中的foreign key指向另一个表中的unique key(唯一约束值)

必须有两个表才能引用foreign key

创建外键约束的语法:

前置条件:

table1

table2

创建外键的语法:(用到关键字:reference n.参考)

create table table2_name1(

column_name1 datetype constraint,

column_name2 datetype constraint,

primary key (column_name1),

foreign key (column_name2) reference table1_name1 (column_name1));

(3)创建索引:

索引的特征:

1、数据库更快的查询数据

2、(用户无法看到索引)它们只能被用来加速搜索查询

创建索引的语法:

1、在表上创建一个简单的索引:

create index index_name on table_name (column_name);

可以理解为在表的列上创建索引

2、在表上创建一个 唯一 索引:

这里面用到了关键字唯一(unique)。这是一个组合用法

create unique index index_name on table_name (column_name);

3、创建不止一个索引:

create index index_name on table_name (column_name1、column_name2);

4、删除表中索引:

alter table table_name drop index index_name;

(其实语句语法都是相似的只是看如何使用。这里面就要涉及到对SQL语句的理解深度的问题)

(4)创建唯一约束:

这里只需要注意一点每个表中可以有多个unique约束,但是只能有一个primary key约束

create table table_name(

column_name datetype unique);

(5)创建CHECK约束:

create table table_name(

column_name datetype check ( '内容' or '内容'));

(6)创建DEFAULT约束:

create table table_name(

column_name datetype default value);


  1. SQL语句之“增”*

增的语法比较简单,但是增的类型有两种。

第一种:整行插入(关键字:insert into)

语法:

insert into table_name values(

column_name1_date),

(column_name2_date),

(column_name3_date,......);

上面的方法是多段插入的方法,下面有分别插入的方法:

insert into table_name values(

column_name1_date);

insert into table_name values(

column_name2_date);

insert into table_name values(

column_name3_date);

......

第二种:指定插入(关键字:update)

update table_name set column_name='value_new' where column_name='value_old';

增的时候要注意:增加的数据必须符合建表是该字段名的数据类型以及约束条件

 

原文地址:https://www.cnblogs.com/JunkingBoy/p/14008139.html