DELETE和UPDATE
- DELETE不能删除单一列中的值或表中某一列的所有值;可用于删除一行或多行
- UPPER()函数可以把表中的文本列改为大写;LOWER()则可改为小写
- SHOW CREATE TABLE table;可以查看表的创建语句
- SHOW INDEX FROM table;可以查看任何编了索引的列和索引类型
规范化
- 原子性数据规则
- 具有原子性数据的列中不会有多个类型相同的值
- 具有原子性数据的表中不会有多个存储同类数据的列
- 第一范式(1NF)强调的是列的原子性,即列不能够再分成其他几列。 (第一范式:1.数据列只包含具有原子性的值2.没有重复的数据组)
主键
- 不可为NULL
- 插入新记录时必须指定主键值
- 必须简洁
- 不可被修改
建一个有主键的表
CREATE TABLE test_primary_key
( id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) default NULL,
PRIMARY KEY (id)
);
为现有的表添加主键
ALTER TABLE add_primary_key
ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);
FIRST把新列放在最前面
ALTER
- 表的改名
ALTER TABLE table RENAME TO new_name;
- 修改列名和属性
ALTER TABLE table CHANGE COLUMN column new_column_name INT ;
- 修改列属性
ALTER TABLE table MODIFY COLUMN column VARCHAR(100);
- 删除某列
ALTER TABLE table DROP COLUMN column
- 移除主键设置
ALTER TABLE table DROP PRIMARY KEY;
- 每个表中只有一列可以加上AUTO_INCREMENT,该列必须为整数类型而且不能包含NULL
- 使用FIRST,SECOND,LAST,BEFORE column,AFTER column可以调整列的顺序
- 字符串函数
- LEFT(column,n)和RIGHT(column,n)从列的左侧(右侧)开始选取n个字符
- SUBSTRING(your_string,start_position,length)攫取一部分your_string字符串,起始位置为start_position,长度为length
- SUBSTRING_INDEX(your_string,item,n)取第n个item前的所有内容
- REVERSE(your_string)反转字符串
- LENGTH(your_string)返回字符串长度
- LTRIM(your_string)和RTRIM(your_string)分别去除字符左侧(右侧)的多余空格