修改表
实例:
创建如图所示的表:
alter 表上增加一个image列,varchar类型(要求在resume后面)
修改job列使其长度变为60
删除sex列
修改表名
修改表的字符集为utf8
ALTER TABLE alter01 CHARACTER SET utf8
修改列名name为user_name
数据库CURD语句
Insert语句
语法
INSERT INTO table_name[(colum[,colum])]
VALUES (value[,value]);
实例:
Insert语句注意事项
1.插入的数据应与字段的数据类型相同。比如 把'abc' 添加到 int 类型会错误
2.数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。
3.在values中列出的数据位置必须与被加入的列的排列位置相对应
4.字符和日期型数据应包含在单引号中。
5.列可以插入空值[前提是该字段允许为空],insert into table value(null)
6.insert into tab name(列名..)values (),(),();形式添加多条记录
7.如果是给表中的所有字段添加数据,可以不写前面的字段名称
8.默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错
Update语句
语法
UPDATE table_name
set colum_name = expr[colum_name2 = expr2...]
(WHERE where_defintion)
实例:
创建text表并插入数据
使用update语句更新所有行的salary为5000
只把小王的salary修改为4000
Update语句使用细节
1.UPDATE语法可以用新值更新原有表行中的各列。
2.SET子句指示要修改哪些列和要给予哪些值。
3.WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。
4.如果需要修改多个字段,可以通过 set 字段1=值1,字段2=值2..
Delete语句
语法
delete from table_name
[WHERE where_definition]
实例:
删除图中name为小王的记录
Delete语句使用细节
1. 如果不适用where语句,将删除表中所有数据
2. Delete语句不能删除某一列的值(可以使用update设为null或者‘ ’)
3. 使用delete语句仅删除记录不删除表本身(drop table 表名;)
Select语句
为熟练操作语法,接下来会创建一张表,在之后的语法都会对该表进行相关操作
## student
CREATE TABLE student(
id INT NOT NULL DEFAULT 1,
`name` VARCHAR(20) NOT NULL DEFAULT ' ',
chinese FLOAT NOT NULL DEFAULT 0.0,
english FLOAT NOT NULL DEFAULT 0.0,
math FLOAT NOT NULL DEFAULT 0.0
);
INSERT INTO student VALUES
(1,'韩',89,78,90);
INSERT INTO student VALUES
(2,'张飞',67,98,56);
INSERT INTO student VALUES
(3,'宋江',87,78,77);
INSERT INTO student VALUES
(4,'关羽',88,98,90);
INSERT INTO student VALUES
(5,'赵云',82,84,67);
INSERT INTO student VALUES
(6,'欧阳锋',55,85,45);
INSERT INTO student VALUES
(7,'黄蓉',75,65,30);
- 基本语法1 [DISTINCT]
SELECT [DISTINCT] *[COLUMN1,COLUMN2,..] FROM table_name
- 注意事项
1. Select 指定查询哪些列的数据
2. column 指定列名
3. * 代表查询所有列
4. FROM 指定查询哪张表
5. DISTINCT 可选,指显示结果时,是否去掉重复数据
例子:
SELECT DISTINCT english FROM student
- 基础语法2
SELECT * |[column1|expression,column2|expression,..] FROM table_name;
- 基础语法3 [as]
SELECT column_name as 别名 FROM 表名
将各个学生的总分用 total_score表示
Where语句中经常使用的运算符
比较运算符 | > < >= <= = <> != | 大于、小于、大于(小于)等于、不等于 |
BETWEEN...AND... | 显示在某一区间的值 | |
IN(set) | 显示在in列表中的值,例:in(100,200) | |
LIKE `张pattern` NOT LIKE | 模糊查询 | |
IS NULL | 判断是否为空 | |
逻辑运算符 | and | 多条件同时成立 |
or | 多条件任一成立 | |
not | 不成立,例:where not(salary>100) |
注:
between...and... 所在某区间的范围为闭区间
用于字符匹配的LIKE谓词:谓词LIKE可用来表示字符串的匹配条件,* 表示任意多个字符,?表示任意一个字符(有些系统分别用 % 和 - 表示)
实例:
查找赵姓的学生的成绩
查找第二个字为云的同学姓名和成绩
- 基础语法3 [Order by]
SELECT column1,column2,...
FROM table_name
order by column asc|desc
1. Order by指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的列名
2. Asc 升序[默认]、Desc 降序
3. ORDER BY 子句应位于SELECT语句的结尾
实例:
对数学成绩按升序排序输出
SELECT * FROM student
ORDER BY math ASC;
将总分按降序排序
select `name`,(math+chinese+english) as total_score from student
order by total_score desc;