博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL基础(一)
阅读量:6712 次
发布时间:2019-06-25

本文共 3530 字,大约阅读时间需要 11 分钟。

1.数据的存储方式(表属性的操作)

1.1 建表前思考的问题

a.表名

b.表里包含的数据类型(CHAR(定长字符),VARCHAR(不定长字符),NUMBER(数值),DATE(日期和时间),BLOB(大数据集),直义字符串,自定义类型)

c.构成主键的字段

d.每个字段的长度

e.哪些字段可以为NULL

1.2CREATE TABLE 语句

基本语法:

CREATE TABLE table_name( field1 data_type [ not null ],  field2 data_type [ not null ],  field3 data_type [ not null ],  field4 data_type [ not null ]);

1.3 ALTER TABLE 命令

(修改和删除表时,如果使用了RESTRICT选项,且表被视图或约束所引用,则返回错误。如果使用了CASCADE,且全部引用试图和约束都会被删除)

基本语法:

ALTER TABLE table_name[restrict|cascade][change_style];

a.增加属性

ALTER TABLE table_nameADD column_name data_type [not null];

b.删除属性

ALTER TABLE table_nameDROP COLUMN column_name;

c.修改属性名

ALTER TABLE table_nameCHANGE column_name new_name data_type;

d.修改属性的数据类型

ALTER TABLE table_nameMODIFY column_name data_type;

e.从现有表新建另一个表

CREATE TABLE new_table_name ASSELECT [*[COLUMN1,COLUMN2]]FROM table_name[WHERE];

1.4 删除表

DROP table_name [restrict|cascade];

1.5查看表

DESC table_name;

1.6 测试代码

//建表create table student_tbl(id char(9), sex varchar(5), birthday year, Chinese integer(3), Math integer(3));//增加English属性alter table student_tbladd English integer(3);//删除sex属性alter table student_tbldrop column sex;//修改属性名id 为IDalter table student_tblchange id ID char(9);//修改birthday属性数据格式为datealter table student_tblmodify birthday date;//复制student_tbl到新表class1create table class1_tbl asselect *from student_tbl;//查表desc student_tbl;

2.完整性约束

2.1 主键约束

主键:表中一个或多个用于实现记录唯一性的字段(属性)。

实现方式:

//在字段的定义阶段将其指定为主键column_name data_type [null] [primary key]//在字段定义之后再定义主键CREATE TABLE table_name( column1 data_type [ not null ],  column2 data_type [ not null ],  column3 data_type [ not null ],  column4 data_type [ not null ],  primary key ([column1,column2]));//给表中属性创建主键约束ALTER TABLE TABLE_NAMEADD PRIMARY KEY (COLUMN);ALTER TABLE TABLE_NAMEADD CONSTRAINT PRIMARY KEY (COLUMN);//撤销主键约束ALTER TABLE TABLE_NAMEDROP PRIMARY KEY;

*在修改属性时不可以创建复合主键,即只可以在定义属性时创建主键。

2.2 唯一性约束

实现方式:

//在字段的定义阶段创建UNIQUE约束column_name data_type [null] [unique]//在字段定义之后再创建UNIQUE约束CREATE TABLE table_name( column1 data_type [ not null ],  column2 data_type [ not null ],  column3 data_type [ not null ],  column4 data_type [ not null ],  unique ([column1,column2]));//给表中属性创建UNQIUE约束ALTER TABLE TABLE_NAMEADD UNIQUE (COLUMN);ALTER TABLE TABLE_NAMEADD CONSTRAINT UNIQUE (COLUMN);//撤销UNIQUE约束ALTER TABLE TABLE_NAMEDROP INDEX COLUMN;

2.3 外键约束

外键:子表里的一个字段,引用父表里的主键

实现方式:

//在字段定义之后再创建外键CREATE TABLE table_name( column1 data_type [ not null ],  column2 data_type [ not null ],  column3 data_type [ not null ],  column4 data_type [ not null ],  FOREIGN KEY (COLUMN) REFERENCES OTHER_TBL(COLUMN));//给表中属性创建外键约束ALTER TABLE TABLE_NAMEADD FOREIGN KEY (COLUMN)REFERENCES OTHER_TBL(COLUMN);//撤销外键约束//1.首先查看建表语言,得到外键名show create table_name account;//2.然后删除ALTER TABLE OrdersDROP FOREIGN KEY fk_PerOrders

2.4 NOT NULL 约束

直接在定义里

2.5 检查约束

用于检查输入到特定字段的数据的有效性。、

实现方式:

//在字段的定义阶段创建CHECK约束column_name data_type [null] [ c)]//在字段定义之后再创建CHECK约束CREATE TABLE table_name( column1 data_type [ not null ],  column2 data_type [ not null ],  column3 data_type [ not null ],  column4 data_type [ not null ],  CONSTRAINT chk_Person CHECK (column1>0 AND column1='***'));//给表中属性创建CHECK约束ALTER TABLE PersonsADD CHECK (Id_P>0);ALTER TABLE PersonsADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes');//撤销CHECK约束(没成功)ALTER TABLE PersonsDROP CHECK chk_Person;

3. MySQL查看数据库和表的信息

//查看所有数据库SHOW DATABASES;//选择数据库USE DB_NAME;//查看当前使用的数据库SELECT DATABASE();//查看数据库里有那些表SHOW TABLES;//查看表里有哪些属性DESC TABLE_NAME;//删除数据库DROP DATABASE DB_NAME;

转载于:https://www.cnblogs.com/wangtinglou/p/9373734.html

你可能感兴趣的文章
自定义View的宽高设定
查看>>
进程打开的文件句柄数量超过系统默认值1024,就会提示“too many files open”信息...
查看>>
Linux下用ifconfig命令设置IP、掩码、网关
查看>>
浏览器中元素尺寸和坐标的名词解释
查看>>
我的友情链接
查看>>
IE浏览器安装低版本
查看>>
使用Fiddler提高前端工作效率 (实例篇)
查看>>
动态库连接问题
查看>>
matlab函数
查看>>
如何成为一个真正在路上的Linuxer
查看>>
深入了解ASMM
查看>>
2016年4月4日中项作业
查看>>
女孩适合学习嵌入式吗?
查看>>
linux目录结构
查看>>
逻辑思维题
查看>>
springboot整合redis缓存
查看>>
Docker安装及基础命令
查看>>
ARP欺骗
查看>>
输入一个字符串,统计该字符串中分别包含多少个数字,多少个字母,多少个其他字符...
查看>>
请求重定向sendRedirect()方法 和 请求转发forward()方法
查看>>