本帖最后由 小鲁哥哥 于 2017-8-11 20:33 编辑
【黑马程序员济南】小鲁哥哥白话笔记-SQL
在学习MySql的时候,老师一直在强调数据库的重要性,的确,在我们以后的开发中,数据库操作是我们在开发中经常遇到的问题。当前学习的数据库操作还是比较简单的操作,因为仅仅只是单表的操作,在以后的课程中我们还会学习多表的操作。给大家简单的介绍一下当前学习的数据库知识。 其实数据库不管多难,有多复杂,总结起来就是四个字:增删改查。这四个字浓缩了数据库操作的所有精华。 在对数据库表进行更改操作前,我们先要去创建一个数据库:create database 数据库名 character set 字符集。完成了第一步后,第二步我们就要创建数据表: create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
); 大家能看到在创建表的时候,给字段添加了约束,约束的作用就是限制每一列能写什么数据,不能写什么数据。其中特别要强调的就是主键约束,主键是用于标识当前记录的字段。它的特点是非空,唯一。它的表现形式如下: create table tablename(
id int primary key,
.......
) 我们常用的对表的操作有哪些呢:我们课上给大家6种对于表的操作: * A: 修改表添加列
alter table 表名 add 列名 类型(长度) 约束;
例如:
#1,为分类表添加一个新的字段为 分类描述 varchar(20)
ALTER TABLE sort ADD sdesc VARCHAR(20);
* B: 修改表修改列的类型长度及约束
alter table 表名 modify 列名 类型(长度) 约束;
例如:
#2, 为分类表的分类名称字段进行修改,类型varchar(50) 添加约束 not null
ALTER TABLE sort MODIFY sname VARCHAR(50) NOT NULL;
* C: 修改表修改列名
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
例如:
#3, 为分类表的分类名称字段进行更换 更换为 snamesname varchar(30)
ALTER TABLE sort CHANGE sname snamename VARCHAR(30);
* D: 修改表删除列
alter table 表名 drop 列名;
例如:
#4, 删除分类表中snamename这列
ALTER TABLE sort DROP snamename;
* E: 修改表名
rename table 表名 to 新表名;
例如:
#5, 为分类表sort 改名成 category
RENAME TABLE sort TO category;
* F: 修改表的字符集
salter table 表名 character set 字符集;
例如:
#6, 为分类表 category 的编码表进行修改,修改成 gbk
ALTER TABLE category CHARACTER SET gbk; 每一种大家都要熟记,因为不管数据库是哪一种,对于表的操作都是统一的,不会更改的。 最后给大家罗列一下数据库的增删改查的一些具体操作: 数据表添加数据_1 * A: 语法:
insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列
* 举例:
INSERT INTO product (id,pname,price) VALUES (1,'笔记本',5555.99);
INSERT INTO product (id,pname,price) VALUES (2,'智能手机',9999);
* 注意:
列表,表名问题
对应问题,个数,数据类型
数据表添加数据_2
* A: 添加数据格式,不考虑主键
insert into 表名 (列名) values (值)
* 举例:
INSERT INTO product (pname,price) VALUE('洗衣机',800);
* B: 添加数据格式,所有值全给出
格式
insert into 表名 values (值1,值2,值3..); --向表中插入所有列
INSERT INOT product VALUES (4,'微波炉',300.25)
* C: 添加数据格式,批量写入
格式:
insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
举例:
INSERT INTO product (pname,price) VALUES
('智能机器人',25999.22),
('彩色电视',1250.36),
('沙发',58899.02)
更新数据
* A: 用来修改指定条件的数据,将满足条件的记录指定列修改为指定值
语法:
update 表名 set 字段名=值,字段名=值;
update 表名 set 字段名=值,字段名=值 where 条件;
* B: 注意:
列名的类型与修改的值要一致.
修改值得时候不能超过最大长度.
值如果是字符串或者日期需要加’’.
* C: 例如:
#1,将指定的sname字段中的值 修改成 日用品
UPDATE sort SET sname='日用品';
#2, 将sid为s002的记录中的sname改成 日用品
UPDATE sort SET sname='日用品' WHERE sid='s002';
UPDATE sort SET sname='日用品' WHERE sid='s003';
删除数据
l* A: 语法:
delete from 表名 [where 条件];
或者
truncate table 表名;
* B: 面试题:
删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
删除方式:delete 一条一条删除,不清空auto_increment记录数。
truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。
* C: 例如:
DELETE FROM sort WHERE sname='日用品';
#表数据清空
DELETE FROM sort;
|