表是数据库的主要对象,也是数据库其他对象的基础。表分为永久性表和临时性表。通过SQL语句可实现创建、修改和删除表,以及查询表的数据。我的理解:列对应表的结构,行对应表的数据。
1 修改表
1.1 修改和删除表的结构
//创建表需要使用CREATE关键字
CREATE TABLE student(UID VARCHAR(20) NOT NULL,
Name VARCHAR(20) NOT NULL,
Sex VARCHAR(20) NOT NULL)//创建名为student的数据表,varchar表示可变长度的char,NOT NULL表示数据不能为空
//在创建之后修改表的结构需要使用ALTER TABLE table_name 寻找表
//添加列需要使用ADD关键字,删除列需要使用DROP关键字
ALTER TABLE student ADD Age INT NOT NULL
ALTER TABLE student DROP Age
//删除表需要使用DROP关键字
DROP student
1.2 插入、修改、删除和检索数据
//插入使用INSERT INTO table_name(item,item,....,) VALUES(value,value)
//item与value一一对应即可
INSERT INTO student(UID,Name,Sex,Age) VALUES(1,1,'male',18)
//修改使用UPDATE关键字,可对特定的一行或多行进行修改
UPDATE student
SET Sex='male',Age=Age+1 //为修改的内容
WHERE UID>7//指定修改的行
//删除使用DELETE 关键字,可删除特定的一行或多行
DELETE FROM table_name
WHERE search_condition
//检索使用SELECT关键字,可检索特定的一行或多行的特定的列
SELECT Sex,UID FROM student WHERE Age>19//Age>19的行Sex,UID列的数据
SELECT*FROM student WHERE Age>19//Age>19的行所有列的数据
对于匹配查询,LIKE关键字的具有4种匹配符,可组合使用
| 匹配符 | 含义 |
|---|---|
| % | 任意字符 |
| _ | 任意单字符 |
| [] | []里的任意字符 |
| [^] | 不含[]里的任意字符 |
SELECT*FROM student WHERE Sex LIKE'%ale'
2 设置表的约束
限制表中行或列的数据,及表之间的数据实现数据的完整性。
类型:主键约束、唯一性约束、外键约束、CHECK约束和默认约束
2.1 主键约束
限制表中特定的一列或者多列都具有唯一值,且所包含的列不能有空值,确保数据的唯一性
//设置主键约束
///创建时添加
CONSTRAINT stu_id primary KEY(UID,Name)
///创建后添加
ALTER TABLE student ADD CONSTRAINT stu_id primary KEY(UID,Name)//带有约束名的主键约束
ALTER TABLE student ADD PRIMARY KEY(UID)
//删除主键约束
ALTER TABLE student DROP PRIMARY KEY
//查询主键信息
SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE` WHERE table_name='student' AND constraint_name='PRIMARY'
2.2 唯一性约束
同主键约束的关系
联系:都不允许约束对象重复
区别
| primary key | unique |
|---|---|
| 唯一的标识表中的数据,可定义特定的一列或多列为主键 | 限制不受主键约束的列上数据的唯一性 |
| 不能更新数据 | 只要数据唯一即可更新 |
| 不允许NULL | 允许NULL |
| 可做外键 | 不可做外键 |
///创建使添加
CONSTRAINT stu_uid UNIQUE(UID)
///创建后添加
ALTER TABLE student ADD CONSTRAINT stu_uid UNIQUE(UID)
2.3外键约束
限制一个表中的某些列与其他表中的某些列的关联,从而实现表之间的依赖关系。在其他关联的表中只能删除没有依赖的信息。
ALTER TABLE student
ADD CONSTRAINT stu_outkey
FOREIGN KEY(UID)//外键设置
REFERENCES mark(UID)//所关联的其他表的列
在mark表中只能删除student中没有的UID
2.4 CHECK约束
对表的某一列数据的范围限制
ALTER TABLE student
ADD CONSTRAINT stu_check
CHECK(SCORE>0 AND SCORE<101)//CHECK(Logic_expression)
2.5 默认约束
向表中插入的数据有很多相同的元素,可以将其设置为默认约束
//添加默认约束
ALTER TABLE mark ALTER COLUMN SCORE SET DEFAULT 90//选定列 SET DEFAULT
ALTER TABLE mark MODIFY SCORE INT DEFAULT 90//
//删除默认约束
ALTER TABLE mark MODIFY SCORE INT //插入数据时不会报错
ALTER TABLE mark ALTER COLUMN mark DROP DEFAULT//
3 数据库的存储过程
存储过程封装了可以重复使用的Transact-SQL语句。它储存在服务器上,已经通过预编译
- 提高数据库的访问速度
- 程序可读性更强
- 安全性更高,可以设置用户访问权限
分类:系统、本地、临时、远程、扩展~
~:储存过程
创建存储过程的MYSQL语句
CREATE PROCEDURE AddItem()
BEGIN
DECLARE i INT DEFAULT 3;
WHILE (i<11) DO
INSERT INTO student(UID,Name,Sex,Age) VALUES(i,i,'female',20);
SET i=i+1;
END WHILE;
END


被折叠的 条评论
为什么被折叠?



